当前位置:首页|资讯

小钢炮技术教程|MiniCPM的边端部署

作者:OpenBMB发布时间:2024-09-27

|原文章发布于2024年07月22日

应广大开发者要求,我们推出了飞书知识库「面壁小钢炮MiniCPM通关宝典」!会在接下来一段时间内持续上新,从技术拆解到部署推理到量化微调,手把手教你速通MiniCPM模型!后台回复“小钢炮”,解锁「面壁小钢炮MiniCPM通关宝典」全文。


 ➤  B站配套视频 ,搭配食用更佳 

🔗 https://space.bilibili.com/493282299/channel/collectiondetail?sid=3433564

今天,为大家带来的是MiniCPM边端部署教程」

➤ 面向人群:需要对minicpm进行边端部署,且有linux和编译基础

➤ 模型介绍:MiniCPM:揭示端侧大语言模型的无限潜力

➤ Github地址:https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16

➤ 模型地址:https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16


llama.cpp PC端部署 

➤  适用设备:Linux、Mac

1. 下载llama.cpp

2. 编译llama.cpp

3.获取MiniCPM的gguf模型

方法1:直接下载

fp16格式 :https://huggingface.co/runfuture/MiniCPM-2B-dpo-fp16-gguf

q4km格式:https://huggingface.co/runfuture/MiniCPM-2B-dpo-q4km-gguf

方法2:自行转换MiniCPM模型为gguf

step1: 创建llama.cpp/models/MiniCPM路径

step2: 下载 MiniCPM pytorch模型 所有文件(也可以是训练后的模型)并保存到llama.cpp/models/Minicpm

MiniCPM pytorch模型下载链接:https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16

step3: 将模型转换为gguf格式

在这之前检查llama.cpp/convert-hf-to-gguf.py文件,如果class MiniCPMModel(Model)下存在:

将其替换为:

然后运行:

4.将fp16的gguf文件进行量化,若是下载的本身就是量化文件,可省略

#如果找不到llama-quantize,可以尝试以下方法

5.开始推理,enjoy it


llama.cpp 安卓端部署 

➤  适用设备:安卓手机,最好是骁龙8以上芯片

1. 按照以上llama.cpp PC端部署的方式获得ggml-model-Q4_K_M.gguf量化模型

2. 将以上模型推到手机内存/sdcard/Download中,以下为使用adb传输模型,其它方式传输也可以

3. 手机手机端下载合适版本的[termux]并且安装

下载链接:https://github.com/termux/termux-app/releases/tag/v0.118.1

4. 手机打开termux,输入termux-setup-storage

5. 手机termux上使用git 获取llama.cpp的源码后编译

6. 手机端推理


Ollama本地部署 

➤  适用设备:PC、服务器均可

1. 前往https://github.com/ollama/ollama安装ollama

a. mac安装ollama地址:

https://ollama.com/download/Ollama-darwin.zip

b. windows安装ollama地址:

https://ollama.com/download/OllamaSetup.exe

c. linux安装:

2. 按照PC端llama.cpp教程获取gguf格式模型

2b-fp16格式:https://huggingface.co/runfuture/MiniCPM-2B-dpo-fp16-gguf

2b-q4km格式:https://huggingface.co/runfuture/MiniCPM-2B-dpo-q4km-gguf

1b-fp16格式:https://huggingface.co/linglingdan/MiniCPM-1b-fp16-gguf

1b-qr_1格式:https://huggingface.co/linglingdan/MiniCPM-1b-q4-1

3. 命令行运行:

model_name需要自定义,比如第2步中下载MiniCPM-1b-fp16-gguf模型,便改成MiniCPM-1b-fp16-gguf.Modelfile

4. 将model_name.Modelfile 修改为以下内容

注意FROM后面改为你模型保存的路径:

5.命令行创建ollama模型链接,以下minicpm_2b是自定义的模型名称,model_name.Modelfile是前面创建的文件:

6.命令行输入可查看现有模型

7. 命令行运行创建的ollama模型

Powerinfer Linux端部署

1. powerinfer简介:

powerinfer是上海交通大学开发的一个可以基于稀疏模型在cpu/gpu上进行加速的推理引擎,可以获得最高达到llama.cpp 11倍的推理性能,但是powerinfer目前仅适配包括Minicpm-s-2b-sft在内的少部分模型,并非适配所有模型。

2. powerinfer安装:

确保你的cmake version在3.17以上,python version 3.8+

安装cmake==3.17+

安装powerinfer

编译cpu 推理版的powerinfer:

编译gpu推理版的powerinfer:

3. 获取模型

4. 开始推理:

5. 推理速度展示:

4090单卡环境下:

prefilling阶段 221 token/s

decode 阶段 45 token/s


Powerinfer 安卓端部署

➤  适用设备:安卓手机,最好是骁龙8以上芯片 

Release v0.118.1 · termux/termux-app:https://github.com/termux/termux-app/releases/tag/v0.118.1

2. 打开termux,输入两次termux-setup-storage:

3. 在termux环境中,获取编译环境cmake 3.17+和python3.8+:

a. 确保你的cmake version在3.17以上

b. 如果cmake版本不符合,则安装cmake==3.17+。否则跳过这一步

c. 获取合适版本python

d. 如果python版本低于3.8或者未安装,则运行以下代码,否则跳过此步

4. 在termux的~路径下,获取powerinfer代码,并且安装依赖包:

5. 获取MiniCPM-S-1B-sft-gguf模型

方法1 :termux端获取MiniCPM-S-1B-sft.gguf,以下是termux端操作

方法2 :先下载到pc,再用adb传入手机

step1:pc端下载模型,adb传到手机download:

以下是termux操作:

6. Termux 环境下编译powerinfer:

7. 对模型进行量化(建议操作,但非必要)

8. 模型推理:

9. 速度展示

➤ 欢迎加入 OpenBMB 社区一起讨论 

后台回复小钢炮”,解锁面壁小钢炮MiniCPM通关宝典全文。
小彩蛋🎉
大模型课第二季第二期将在明晚八点直播!欢迎大家预约观看

官方网站

https://www.openbmb.org


GitHub

https://github.com/OpenBMBhttps://github.com/thunlp


长期开放招聘|含实习

开发岗  |  算法岗  |  产品岗


交流QQ群

735930538


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1