chatglm3-6b小试

2024-06-06 03:36
文章标签 6b 小试 chatglm3

本文主要是介绍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")

这篇关于chatglm3-6b小试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034977

相关文章

关于springboot对接chatglm3-6b大模型的尝试

之前我们通过阿里提供的cloud ai对接了通义千问。cloud ai对接通义千问 那么接下来我们尝试一些别的模型看一下,其实这个文章主要是表达一种对接方式,其他的都大同小异。都可以依此方法进行处理。 一、明确模型参数 本次我们对接的理论支持来自于阿里云提供的文档。阿里云大3-6b模型文档 我们看到他其实支持多种调用方式,包括sdk和http,我本人是不喜欢sdk的,因为会有冲突或者版本之类的

chatglm3-6b下载时,需要下载哪些文件

在huggingface或modelscope上下载chatglm3-6b时,会发现有两种可执行文件,一种是.bin,一种是.safetensors,在使用的时候你如果直接用git命令git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git直接下载,你会发现它会把所有的文件都下载下来。 因为文件很大,就很占用硬盘空间。所以当你使用.

快排小试之万数排序

早就听说过快速排序法(主要是叶大神整天叨叨快排),想到这么重要的算法还不会各种羞愧,然后就百度百科,自己摸索领悟这个算法,居然像模像样的把算法实现了个大概,然后,同时写了冒泡,打算让他们PK一下!!! 先把这个程序贴出来。   #include <stdio.h>#include <stdlib.h>#define MAX 10000#define QP#ifdef QPint qp

ModuleNotFoundError: No module named ‘transformers_modules.chatglm-6b-v1‘

ModuleNotFoundError: No module named 'transformers_modules.chatglm-6b-v1'  欢迎来到英杰社区https://bbs.csdn.net/topics/617804998          欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,

llama-factory微调chatglm3

一、定义 案例/多卡 二、实现 案例 1. 下载chatglm3-6b-32k模型 2. 配置数据集微调指令 CUDA_VISIBLE_DEVICES=0,1 llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path /home/chatglm3-6b-32k \--finetuning_type

python-Langchain-Chatchat+ChatGLM2-6B在16G内存电脑上运行

python-Langchain-Chatchat+ChatGLM2-6B在16G内存电脑上运行 代码链接ChatGLMLangchain-Chatchat 环境准备模型下载Langchain-Chatchat配置configs中example文件修改configs/model_config.py修改修改 server配置 知识库初始化参考链接 代码链接 ChatGLM ht

【记录】ChatGLM3-6B大模型部署、微调(二):微调

前言         上文记录了ChatGLM3-6B大模型本地化部署过程,本次对模型进行微调,目的是修改模型自我认知。采用官方推荐微调框架:LLaMA-Factory 安装LLaMA-Factory # 克隆项目 git clone https://github.com/hiyouga/LLaMA-Factory.git 安装依赖 # 安装项目依赖 cd LLaMA-Fa

C++04:使用Boost-小试Regex库

一、编写代码 下面代码实现的功能:找出html文件中的所有链接 /** regex_test.cpp**/#include <iostream>#include <fstream>#include <string>#include <boost/regex.hpp>using namespace std;int main(int argc, char* argv[]) {if (arg

12.实战私有数据微调ChatGLM3

实战私有数据微调ChatGLM3 实战私有数据微调ChatGLM3实战构造私有的微调数据集基于 ChatGPT 设计生成训练数据的 Prompt使用 LangChain + GPT-3.5-Turbo 生成训练数据样例训练数据解析、数据增强和持久化存储自动化批量生成训练数据集流水线提示工程(Prompt Engineering):强化返回格式,不断测试结果 实战私有数据微调 ChatGLM3

本地GPT-window平台 搭建ChatGLM3-6B

一 ChatGLM-6B 介绍          ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,新一代开源模型 ChatGLM3-6B 已发布,拥有10B以下最强的基础模型,支持工具调用(Function Call)、代码执行(Code Interpreter)、Agent 任务等功能,结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB