训练自己的ChatGPT(ChatGLM微调 )

这篇具有很好参考价值的文章主要介绍了训练自己的ChatGPT(ChatGLM微调 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

准备

操作

上传数据数据

训练进度

推理

验证

异常处理

总结

参考资料


ChatGLM微调 ptuning

准备

接上文https://blog.csdn.net/dingsai88/article/details/130639365

部署好ChatGLM以后,对它进行微调

操作

如果已经使用过 API 或者web模式的应该已经下载过,不用再下载

​
pwd

/mnt/workspace/

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

​

上传数据数据

pwd

/mnt/workspace/ChatGLM-6B/ptuning

方法1自己的数据:

mkdir AdvertiseGen

cd AdvertiseGen

上传 dev.json 和 train.json  到

/mnt/workspace/dev.json /mnt/workspace/ChatGLM-6B/ptuning/AdvertiseGen/

数据内容都是:数据量太多训练太慢

{"content": "你是谁", "summary": "你好,我是赛赛的朋友晨晨,江湖人称细哥。"}

{"content": "晨晨", "summary": "帅的一批"}

方法2:官网提供的方法:

准备训练的数据:下载地址会变

从 Google Drive 或者 Tsinghua Cloud 下载处理好的 ADGEN 数据集,将解压后的 AdvertiseGen 目录放到本目录下。

https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning/README.md

https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1

 

https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1







curl   -O https://cloud.tsinghua.edu.cn/seafhttp/files/xxxxxx/AdvertiseGen.tar.gz

tar -zxvf AdvertiseGen.tar.gz

训练
P-Tuning v2

pwd

/mnt/workspace/ChatGLM-6B/ptuning


安装依赖

pip install fastapi uvicorn




vi train.sh

删除(走128默认值)   --quantization_bit 4




开始训练

bash train.sh

训练进度

查看GPU使用

watch -n 0.5 nvidia-smi

训练自己的ChatGPT(ChatGLM微调 )

 

查看进度

训练自己的ChatGPT(ChatGLM微调 )

 

推理

pwd

/mnt/workspace/ChatGLM-6B/ptuning

vi evaluate.sh

删除(走128默认值)   --quantization_bit 4



bash evaluate.sh

验证

pwd

/mnt/workspace/ChatGLM-6B/ptuning

路径:

/mnt/workspace/ChatGLM-6B/ptuning/output/adgen-chatglm-6b-pt-128-2e-2/checkpoint-3000

Python


import os
import torch
from transformers import AutoConfig, AutoModel, AutoTokenizer
CHECKPOINT_PATH = "./output/adgen-chatglm-6b-pt-128-2e-2/checkpoint-3000"
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)

config = AutoConfig.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True, pre_seq_len=128)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", config=config, trust_remote_code=True).cuda()
prefix_state_dict = torch.load(os.path.join(CHECKPOINT_PATH, "pytorch_model.bin"))
new_prefix_state_dict = {}
for k, v in prefix_state_dict.items():
     if k.startswith("transformer.prefix_encoder."):
         new_prefix_state_dict[k[len("transformer.prefix_encoder."):]] = v
model.transformer.prefix_encoder.load_state_dict(new_prefix_state_dict)

print(f"Quantized to 128 bit")
model = model.quantize(128)
model = model.half().cuda()
model.transformer.prefix_encoder.float()
model = model.eval()
response, history = model.chat(tokenizer, "你是谁", history=[])
print("ChatGLM-6B:\n",response)

问题:你是谁

标准答案:

我是一个名为 ChatGLM 的人工智能助手,是清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型。我的任务是针对用户的问题和要求提供适当的答复和支持。

训练自己的ChatGPT(ChatGLM微调 )

 

微调后的答案

你好,我是赛赛的朋友晨晨,江湖人称细哥。

训练自己的ChatGPT(ChatGLM微调 )

 

异常处理

异常1:

RuntimeError: CUDA Error: no kernel image is available for execution on the device

RuntimeError: CUDA Error: no kernel image is available for execution on the device

>>> model = model.quantize()

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮

│ in <module>:1                                                                                    │

╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

TypeError: quantize() missing 1 required positional argument: 'bits'




model = model.quantize(4)

改成

model = model.quantize(128)



异常2:

root@eais-bjtryzm9xivr28qvprxr-7c8cfdfd44-2j4rx:/mnt/workspace/ChatGLM-6B/ptuning# bash train.sh

Traceback (most recent call last):

  File "main.py", line 29, in <module>

    from rouge_chinese import Rouge

ModuleNotFoundError: No module named 'rouge_chinese'

 安装依赖解决 : pip install rouge_chinese nltk jieba datasets

异常3:

 RuntimeError: CUDA Error: no kernel image is available for execution on the device

“调整 quantization_bit 来被原始模型的量化等级,不加此选项则为 FP16 精度加载”

bash train.sh

cp   train.sh train_bak.sh



vi train.sh

删除   --quantization_bit 4

异常4:

pip install cpm_kernels

ImportError: This modeling file requires the following packages that were not found in your environment: cpm_kernels. Run `pip install cpm_kernels`

pip install cpm_kernels

总结

  1. 官网写的都很清楚了。
  2. GPU特别影响计算时间,算力不够的小伙伴先训练几条看看流程是否通畅。

参考资料

ChatGLM-6B/README.md at main · THUDM/ChatGLM-6B · GitHub

https://blog.csdn.net/dingsai88/article/details/130639365

https://betheme.net/dashuju/127318.html文章来源地址https://www.toymoban.com/news/detail-450902.html

到了这里,关于训练自己的ChatGPT(ChatGLM微调 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LLaMA-Factory可视化界面微调chatglm2;LoRA训练微调模型 简单案例

    参考:https://github.com/huggingface/peft https://github.com/hiyouga/LLaMA-Factory 类似工具还有流萤,注意是做中文微调训练这块;来训练微调的chatglm2需要完整最新文件,不能是量化后的模型;另外测试下来显卡资源要大于20来G才能顺利,这边T4单卡训练中间显存不足,需要开启4bit量化才行

    2024年02月05日
    浏览(45)
  • PaddleOCR训练自己模型(1)----数据准备

    PaddleOCR开源代码(下载的是2.6RC版本的,可以根据自己需求下载) 具体环境安装就不详细介绍了, 挺简单的,也挺多教程的。 二、数据集准备及制作 (1)下载完代码及配置完环境之后,运行PPOCRLabel.py文件,打开标注软件( 2.7版本的会运行报错,解决方案如下 )解决PPOCR

    2024年04月16日
    浏览(38)
  • ChatGLM2-6B、ChatGLM-6B 模型介绍及训练自己数据集实战

    介绍 ChatGLM-6B是开源的文本生成式对话模型,基于General Language Model(GLM)框架,具有62亿参数,结合模型蒸馏技术,实测在2080ti显卡训练中上(INT4)显存占用 6G 左右, 优点 :1.较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理,结合模型量化技术,一需求可以进一步

    2024年02月12日
    浏览(48)
  • ChatGLM-6B 模型介绍及训练自己数据集实战

    介绍 ChatGLM-6B是开源的文本生成式对话模型,基于General Language Model(GLM)框架,具有62亿参数,结合模型蒸馏技术,实测在2080ti显卡训练中上(INT4)显存占用 6G 左右, 优点 :1.较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理,结合模型量化技术,一需求可以进一步

    2024年02月06日
    浏览(45)
  • 训练自己的Llama 2!大模型微调技术介绍

    趋动云 趋动云是面向 AI 算法工程师的开发平台,为工程师提供模型开发、模型训练、数据和代码管理等功能。 近期有不少粉丝问算力君,趋动云是否支持大模型的训练?当然支持! 最近大火的Llama 2一出来,算力君身边的小伙伴就已经跑过了,本文将介绍Llama 2和相关的大模

    2024年02月12日
    浏览(36)
  • 类ChatGPT项目的部署与微调(下):从ChatGLM-6b到ChatDoctor

    随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革新一遍 类似iPhone的诞生 大家面向iOS编程 有了App Store 现在有了ChatGPT插件/GPT应用商店,以后很多公司 很多人面向GPT编程(很快技术人员

    2023年04月10日
    浏览(34)
  • 类ChatGPT的部署与微调(下):从ChatGLM-6b到ChatDoctor、可商用

    随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革新一遍 类似iPhone的诞生 大家面向iOS编程 有了App Store 现在有了ChatGPT插件/GPT应用商店,以后很多公司 很多人面向GPT编程(很快技术人员

    2023年04月26日
    浏览(34)
  • 类ChatGPT的部署与微调(下):从ChatGLM、MOSS到ChatDoctor、可商用

    随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革新一遍 类似iPhone的诞生 大家面向iOS编程 有了App Store 现在有了ChatGPT插件/GPT应用商店,以后很多公司 很多人面向GPT编程(很快技术人员

    2024年02月01日
    浏览(36)
  • 开源LLM微调训练指南:如何打造属于自己的LLM模型

    今天我们来聊一聊关于LLM的微调训练,LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型,但它具备理解和生成人类语言的能力,非常厉害!它可以革新各个行业,包括自然语言处理、机器翻译、内容创作和客户服务等,成为未来商业环境的重要组成

    2024年02月12日
    浏览(42)
  • Stable Diffusion:使用自己的数据集微调训练LoRA模型

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏、自然语言处理 专栏或我的个人主页查看 基于DETR的人脸伪装检测 YOLOv7训练自己的数据集(口罩检测) YOLOv8训练自己的数据集(足球检测) YOLOv5:TensorRT加速YOLOv5模型推理 YOLOv5:I

    2024年02月12日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包