一、介绍
MiniCPM 4 是一个极致高效的端侧大模型,从模型架构、学习算法、训练数据与推理系统四个层面进行了高效优化,实现了极致的效率提升。
- 高效模型架构:
- InfLLM v2 -- 可训练的稀疏注意力机制:采用可训练的稀疏注意力机制架构,在 128K 长文本处理中,每个词元仅需与不足 5% 的词元进行相关性计算,显著降低长文本的计算开销
- 高效学习算法:
- 模型风洞 2.0 -- 高效 Predictable Scaling:引入下游任务的 Scaling 预测方法,实现更精准的模型训练配置搜索
- BitCPM -- 极致的三值量化:将模型参数位宽压缩至 3 值,实现模型位宽 90% 的极致瘦身
- 高效训练工程优化:采用 FP8 低精度计算技术,结合多词元预测(Multi-token Prediction)训练策略
- 高知识密度训练数据:
- UltraClean -- 高质量预训练数据的清洗与合成:构建基于高效验证的迭代式数据清洗策略,开源高质量中英文预训练数据集 UltraFineweb
- UltraChat v2 -- 高质量有监督微调数据合成:构建大规模高质量有监督微调数据集,涵盖知识密集型数据、推理密集型数据、指令遵循数据、长文本理解数据、工具调用数据等多个维度
- 高效推理系统:
- CPM.cu -- 轻量级的高效 CUDA 推理框架:融合了稀疏注意力机制、模型量化与投机采样,充分体现 MiniCPM4 的效率优势
- ArkInfer -- 跨平台部署系统:支持多后端环境的一键部署,提供灵活的跨平台适配能力
二、部署过程
基础环境最低要求说明:
环境名称 | 版本信息 |
---|---|
Ubuntu | 22.04.5 LTS |
python | 3.10 |
Cuda | 12.1.1 |
NVIDIA Corporation | 3060×2或3090 |
1. 构建基础镜像Miniconda-Ubuntu-22.04-cuda12.1.1
2.从 github 仓库 克隆项目:
# 克隆 MiniCPM3 项目
git clone https://github.com/OpenBMB/MiniCPM.git
3.创建虚拟环境
# 创建一个名为 MiniCPM4 的新虚拟环境,并指定 Python 版本为 3.10
conda create -n MiniCPM4 python=3.10 -y
4.安装模型依赖包
激活MiniCPM4,并进入到MiniCPM目录中,安装 requirements.txt 依赖。
# 切换到项目工作目录
cd /MiniCPM
# 激活 MiniCPM3 虚拟环境
conda activate MiniCPM3
# 在 MiniCPM3 环境中安装 requirements.txt 依赖
pip install -r requirements.txt
5.下载预训练模型
推荐下载方法:
1.安装 modelscope 依赖包。
pip install modelscope
2.创建一个Python下载脚本
vim modelscope_download.py
3.插入以下下载代码
# Python 代码下载模型
from modelscope import snapshot_download
model_dir = snapshot_download('OpenBMB/MiniCPM3-4B', cache_dir='./', revision='master')
保存文件:Esc --》Shift + :--》输入英文的 :--》输入:wq
- 如果你正在编辑文本,先按
Esc
键退出插入模式。 - 然后,直接按
Shift + :
(不需要先按冒号,这个组合键已经包含了冒号的输入),屏幕上会出现一个冒号,提示你输入命令。 - 接着,输入
wq
,表示你想要保存文件并退出。 - 最后,按
Enter
键执行命令。
4.执行 modelscope_download.py 文件进行模型下载
python modelscope_download.py
6.更改hf_based_demo.py 文件里的模型路径.
更改为下载后的模型文件的地址。
7.运行 hf_based_demo.py 文件
1.进入到hf_based_demo.py 文件所在的目录进行运行。
cd demo/minicpm
# 运行 hf_based_demo.py 文件
python hf_based_demo.py
2.出现以上错误,根据错误安装accelerate
pip install accelerate
3继续运行hf_based_demo.py 文件
出现问题:使用一张3060爆显存,这时候需要关机实例升配置到两张卡。(如果更换成3090则不需要升配置,只需要将前面步骤重复一遍即可。)
再次更改hf_based_demo.py 文件如下代码:将device_map="cuda:0"更改为device_map="auto"。
3.更改完成继续运行hf_based_demo.py 文件。
可以成功运行:
三、网页演示
出现以下 Gradio 页面,即是模型已搭建完成。