如何用MiniCPM3-4B实现本地AI对话?超简单的Python推理教程(附完整代码)
【免费下载链接】MiniCPM3-4B项目地址: https://ai.gitcode.com/hf_mirrors/zhouhui/MiniCPM3-4B
MiniCPM3-4B是一款高性能的小型AI模型,其整体性能超越了Phi-3.5-mini-Instruct和GPT-3.5-Turbo-0125,可与许多最新的7B~9B模型相媲美。本文将为你提供一个超简单的Python推理教程,帮助你快速在本地搭建MiniCPM3-4B的AI对话环境,实现高效的本地AI对话体验。
📋 准备工作:环境搭建与依赖安装
在开始使用MiniCPM3-4B进行本地AI对话之前,我们需要先搭建好相应的环境并安装必要的依赖。
1. 克隆项目仓库
首先,我们需要将MiniCPM3-4B项目仓库克隆到本地。打开终端,执行以下命令:
git clone https://gitcode.com/hf_mirrors/zhouhui/MiniCPM3-4B cd MiniCPM3-4B2. 安装依赖包
项目提供了 requirements.txt 文件,里面包含了运行推理代码所需的依赖。我们可以使用 pip 命令来安装这些依赖:
pip install -r examples/requirements.txtrequirements.txt 文件中包含了以下主要依赖:
- transformers==4.41.0:用于加载和运行预训练模型
- accelerate:用于加速模型推理
- datamodel_code_generator:数据模型代码生成工具
- jsonschema:JSON数据验证工具
🚀 快速开始:使用Python实现本地AI对话
完成环境搭建后,我们就可以使用Python代码来实现MiniCPM3-4B的本地AI对话了。项目提供了一个示例推理脚本 examples/inference.py,我们可以直接使用这个脚本来进行对话。
1. 运行示例推理脚本
在终端中执行以下命令,运行示例推理脚本:
python examples/inference.py这个脚本会加载MiniCPM3-4B模型,并生成对"推荐5个北京的景点。"这个问题的回答。
2. 了解推理代码的工作原理
让我们来简单了解一下 examples/inference.py 中的代码是如何工作的:
首先,代码会解析命令行参数,获取模型路径:
def parse_args(): parser = argparse.ArgumentParser() parser.add_argument( "--model_name_or_path", type=str, help="Path to model", default="zhouhui/MiniCPM3-4B", ) args = parser.parse_args() return args然后,根据系统是否支持NPU来选择设备(NPU或CPU):
if is_torch_npu_available(): device = "npu:0" else: device = "cpu"接下来,加载tokenizer和模型:
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map=device, trust_remote_code=True)然后,构建对话消息并生成模型输入:
messages = [ {"role": "user", "content": "推荐5个北京的景点。"}, ] model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(device)最后,使用模型生成回答并解码输出:
model_outputs = model.generate( model_inputs, max_new_tokens=1024, top_p=0.7, temperature=0.7 ) output_token_ids = [ model_outputs[i][len(model_inputs[i]):] for i in range(len(model_inputs)) ] responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0] print(responses)3. 自定义对话内容
如果你想进行自定义的对话,只需要修改 messages 列表中的内容即可。例如,如果你想询问"什么是人工智能?",可以将 messages 改为:
messages = [ {"role": "user", "content": "什么是人工智能?"}, ]然后重新运行脚本,就可以得到模型对这个问题的回答。
⚡ 提升性能:使用vLLM进行推理加速
如果你想进一步提升推理性能,可以使用vLLM来进行推理加速。vLLM是一个高性能的LLM服务库,可以显著提高模型的推理速度。
1. 安装vLLM
首先,需要安装项目提供的vLLM分支版本:
pip install git+https://github.com/OpenBMB/vllm.git@minicpm32. 使用vLLM进行推理
使用vLLM进行推理的代码如下:
from transformers import AutoTokenizer from vllm import LLM, SamplingParams model_name = "openbmb/MiniCPM3-4B" prompt = [{"role": "user", "content": "推荐5个北京的景点。"}] tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) input_text = tokenizer.apply_chat_template(prompt, tokenize=False, add_generation_prompt=True) llm = LLM( model=model_name, trust_remote_code=True, tensor_parallel_size=1 ) sampling_params = SamplingParams(top_p=0.7, temperature=0.7, max_tokens=1024, repetition_penalty=1.02) outputs = llm.generate(prompts=input_text, sampling_params=sampling_params) print(outputs[0].outputs[0].text)使用vLLM可以大幅提高MiniCPM3-4B的推理速度,让你的本地AI对话更加流畅。
📊 MiniCPM3-4B性能评估
MiniCPM3-4B在多个基准测试中表现出色,下面是一些主要的评估结果:
在中文任务上,MiniCPM3-4B表现优异,CMMLU得分为73.3,CEVAL得分为73.6,均超过了许多同规模的模型。在数学任务上,GSM8K得分为81.1,MathBench得分为65.6,展现了强大的数学推理能力。在代码任务上,HumanEval+得分为68.3,MBPP+得分为63.2,说明MiniCPM3-4B也具备不错的代码生成能力。
总体而言,MiniCPM3-4B的平均得分为66.3,超过了Qwen2-7B-Instruct、GLM-4-9B-Chat等模型,是一款性能强大的小型AI模型。
📝 总结
通过本文的教程,你已经学会了如何使用MiniCPM3-4B实现本地AI对话。我们首先搭建了环境并安装了依赖,然后使用示例脚本进行了简单的对话,还介绍了如何使用vLLM来提升推理性能。MiniCPM3-4B是一款性能强大且易于使用的小型AI模型,非常适合在本地环境中部署和使用。
希望本文能够帮助你快速上手MiniCPM3-4B,享受本地AI对话带来的便利和乐趣!如果你有任何问题或建议,欢迎在项目仓库中提出。
【免费下载链接】MiniCPM3-4B项目地址: https://ai.gitcode.com/hf_mirrors/zhouhui/MiniCPM3-4B
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考