MiniCPM: 揭示端侧大语言模型的无限潜力
中文 | English
MiniCPM 技术博客 | MiniCPM 论文 | MiniCPM-V 仓库 | 加入我们的 discord 和 微信群
MiniCPM 是面壁智能与清华大学自然语言处理实验室共同开源的系列端侧大模型,主体语言模型 MiniCPM-2B 仅有 24亿(2.4B)的非词嵌入参数量, 总计2.7B参数量。
- 经过 SFT 后,MiniCPM-2B 在公开综合性评测集上与 Mistral-7B 表现相近(中文、数学、代码能力更优),整体性能超越 Llama2-13B、MPT-30B、Falcon-40B 等模型。
- 经过 DPO 后,MiniCPM-2B 在当前最接近用户体感的评测集 MTBench 上也超越了 Llama2-70B-Chat、Vicuna-33B、Mistral-7B-Instruct-v0.1、Zephyr-7B-alpha 等众多代表性开源大模型。
- 以 MiniCPM-2B 为基础构建端侧多模态大模型 MiniCPM-V 2.0,在多个测试基准中实现了 7B 以下模型的最佳性能,在 OpenCompass 榜单上超过了 Qwen-VL-Chat 9.6B、CogVLM-Chat 17.4B 和 Yi-VL 34B 等更大参数规模的模型。MiniCPM-V 2.0 还展现出领先的 OCR 能力,在场景文字识别能力上接近 Gemini Pro。
- 经过 Int4 量化后,MiniCPM 可在手机上进行部署推理,流式输出速度略高于人类说话速度。MiniCPM-V 也直接跑通了多模态大模型在手机上的部署。
- 一张1080/2080可高效参数微调,一张3090/4090可全参数微调,一台机器可持续训练 MiniCPM,二次开发成本较低。
我们完全开源MiniCPM系列的模型参数供学术研究和有限商用。 具体而言,我们目前已公开以下模型,地址详见 模型下载 部分
- 基于MiniCPM-2B的指令微调与人类偏好对齐版本MiniCPM-2B-SFT/DPO。
- 基于MiniCPM-2B的多模态模型MiniCPM-V 2.0。
- MiniCPM-2B-SFT/DPO的Int4量化版MiniCPM-2B-SFT/DPO-Int4。
- MiniCPM-2B的128k长文本版本MiniCPM-2B-128k。
- MiniCPM-2B的MoE版本MiniCPM-MoE-8x2B。
- 更轻量级的MiniCPM-1B指令微调版本MiniCPM-1B-SFT。
- 基于MLC-LLM、LLMFarm开发的MiniCPM手机端程序,文本及多模态模型均可在手机端进行推理。
- MiniCPM-2B训练过程中的30个Checkpoints供模型机理研究。
局限性:
- 受限于模型规模,模型可能出现幻觉性问题。其中由于DPO模型生成的回复内容更长,更容易出现幻觉。我们也将持续进行MiniCPM模型的迭代改进。
- 为了保证在学术研究用途上模型的通用性,我们未对模型进行任何身份认同训练。同时由于我们用ShareGPT开源语料作为部分训练数据,模型可能会输出类似GPT系列模型的身份认同信息。
- 受限于模型规模,模型的输出受到提示词(prompt)的影响较大,可能多次尝试产生不一致的结果。
- 受限于模型容量,模型的知识记忆较不准确,后续我们将结合RAG方法来增强模型的知识记忆能力。
目录
常用模块导航
推理 | 微调 | 手机部署 | 量化 |
---|---|---|---|
Transformers | Transformers | MLC部署 | GPTQ |
vLLM | mlx_finetune | llama.cpp | AWQ |
llama.cpp | llama_factory | 困惑度测试 | |
ollama | |||
fastllm | |||
mlx_lm | |||
powerinfer |
更新日志
- 2024/04/11 开源MiniCPM-V-2.0、MiniCPM-2B-128k、MiniCPM-MoE-8x2B和MiniCPM-1B!点击这里查看技术博客。
- 2024/03/16 MiniCPM-2B 的30余个中间检查点开放了!HuggingFace链接
- 2024/02/13 支持了llama.cpp
- 2024/02/09 我们在README里加入了一个开源社区章节,用来收集开源社区对MiniCPM的支持案例。
- 2024/02/08 我们更新了llama-format的模型权重,方便大家更加快捷地使用我们的模型。
- 2024/02/01 初始发布。
模型下载
-
语言模型