两小时搭建自己的ChatGPT(ChatGLM)免硬件

目录

准备(注册):

搭建:

API模式:

测试:

总结:


准备(注册):

注册modelscope(白嫖)免费使用服务器

https://modelscope.cn/

按照图片里的选择(选择其他好像不能创建成功)

两小时搭建自己的ChatGPT(ChatGLM)免硬件_第1张图片

可以白嫖60多个小时的配置

8核 32GB 显存16G
预装 ModelScope Library
预装镜像 ubuntu20.04-cuda11.3.0-py37-torch1.11.0-tf1.15.5-1.5.0

ChatGLM-6B介绍

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。

硬件需求

量化等级 最低 GPU 显存(推理) 最低 GPU 显存(高效参数微调)
FP16(无量化) 13 GB 14 GB
INT8 8 GB 9 GB
INT4 6 GB 7 GB

搭建:

https://github.com/THUDM/ChatGLM-6B#代码调用

按照官网提示操作即可

>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
>>> response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
>>> print(response)
晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:

1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。
2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。
3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。
4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。
5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。
6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。

如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。

解释

from transformers import AutoTokenizer, AutoModel:这是从transformers库中导入AutoTokenizer和AutoModel类。

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True):这一行代码通过调用AutoTokenizer类的from_pretrained方法,从“THUDM/chatglm-6b”模型地址中下载并加载对应的tokenizer。该tokenizer是用于将文本转换为模型可以处理的输入向量。

model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda():这一行代码通过调用AutoModel类的from_pretrained方法,从“THUDM/chatglm-6b”模型地址中下载并加载对应的模型。同时,它还将模型转换为半精度浮点数(half)和CUDA张量(cuda)。这些操作有助于提高模型的计算速度和性能。

model = model.eval():这一行代码将模型设置为推理模式,即禁用dropout和batch normalization等训练时使用的技巧。这有助于提高模型在测试和实际应用中的准确性。

其中 下载需要漫长的等待

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True):

两小时搭建自己的ChatGPT(ChatGLM)免硬件_第2张图片

测试安装

两小时搭建自己的ChatGPT(ChatGLM)免硬件_第3张图片

API模式:

官网参考这段

GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

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

cd ChatGLM-6B



pip install fastapi uvicorn



python api.py



测试:

curl -X POST "http://127.0.0.1:8000" -H 'Content-Type: application/json' -d '{"prompt": "我叫daniel,给我写本书", "history": []}'

两小时搭建自己的ChatGPT(ChatGLM)免硬件_第4张图片

遇到的问题

异常1:
RuntimeError: CUDA Error: no kernel image is available for execution on the device
>>> model = model.quantize()
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ in :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
    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`


 

总结:

ChatGLM 完全傻瓜式的教程,按照官网操作就行了。

ModelScope太给力了,本来都打算自己买机器运行了,正好有白嫖的机会。

参考资料:

ModelScope 魔搭社区

GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型

你可能感兴趣的:(ChatGLM-6B,ChatGLM,P-Tuning,chatglm,ChatGPT)