🚀 MiniCPM
MiniCPM 是面壁与清华大学自然语言处理实验室共同开源的系列端侧语言大模型。主体语言模型 MiniCPM - 2B 仅有 24 亿(2.4B)的非词嵌入参数量,却在多项评测中表现出色,还能在手机上进行部署推理,二次开发成本较低。
🚀 快速开始
安装transformers>=4.36.0
以及accelerate
后,运行以下代码即可开始使用 MiniCPM:
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)
path = 'openbmb/MiniCPM-2B-sft-fp32'
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.float32, device_map='cuda', trust_remote_code=True)
responds, history = model.chat(tokenizer, "山东省最高的山是哪座山, 它比黄山高还是矮?差距多少?", temperature=0.8, top_p=0.8)
print(responds)
期望输出:
山东省最高的山是泰山,海拔1545米。
相对于黄山(海拔1864米),泰山海拔较低,相差约319米。
⚠️ 重要提示
需要在from_pretrained
中明确指明模型的数据类型,否则会引起较大计算误差。
✨ 主要特性
- 性能卓越:经过 SFT 后,MiniCPM 在公开综合性评测集上与 Mistral - 7B 相近(中文、数学、代码能力更优),整体性能超越 Llama2 - 13B、MPT - 30B、Falcon - 40B 等模型;经过 DPO 后,在当前最接近用户体感的评测集 MTBench 上,MiniCPM - 2B 超越了 Llama2 - 70B - Chat、Vicuna - 33B、Mistral - 7B - Instruct - v0.1、Zephyr - 7B - alpha 等众多代表性开源大模型。
- 多模态能力出色:以 MiniCPM - 2B 为基础构建的端侧多模态大模型 MiniCPM - V,整体性能在同规模模型中实现最佳,超越基于 Phi - 2 构建的现有多模态大模型,在部分评测集上达到与 9.6B Qwen - VL - Chat 相当甚至更好的性能。
- 可移动端部署:经过 Int4 量化后,MiniCPM 可在手机上进行部署推理,流式输出速度略高于人类说话速度。MiniCPM - V 也首次跑通了多模态大模型在手机上的部署。
- 开发成本低:一张 1080/2080 可高效参数微调,一张 3090/4090 可全参数微调,一台机器可持续训练 MiniCPM。
📚 详细文档
评测结果
详细的评测结果位于github仓库
⚠️ 重要提示
我们发现使用 Huggingface 生成质量略差于 vLLM,因此推荐使用 vLLM 进行测试。我们正在排查原因。
局限性
- 受限于模型规模,模型可能出现幻觉性问题。其中由于 DPO 模型生成的回复内容更长,更容易出现幻觉。我们也将持续进行 MiniCPM 模型的迭代改进。
- 为了保证在学术研究用途上模型的通用性,我们未对模型进行任何身份认同训练。同时由于我们用 ShareGPT 开源语料作为部分训练数据,模型可能会输出类似 GPT 系列模型的身份认同信息。
- 受限于模型规模,模型的输出受到提示词(prompt)的影响较大,可能多次尝试产生不一致的结果。
- 受限于模型容量,模型的知识记忆较不准确,后续我们将结合 RAG 方法来增强模型的知识记忆能力。
📦 模型下载
📄 许可证
模型协议
声明
- 作为一个语言模型,MiniCPM 通过学习大量的文本来生成内容,但它无法理解、表达个人观点或价值判断,它所输出的任何内容都不代表模型开发者的观点和立场。
- 因此用户在使用 MiniCPM 生成的内容时,应自行负责对其进行评估和验证。
- 如果由于使用 MinCPM 开源模型而导致的任何问题,包括但不限于数据安全问题、公共舆论风险,或模型被误导、滥用、传播或不当利用所带来的任何风险和问题,我们将不承担任何责任。
📖 工作引用
如果觉得 MiniCPM 有助于您的工作,请考虑引用下列技术报告
@inproceedings{minicpm2024,
title={MiniCPM:Unveiling the Potential of End-side Large Language Models},
booktitle={OpenBMB Blog},
year={2024}
}