腾讯云Chatglm及相关部署并微调

本文详细指导了如何下载ChatGLM2-6B模型及相关包,部署过程,以及在Ubuntu上测试、web界面交互和模型微调的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载chatglm相关文件以及部署:

1)需要下载的文件ChatGLM2-6B

下载ChatGLM2-6B:

指令:git clone https://github.com/THUDM/ChatGLM2-6B

(注:如果上面代码下载不了,请输入如下代码(git clone https://ghproxy.com/起到代理服务的作用):

git clone https://ghproxy.com/https://github.com/THUDM/ChatGLM2-6B

2)下载配套的包:

进入刚下载好的ChatGLM2-6B界面;

指令:cd ChatGLM2-6B

直接使用如下命令安装配套的包;

指令:pip install -r requirements.txt

ChatGLM2-6B文件是辅助文件,不包含模型,接下来我们下载模型

3)部署模型(由于网络不稳定,建议多次输入执行命令)

git clone https://huggingface.co/THUDM/chatglm2-6b

进入刚下载好的chatglm2-6b目录;

cd chatglm2-6b

将chatglm2中pytorch_model-0000X-of-00007.bin的文件删掉,重新下载,下载命令如下:

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00001-of-00007.bin

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00002-of-00007.bin

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00003-of-00007.bin

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00004-of-00007.bin

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00005-of-00007.bin

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00006-of-00007.bin

wget https://huggingface.co/THUDM/chatglm2-6b/resolve/main/pytorch_model-00007-of-00007.bin

目前huggingface国内网站登不上去,可以先通过huggingface下载文件到本地,再上传到服务器上,如果是腾讯云服务器,用vscode远程连接以后,将文件拖拽到vscode即可实现从本地到服务器上的传输。

2.如何使用chatglm

1)测试自己的chatglm是否可以运行,写一个.py或者.ipynb文件,代码如下:

import torch

from transformers import AutoConfig, AutoModel, AutoTokenizer

#定义要加载的chatglm模型的路径

MODEL_PATH = "/home/ubuntu/model/chatglm2-6b"

model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).cuda()

response,history= model.chat(tokenizer,query="你好",history=[])

print(response)

#出现如下字段则表明可以使用chatglm2-6b模型

你好(鼓掌)!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。

2)在ubuntu系统上直接进行问答:

cd 到目录ChatGLM2-6B下,改变文件的加载路径,使用如下命令:

python3 cli_demo.py

加载成功后便可在系统上直接与chatglm交流。

3)在界面上与chatglm进行问答(自带web_demo.py,web_demo2.py)

使用web_demo.py

cd 到目录ChatGLM2-6B下,使用如下命令:

python3 web_demo.py

注意:由于我们使用的是云服务器,因此不可能在本地(127.0.0.1)进行页面展示。所以打开文件web_demo.py,修改最后一行代码如下

demo.queue().launch(share=False, inbrowser=True) ----->

demo.queue().launch(share=False, inbrowser=True, server_name="0.0.0.0")

这样就能通过服务器的ip地址访问web界面。一般默认端口是7860,如果想要修改端口需要确保安全组允许端口访问。

如何使用web_demo2.py

cd 到目录ChatGLM2-6B下,使用如下命令:

streamlit run web_demo2.py --server.port 7860

注意:由于我们使用的是云服务器,腾讯云默认端口为7860,所以我们这里设定端口为7860

如何进行微调:

chatglm自带ptuning的微调方式:

cd 到目录ChatGLM2-6B下,再cd到ptuning,在当前文件夹下找到train.sh再修改参数

这里应用的是网上的图片,实际参数大家根据自己的情况进行修改

使用如下命令即开始训练数据:

### 部署微调ChatGLM3-6B模型指南 #### 准备工作环境 为了成功部署微调ChatGLM3-6B模型,在云服务器上需先安装必要的依赖库和工具。这通常涉及配置Python虚拟环境以及安装PyTorch框架和其他辅助包。 ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 pip install transformers datasets evaluate accelerate bitsandbytes ``` 上述命令会设置好用于处理大型语言模型的基础软件栈[^1]。 #### 下载预训练模型 通过Hugging Face Transformers库可以轻松获取到ChatGLM3-6B这样的预训练模型及其对应的分词器: ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "your-model-repo/chatglm3-6b" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) ``` 这段代码展示了如何加载指定名称下的预训练模型实例。 #### 数据准备 对于特定任务的数据集应当被适当地清理、标注,转换成适合输入给定架构的形式。考虑到资源消耗,建议采用分布式数据读取方式提高效率。 ```python from datasets import load_dataset dataset = load_dataset('path_to_your_custom_data') tokenized_datasets = dataset.map(lambda examples: tokenizer(examples['text']), batched=True) ``` 此部分脚本说明了怎样利用`datasets`库来加载自定义语料,对其进行编码操作以便后续使用。 #### 微调过程 针对具体应用场景调整超参数设定非常重要;比如学习率、批次大小等都可能影响最终效果。下面给出了一种基于AdamW优化算法执行finetune的过程示例: ```python import torch.optim as optim from torch.utils.data.dataloader import DataLoader from tqdm.auto import tqdm optimizer = optim.AdamW(model.parameters(), lr=5e-5) train_loader = DataLoader(tokenized_datasets["train"], shuffle=True, batch_size=8) progress_bar = tqdm(range(len(train_loader))) for epoch in range(epochs): for batch in train_loader: outputs = model(**batch) loss = outputs.loss loss.backward() optimizer.step() optimizer.zero_grad() progress_bar.update(1) ``` 这里呈现了一个简单的循环结构来进行一轮或多轮次的迭代更新权重矩阵,从而让模型更好地适应新领域内的表达模式。 #### 探索不同规模的影响 当考虑像BLOOM这样具有多个版本(按参数量区分)的大规模语言模型时,研究者们往往关心其性能随尺寸变化的趋势。为此采用了非参数统计方法——曼-惠特尼U检验来评估参数数目同检测成绩间的关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值