当前位置: 首页 > article >正文

MiniCPM3-4B | 笔记本电脑运行端侧大模型OpenBMB/MiniCPM3-4B-GPTQ-Int4量化版 | PyCharm环境

MiniCPM3-4B,轻松在笔记本电脑上运行大模型?

    • 背景
    • 一、选择模型
    • 二、模型下载
    • 三、模型运行
    • 四、总结

背景

2024年9月5日,面壁智能发布了MiniCPM3-4B,面壁的测试结果声称MiniCPM3-4B表现超越 Phi-3.5-mini-instruct 和 GPT-3.5-Turbo-0125,并且能够比肩 Llama3.1-8B-Instruct、Qwen2-7B-Instruct、GLM-4-9B-Chat 等多个 7B-9B 参数量的模型。

实践出真知,博主觉得用自己的老手提笔记本试试,看能不能也跑个大模型装一下逼。

一、选择模型

官网提供了几种下载模型的方式,经过测试还是使用ModelScope下载比较稳定,同时考虑到笔记本比较老还是下载一个小一个的,不然等下跑挂了就麻烦了。这里我们下载MiniCPM3-4B的GPTQ-Int4量化版本MiniCPM3-4B-GPTQ-Int4

在这里插入图片描述

下载地址如下:
MiniCPM3-4B的GPTQ-Int4量化版本MiniCPM3-4B-GPTQ-Int4下载链接

二、模型下载

找到合适的模型后,我们就可以开始下载模型文件了。首先打开上面提到的网页链接,并依次点击-【模型文件】-【下载模型】,如下图所示:

在这里插入图片描述

在网页右侧弹出的下载页面中网站提供了多种形式的下载方式,博主选择使用SDK下载,下载模型比较方便,直接把代码拷贝在PyCharm里运行,程序就会自动开始下载模型。
在这里插入图片描述
我们需要先在PyCharm中新建一个python项目,并运行以下代码:

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('OpenBMB/MiniCPM3-4B-GPTQ-Int4')

然后等待模型下载完毕,模型大约需要2G多磁盘空间,如下图:

在这里插入图片描述

博主运行完程序后一度找不到模型文件,经过上网查阅资料,发现modelscope的下载代码,会默认把模型下载到这个系统文件地址C:\Users\Administrator\.cache\modelscope\hub,下载完毕后可以进入这个文件地址检查一下是否下载成功。如下图所示:

在这里插入图片描述
接着,我们需要把OpenBMB整个文件夹拷贝到PyCharm新建的项目根目录下,如下图所示。

在这里插入图片描述

三、模型运行

模型完成下载,并将模型文件拷贝到程序运行目录后,就可以直接开始模型的运行测试了,只需把以下代码拷贝到PyCharm运行即可。

from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch

path = "OpenBMB/MiniCPM3-4B-GPTQ-Int4"
device = "cuda"

tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.float16, 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=256,
    top_p=0.7,
    [temperature=0.7](https://blog.csdn.net/OkGogooXSailboat/article/details/137627530)
)

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)

如果运行的过程中出现找不到某个包,就用pip进行安装,如果提示GPU相关的问题则需要进一步检查。这里简单讲一下博主遇到的GPU问题。主要是不能直接安装默认的torch,需要通过特定地址安装笔记本GPU驱动对应版本的torch。

下图是通过特定地址安装对应CUDA版本,cu118,torth包的截图。
在这里插入图片描述
具体解决方案可以参考以下文章。
Torch not compiled with CUDA enabled问题解决过程记录

解决完各种报错后,只需要耐心等待程序执行结果即可,博主的笔记本电脑经过约3-5分钟后得出了以下结果,总算是跑通了第一个本地端侧大模型了。
在这里插入图片描述

四、总结

随着大模型的运行和推理条件越来越低,端侧大模型的应用和推广应该会非常迅速,因为端侧有大量的应用场景,特别是对数据安全要求较高的单位,同时部署端侧大模型的技术要求越来越低,工具越发齐全,博主完全是一个小白,紧紧翻阅网上资料,不到半天就调通了,可见未来工具链再升级后,端侧应该很快就会实现自动下载、更新、微调等更便于模型实用化推广的技术,加快移动终端设备端侧大模型普及。


http://www.kler.cn/news/311337.html

相关文章:

  • Redis---卸载Redis
  • Basler 相机与LabVIEW进行集成
  • linux 自动清除日志 脚本
  • 828华为云征文 | 深度评测,华为云Flexus X实例在Sysbench性能测试中的亮眼表现
  • shell常用命令
  • Python开发深度学习常见安装包 error 解决
  • Redis 配置
  • AI绘画与摄影新纪元:ChatGPT+Midjourney+文心一格 共绘梦幻世界
  • CSP-J 算法基础 快速排序
  • 初写MySQL四张表:(3/4)
  • 八股文-JVM
  • 黑马程序员Java笔记整理(day01)
  • 用idea编写并运行第一个spark scala处理程序
  • RK3568平台(网络篇)MAC地址烧录
  • 工业仪器仪表指针数据集
  • 基于Python实现的一个电影知识库QA系统
  • 网络安全 DVWA通关指南 DVWA Stored Cross Site Scripting (存储型 XSS)
  • 卷积和转置卷积的输出尺寸计算
  • Qt_显示类控件
  • 二叉树的层序遍历-广度优先遍历
  • 专题四_位运算( >> , << , , | , ^ )_算法详细总结
  • 图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】
  • 汇编(实现C语言程序的调用)
  • TestDeploy v3.0构思
  • Vue2接入高德地图API实现搜索定位和点击获取经纬度及地址功能
  • 【Python报错已解决】ModuleNotFoundError: No module named ‘sklearn‘
  • 离散化c++
  • Django创建模型
  • 力扣(leetcode)每日一题 1184 公交站间的距离
  • 机器人相关知识的本身和价值