目录
准备(注册):
搭建:
API模式:
测试:
总结:
准备硬件(注册):
注册modelscope(底层阿里云)免费使用服务器
https://modelscope.cn/
按照图片里的选择(选择其他好像不能创建成功)
可以白嫖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):
测试安装
API模式:
官网参考这段
GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型
git clone https://github.com/THUDM/ChatGLM-6Bcd ChatGLM-6Bpip install fastapi uvicornpython api.py
测试:
curl -X POST "http://127.0.0.1:8000" -H 'Content-Type: application/json' -d '{"prompt": "我叫daniel,给我写本书", "history": []}'
遇到的问题
异常1:
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`
总结:
ChatGLM 完全傻瓜式的教程,按照官网操作就行了。
ModelScope太给力了,本来都打算自己买机器运行了,正好有使用的机会。
自己windows11 GTX3060 12g 显卡也不能运行完成的项目
参考资料:
ModelScope 魔搭社区
GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型