chatglm3-6b小试

原本想在VMware中装个unbutu,再搞chatglm,但经过调研发现业内都是采用双系统来搞chat的开发。于是只好用rufus制作了一个ubuntu22.04的系统盘,你需要准备8G,因为制作好镜像后是7个多G。安装这里就不说了。
1 ubuntu环境
安装好ubuntu后,先更新apt的源

# vim是vi的扩展版本
sudo apt install vim
cd /etc/apt
sudo cp sources.list sources.list.backup
sudo vim sources.list
# 将下面的文件写入到sources.list末尾
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 验证源是否生效
sudo apt update
# 执行更新所有可更新的软件包
sudo apt upgrade
# 注意汉化后,应该采用英文路径名称
export LANG=en_US
xdg-user-dirs-gtk-update

安装依赖包

sudo apt install gcc
sudo apt install g++
sudo apt install make
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
# 禁用自带的Nouveau驱动,这个模型可以满足桌面和基本3D渲染,但大模型是针对3090以上的显卡。
sudo vim /etc/modprobe.d/blacklist.conf 
# 在最后一样添加上
blacklist nouveau
# 生效
sudo update-initramfs -u

通过ubuntu自身的软件更新,安装nvidia显卡驱动。安装好后nvidia-smi,说明显卡驱动安装成功。开发一般不需要自己去安装cuda,因为安装torch的时候他自己就会全装

2 aneconda
之所说安装aneconda,因为大模型里面很多程序不是对应的版本,容易出错,就需要想nvm一样采用不同的环境。

bash Anaconda3-2024.02-1-Linux-x86_64.sh
vim ~/.bashrc
# 在文件最后添加
export PATH=/home/dj/anaconda3/bin:$PATH
# 生效
source ~/.bashrc
# 中间有一步不小写直接回车了,就按照下面的脚本修正
echo $SHELL
eval "$(/home/dj/anaconda3/bin/conda shell.bash hook)"
conda init
source ~/.bashrc
conda config --set auto_activate_base false
source ~/.bashrc
# 创建python环境
conda create -n chatglm3_test python==3.11
conda activate chatglm3_test 
conda env list
conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=12.1 -c pytorch -c nvidia
python -m -pip install --upgrade pip

3 chatglm3-6b
有人购买pigcha加速器,以及安装git-lfsHugging Face。,虽然模型比较大,但国内有对应的景象,奇怪这个模型不是我们自己人研究的吗,怎么还要科学上网。在魔塔社区可以下载到对应的模型,不需要花冤枉钱。

mkdir -p /home/dj/workspace
cd workspace
sudo git clone https://github.com/THUDM/ChatGLM3.git
# 下载代码
cd ChatGLM3
conda activate chatglm3_test 
# 安装项目依赖
pip install -r requirements.txt
# 安装juptyer
conda install ipykernel
python -m ipykernel install --user --name=chatglm3_test --display-name="Python(chatglm3_test)"

运行模型,在basic_demo修正web_demo_gradio.py中从魔塔中的模型,不需要跟工程在同一个文件,因为这个模型文件就有12G。

ModelType = Union[PreTrainedModel, PeftModelForCausalLM]
TokenizerType = Union[PreTrainedTokenizer, PreTrainedTokenizerFast]# MODEL_PATH = os.environ.get('MODEL_PATH', 'THUDM/chatglm3-6b')
MODEL_PATH = os.environ.get('MODEL_PATH', r'/home/dj/models/chatglm3-6b')
TOKENIZER_PATH = os.environ.get("TOKENIZER_PATH", MODEL_PATH)def _resolve_path(path: Union[str, Path]) -> Path:return Path(path).expanduser().resolve()

接着运行python web_demo_gradio.py ,就可以了。我的拯救者显卡是RTX 4060,8G独显是不够的,生成有些慢。在ubuntu中安装了gnome-screenshot后,可以截图看到效果,好像这个chat机器人有点憨
1
采用streamlit启动,执行脚本streamlit run web_demo_streamlit.py,运行效果如下,界面风格有点差异,已经有点AI的意思了

在这里插入图片描述
查看GPU资源使用,看来8G的独显是不够的。
1
4 使用openai
因为又用到了bge-m3,这个模型,bge-m3,这里使用脚本下载一下,需要先pip install modelscope,接着按照文档中的描述下载模型,目测通过脚本,下载要比git下载要快

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('Xorbits/bge-m3')

在这里插入图片描述
下载之后同样要改模型路径后,运行

(chatglm3_test) dj@dj-Legion-Y9000P-IRX8:~/workspace/ChatGLM3/openai_api_demo$ python api_server.py 
Loading checkpoint shards: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7/7 [00:01<00:00,  6.59it/s]
WARNING:root:Some parameters are on the meta device device because they were offloaded to the cpu.
Traceback (most recent call last):File "/home/dj/workspace/ChatGLM3/openai_api_demo/api_server.py", line 537, in <module>embedding_model = SentenceTransformer(EMBEDDING_PATH, device="cuda")^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/sentence_transformers/SentenceTransformer.py", line 315, in __init__self.to(device)File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1173, in toreturn self._apply(convert)^^^^^^^^^^^^^^^^^^^^File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/torch/nn/modules/module.py", line 779, in _applymodule._apply(fn)File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/torch/nn/modules/module.py", line 779, in _applymodule._apply(fn)File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/torch/nn/modules/module.py", line 779, in _applymodule._apply(fn)[Previous line repeated 4 more times]File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/torch/nn/modules/module.py", line 804, in _applyparam_applied = fn(param)^^^^^^^^^File "/home/dj/anaconda3/envs/chatglm3_test/lib/python3.11/site-packages/torch/nn/modules/module.py", line 1159, in convertreturn t.to(^^^^^
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 16.00 MiB. GPU

看来是GPU的显存不够,因此只好调整为cpu模式

  # embedding_model = SentenceTransformer(EMBEDDING_PATH, device="cuda")embedding_model = SentenceTransformer(EMBEDDING_PATH, device="cpu")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23209.shtml

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

相关文章

升级HarmonyOS 4.2,开启健康生活篇章

夏日来临&#xff0c;华为智能手表携 HarmonyOS 4.2 版本邀您体验&#xff0c;它不仅可以作为时尚单品搭配夏日绚丽服饰&#xff0c;还能充当你的健康管家&#xff0c;从而更了解自己的身体&#xff0c;开启智能健康生活篇章。 高血糖风险评估优化&#xff0c;健康监测更精准 …

在SpringBoot项目中应用RedisCache功能

1.application.yaml中添加cache配置 spring:cache:type: redisredis:time-to-live: 72000000key-prefix: redis:cache:use-key-prefix: truecache-null-values: true 2.封装RedisCache配置类 EnableConfigurationProperties(CacheProperties.class) Configuration EnableCac…

Spring注解驱动开发与第三方整合实战指南

注解开发定义Bean对象 Spring框架提供了丰富的注解来简化XML配置&#xff0c;其中Component是最基础的注解&#xff0c;它标志着一个Java类作为Spring中的Bean。针对不同的层&#xff0c;Spring还提供了特定的衍生注解&#xff0c;如Controller用于Web层&#xff0c;Service用于…

海南聚广众达电子商务咨询有限公司靠谱吗?

在数字经济的浪潮中&#xff0c;抖音电商作为新兴业态&#xff0c;正以其独特的魅力和强大的势能&#xff0c;改变着传统商业模式&#xff0c;引领着新一轮的消费潮流。海南聚广众达电子商务咨询有限公司&#xff0c;作为抖音电商服务领域的佼佼者&#xff0c;凭借其专业的团队…

Scalable Membership Inference Attacks via Quantile Regression

我们使用以下六个分类标准: 动机: 隐私问题:许多研究背后的主要动机是对机器学习模型相关的隐私风险日益增长的担忧。例如,Shokri等人(2017)和Carlini等人(2022)专注于开发和改进成员推理攻击,以评估模型对隐私泄露的脆弱性。模型理解:一些研究深入了解机器学习模型的固有…

重学java 65.IO流 缓冲流

I am not afraid tomorrow for I have seen yesterday and love today —— 24.6.5 一、字节缓冲流 1.字节缓冲流的意义 之前所写的FileOutputstream、FileInputstream、FileReader、Filewriter这都叫做基本流,其中FileInputstream和FieOutputstream的读写方法都是本地方法(方…

局域网怎么设置路由器?

在搭建局域网的过程中&#xff0c;设置路由器是非常重要的一步。正确地设置路由器可以确保局域网的正常运行&#xff0c;并且可以更好地保护网络安全。以下是一些关于如何设置路由器的指南。 第一步&#xff1a;获取路由器 您需要获得一台适合您需求的路由器设备。选择一款性能…

idea如何根据路径快速在项目中快速打卡该页面

在idea项目中使用快捷键shift根据路径快速找到该文件并打卡 双击shift(连续按两下shift) -粘贴文件路径-鼠标左键点击选中跳转的路径 自动进入该路径页面 例如&#xff1a;我的实例路径为src/views/user/govType.vue 输入src/views/user/govType或加vue后缀src/views/user/go…

回炉重造java----JUC(第二天)

Monitor---监视器/管程 对象头&#xff1a; 操作系统提供的Monitor对象 Synchronized底层实现原理&#xff1a; ①锁对象在加了synchronized之后&#xff0c;对象头中的Mark Word中就存了一个Monitor的地址指针。 ②当一个线程获取到锁之后&#xff0c;Monitor中的Owner属性指…

Leetcode3168. 候诊室中的最少椅子数

Every day a Leetcode 题目来源&#xff1a;3168. 候诊室中的最少椅子数 解法1&#xff1a;模拟 代码&#xff1a; /** lc appleetcode.cn id3168 langcpp** [3168] 候诊室中的最少椅子数*/// lc codestart class Solution { public:int minimumChairs(string s){int chair…

【踩坑记录】Elasticsearch查询:circuit_breaking_exception异常解决方案

项目场景&#xff1a; springboot中使用ES7查询一个月内的数据量趋势时出错。在开发线上正常&#xff0c;演示线时出现异常 问题描述 项目在演示线环境的时候&#xff0c;出现查询异常 异常信息如下&#xff1a; org.elasticsearch.ElasticsearchStatusException: Elastics…

Web3设计风格和APP设计风格

Web3设计风格和传统APP设计风格在视觉和交互设计上有一些显著的区别。这些差异主要源于Web3技术和理念的独特性&#xff0c;以及它们在用户体验和界面设计中的具体应用。以下是Web3设计风格与传统APP设计风格的主要区别。北京木奇移动技术有限公司&#xff0c;专业的软件外包开…

Android 13 亮度调节代码分析

frameworks\base\packages\SystemUI\res\layout\quick_settings_brightness_dialog.xml 进度条控件 <com.android.systemui.settings.brightness.BrightnessSliderViewxmlns:android"http://schemas.android.com/apk/res/android"android:id"id/brightness…

【PL理论】(5) F#:递归类型 | Immutability 特性(F#中值一旦定义就不会改变)

&#x1f4ad; 写在前面&#xff1a;本文旨在探讨不可变数据结构在 F# 编程中的应用&#xff0c;特别是如何利用递归记录类型来表示和操作数值表达式。通过定义存储整数的二叉树和数值表达式的类型&#xff0c;我们将展示不可变性如何简化程序的理解和维护。文章将对比 F# 与命…

Android音频API介绍

Android系统提供了四个层面的音频API&#xff1a; Java层MediaRecorder&MediaPlayer系列&#xff1b;Java层AudioTrack&AudioRecorder系列&#xff1b;Jni层opensles&#xff1b;JNI层AAudio&#xff08;Android O引入&#xff09; 下面分别介绍这些API的使用及特点。…

opencv用自适应直方图均衡化函数cv2.createCLAHE()提高对比度

来自WeTab AI Pro cv2.createCLAHE() 是 OpenCV 中的一个函数&#xff0c;用于创建 CLAHE&#xff08;Contrast Limited Adaptive Histogram Equalization&#xff0c;对比度受限自适应直方图均衡化&#xff09;对象。CLAHE 是一种增强图像局部对比度的技术&#xff0c;通过限…

@EnableWebSecurity 注解的用途及适用场景

在 Spring Security 框架中&#xff0c;EnableWebSecurity 注解是一个重要的功能&#xff0c;用于启用 Spring Security 的 Web 安全功能。它为 Spring MVC 应用程序提供了一系列的安全特性&#xff0c;如登录、权限验证、会话管理、密码加密等。 以下是一些使用 EnableWebSec…

Vulnhub-DC-2

靶机IP:192.168.20.135 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) kaliIP:192.168.20.128 扫描靶机端口及服务版本 发现开放了80和7744端口 并且是wordpress建站 dirsearch扫描目录 访问前端界面&#xff0c;发现存在重定向 在hosts文件中增加192.168.2…

HandyControl的属性编辑器如何绑定自定义控件,并集成到自定义编辑器

第一步&#xff1a;自定义控件的TypeDescription描述。 为了扩展.NET的类型描述系统(Type Descriptor System)&#xff0c;在运行时动态地更改对象的属性&#xff0c;使得这些属性在PropertyGrid上下文中不会被显示。 1.CLTypeDescriptionProvider&#xff1a;这是一个TypeDesc…

【第5章】SpringBoot实战篇之登录模式切换

文章目录 前言一、接口扩展1. LoginStorage2. LocalLoginStorage3. RedisLoginStorage4. 参数配置 二、登录相关接口改动1.登录接口2. 登录拦截器 总结 前言 前面分别介绍了本地Map和redis存储用户登录信息&#xff0c;但是第二天我登录就出现问题了&#xff0c;因为我Redis部…