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 torchpath = "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.mzph.cn/pingmian/54220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 内核的版本控制

Linux 内核的版本控制以及确保模块兼容性是开发和维护 Linux 系统时非常重要的一部分。 Linux 内核采用了语义版本控制(Semantic Versioning),通常由三个部分组成: 主版本号(major)、次版本号(m…

leetcode - 分治思想

分治 - 快排 这里快排我们统一使用 数组分三块 和 随机产生基准值的方法实现排序 数组分三块: . - 力扣(LeetCode) 整个思想即将数组按照基准值分为三个区间 , 具体实现: 三指针实现. 遍历指针 , 左区间右边界指针 , 右区间左边界指针 class Solutio…

卸载完mathtype后,删除word加载项中的mathtype

请参考博客“卸载完mathtype后,word加载项中还是有mathtype的解决方法_怎么删除word加载项里的mathtype-CSDN博客”以及 “安装卸载MathType经验解决MathType DLL找不到的问题——超实用_mathtype dll cannot-CSDN博客” 如果在删除.dotm文件时,删不掉…

随着访问范围的扩大 OpenAI o1-mini 现已向免费用户开放

上周,OpenAI 展示了其最新的大型语言模型(LLM)–OpenAI o1及其小兄弟 OpenAI o1-mini。该公司在公告中称,Plus 和 Team 用户可在公告发布之日起访问该模型。企业和教育用户将在本周获得该模型,而免费用户最终将获得 o1…

Golang | Leetcode Golang题解之第404题左叶子之和

题目: 题解: func isLeafNode(node *TreeNode) bool {return node.Left nil && node.Right nil }func sumOfLeftLeaves(root *TreeNode) (ans int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {node : q[0]q q[1:]if no…

Mac 上,终端如何开启 proxy

前提 确保你的浏览器可以访问 google,就是得先有这个能力 步骤 查看网络的 http/https 还有 socks5 的 port配置 .zshrc 查看 port 点击 wifi 设置 以我的为例,我的 http/https 都是 7890, socks5 是 7891 查看代理的port 以我的软件…

清华团队发布鼻咽癌诊断模型,自动从HE染色图像生成EBER染色图像|文献精析·24-09-18

小罗碎碎念 今天精读的这篇文章于2024年7月22日发表,作者来自清华大学和广西大学。 角色姓名单位名称(中文)第一作者曾清华大学珠三角研究院医学光学技术研发中心,广州通讯作者何清华大学深圳国际研究生院生物制药与健康工程研究所…

Ubuntu系统入门指南:常用命令详解

Ubuntu系统入门指南:常用命令详解 引言 Ubuntu是一个基于Linux内核的开源操作系统,由Canonical公司和社区共同开发和维护。它以易用性、稳定性和广泛的软件支持而著称,广泛应用于个人电脑、服务器和云计算环境。对于新手来说,掌…

【Django5】django的helloworld

安装django pip install djangoDjango官方中文文档 https://docs.djangoproject.com/zh-hans/5.1/Github链接 https://github.com/django/django创建Django项目 cd到想要创建项目的文件夹下,输入以下命令创建项目 这行代码将会在当前目录下创建一个 mysite 目录 …

算法.图论-并查集上

文章目录 1. 并查集介绍2. 并查集的实现2.1 实现逻辑2.2 isSameSet方法2.3 union方法(小挂大优化)2.4 find方法(路径压缩优化) 3. 并查集模板 1. 并查集介绍 定义: 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所…

linux 解压缩

1、tar命令 # 压缩文件 file1 和目录 dir2 到 test.tar.gz tar -zcvf test.tar.gz file1 dir2 # 解压 test.tar.gz(将 c 换成 x 即可) tar -zxvf test.tar.gz # 列出压缩文件的内容 tar -ztvf test.tar.gz 释义:-z : 使用 gzip 来压缩和解压…

JavaDS —— 图

图的概念 图是由顶点集合以及顶点之间的关系组成的一种数据结构:G (V,E) 其中 V 表示的是顶点集合 : V { x | x 属于某个数据对象集} 是有穷非空集合 E 叫做边的集合 : E {(x, y) | x, y 属于 V} 或者 …

Next.js 14 如何在服务端页面中使用客户端渲染组件

在Next.js中,默认就是使用服务端渲染的,那如何在服务端页面中包含客户端组件呢,以下是试例: 在ArticlePage.js中: import DeleteButton from /components/DeleteBtnexport default async function ArticlePage(){retu…

Qt 模型视图(二):模型类QAbstractItemModel

文章目录 Qt 模型视图(二):模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二):模型类QAbstractItemModel ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…

Kotlin cancel CoroutineScope.launch的任务后仍运行

Kotlin cancel CoroutineScope.launch的任务后仍运行 import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope CoroutineScope(Dispatchers.IO)val job coroutineScope.launch {var i 0while (i < Int.MAX_VALUE) {iprintln(i)}}// 2ms 取消协程delay(…

搜索小车运动最短路径python代码实现

一、实验任务 场地中正方格代表障碍物&#xff0c;选取小车运动起点和终点。编程探究小车从起点运动到终点&#xff0c;总共有几种可行的路径&#xff08;路径不含重叠部分&#xff09;&#xff0c;同时找出最短路径并可视化。 二、实验思路 把场地抽象化为69的平面矩阵&…

五种嵌入式中常见网络协议栈

一.LWIP 1.介绍 LwIP&#xff08;Lightweight IP&#xff09;是一个由瑞典计算机科学院&#xff08;Swedish Institute of Computer Science&#xff09;开发的轻量级TCP/IP协议栈&#xff0c;专为资源有限的嵌入式系统而设计。它以其小巧且功能完善的特性&#xff0c;在物联…

Deep Learning-Based Object Pose Estimation:A Comprehensive Survey

论文&#xff1a;https://arxiv.org/pdf/2405.07801v3 项目&#xff1a;https://github.com/CNJianLiu/Awesome-Object-Pose-Estimation 年份&#xff1a;2024 方向&#xff1a;姿态估计 1. 目标姿态估计定义 估计图像中目标相对于相机的姿态&#xff0c; 目标姿态估计是增…

YoloV8 trick讲解

1.将 YOLOv5 的 C3结构换成了梯度流更丰富的 C2f结构: C3 C3 模块的设计灵感来自 CSPNet&#xff0c;其核心思想是将特征图的部分通道进行分割和并行处理&#xff0c;目的是减少冗余梯度信息&#xff0c;同时保持较高的网络表达能力。C3 结构与传统的残差结构类似&#xff0c;但…

yolov5/8/9/10模型在VOC数据集上的应用【代码+数据集+python环境+GUI系统】

yolov5/8/9/10模型在VOC数据集上的应用【代码数据集python环境GUI系统】 1.背景意义 VOC数据集被广泛应用于计算机视觉领域的研究和实验中&#xff0c;特别是目标检测和图像识别任务。许多知名的目标检测算法都使用VOC数据集进行训练和测试。VOC挑战赛&#xff08;VOC Challeng…