|
--- |
|
license: apache-2.0 |
|
|
|
language: Chinese |
|
|
|
Usage:把files and versions里的chatglm-lora.pt下载到本地,然后依次按下面的操作 |
|
|
|
# 安装依赖 |
|
pip install protobuf==3.20.0 transformers==4.26.1 peft cpm_kernels icetk -q |
|
|
|
# 导入库 |
|
from transformers import AutoTokenizer,AutoModel |
|
import torch |
|
from peft import get_peft_model, LoraConfig, TaskType |
|
|
|
# 加载模型 |
|
model = AutoModel.from_pretrained( |
|
"yuanzhoulvpi/chatglm6b-dddd", trust_remote_code=True).half().cuda() |
|
|
|
peft_config = LoraConfig( |
|
task_type=TaskType.CAUSAL_LM, |
|
inference_mode=False, r=8, lora_alpha=32, lora_dropout=0.1, |
|
target_modules=['query_key_value',], |
|
) |
|
model = get_peft_model(model, peft_config) |
|
|
|
# 在这里加载lora模型,注意修改chekpoint |
|
peft_path = "home/checkpoint-800/chatglm-lora.pt" |
|
model.load_state_dict(torch.load(peft_path), strict=False) |
|
model.eval() |
|
|
|
# 构建tokenizer |
|
tokenizer = AutoTokenizer.from_pretrained("yuanzhoulvpi/chatglm6b-dddd", trust_remote_code=True) |
|
|
|
# 模型输出 |
|
text ="天空为什么是蓝色的?" |
|
|
|
with torch.autocast("cuda"): |
|
res, history = model.chat(tokenizer=tokenizer, query=text,max_length=300) |
|
print(res) |
|
|
|
天空看起来蓝色是由于大气散射的结果。当太阳光线穿过大气层时,会被大气分子散射。这些分子包括氧、氮和碳氢化合物,它们吸收较短波长的光,如红色和橙色,而较长波长的光,如蓝色和紫色,则被散射得更多。 |
|
因此,当太阳光线照射到大气层时,较短波长的光线,如红色和橙色,被散射得更多,我们看到的天空呈现出蓝色。 |
|
天空的蓝色是由于大气散射的结果。当太阳光线穿过大气层时,会被大气分子散射。这些分子包括氧、氮和碳氢化合物,它们吸收较短波长的光,如红色和橙色,而较长波长的光,如蓝色和紫色,则被散射得更多。 |
|
因此,当太阳光线照射到大气层时,较短波长的光线,如红色和橙色,被散射得更多,我们看到的天空呈现出蓝色。 |
|
|
|
# 如果用Gradio界面输出,可加下面语句 |
|
title = "Chat with ChatGLM" |
|
description = "Chat with ChatGLM, a Chinese pre-trained dialogue generation model." |
|
|
|
gr.Interface(fn=chat, |
|
inputs=gr.inputs.Textbox(lines=1, label="Your message:"), |
|
outputs=gr.outputs.Textbox(label="Response:"), |
|
title=title, |
|
description=description).launch(share=True) |
|
|
|
|