HuggingFace镜像/MiniCPM3-4B
模型介绍文件和版本分析
下载使用量0

MiniCPM 代码库 | MiniCPM 论文 | MiniCPM-V 代码库 | 欢迎加入我们的 Discord 和 微信 交流群

简介

MiniCPM3-4B 是 MiniCPM 系列的第三代模型。其综合性能超越了 Phi-3.5-mini-Instruct 和 GPT-3.5-Turbo-0125,可与众多最新的 7B~9B 模型相媲美。

与 MiniCPM1.0/MiniCPM2.0 相比,MiniCPM3-4B 具备更强大、更多元的技能组合,能够支持更广泛的通用场景。MiniCPM3-4B 支持函数调用及代码解释器功能。使用指南请参见进阶功能。

MiniCPM3-4B 拥有 32k 的上下文窗口。借助 LLMxMapReduce 技术,理论上可处理无限长文本,且无需占用大量内存。

使用方法

使用 Transformers 进行推理

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

path = "openbmb/MiniCPM3-4B"
device = "cuda"

tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(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)

使用 vLLM 进行推理

目前,你需要安装我们的 vLLM 分支版本。

pip install git+https://github.com/OpenBMB/vllm.git@minicpm3
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)

评估结果

基准测试Qwen2-7B-InstructGLM-4-9B-ChatGemma2-9B-itLlama3.1-8B-InstructGPT-3.5-Turbo-0125Phi-3.5-mini-Instruct(3.8B)MiniCPM3-4B
英文
MMLU70.572.472.669.469.268.467.2
BBH64.976.365.267.870.368.670.2
MT-Bench8.418.357.888.288.178.608.41
IFEVAL(提示严格准确率)51.064.571.971.558.849.468.4
中文
CMMLU80.971.559.555.854.546.973.3
CEVAL77.275.656.755.252.846.173.6
AlignBench v1.17.106.617.105.685.825.736.74
FollowBench-zh(SSR)63.056.457.050.664.658.166.8
数学
MATH49.650.646.051.941.846.446.6
GSM8K82.379.679.784.576.482.781.1
MathBench63.459.445.854.348.954.965.6
代码
HumanEval+70.167.161.662.866.568.968.3
MBPP+57.162.264.355.371.455.863.2
LiveCodeBench v322.220.219.220.424.019.622.6
函数调用
BFCL v271.670.119.273.375.448.476.0
总体
平均值65.365.057.960.861.057.266.3

声明

  • 作为一款语言模型,MiniCPM3-4B 通过学习海量文本生成内容。
  • 但它不具备理解能力,也无法表达个人观点或价值判断。
  • MiniCPM3-4B 生成的任何内容均不代表模型开发者的观点或立场。
  • 因此,用户在使用 MiniCPM3-4B 生成的内容时,应自行负责对其进行评估和验证。

许可证

  • 本仓库基于 Apache-2.0 许可证发布。
  • MiniCPM3-4B 模型权重的使用必须严格遵守 MiniCPM Model License.md。
  • MiniCPM3-4B 的模型及权重完全免费用于学术研究。填写 "问卷" 完成注册后,也可免费用于商业用途。

引用

@article{hu2024minicpm,
  title={MiniCPM: Unveiling the Potential of Small Language Models with Scalable Training Strategies},
  author={Hu, Shengding and Tu, Yuge and Han, Xu and He, Chaoqun and Cui, Ganqu and Long, Xiang and Zheng, Zhi and Fang, Yewei and Huang, Yuxiang and Zhao, Weilin and others},
  journal={arXiv preprint arXiv:2404.06395},
  year={2024}
}