当前位置: 首页> 汽车> 新车 > 昇思25天学习打卡营第17天|ChatGLM-6B聊天demo

昇思25天学习打卡营第17天|ChatGLM-6B聊天demo

时间:2025/7/11 7:39:21来源:https://blog.csdn.net/2301_77286822/article/details/140207775 浏览次数: 0次

一、简介:

本次实验,基于MindNLP和ChatGLM6B模型搭建一个小的聊天应用,ChatGLM6B 是基于 GLM-4 模型开发的开源对话机器人,拥有 62 亿个参数,能够进行自然流畅的语言交流。在对话中,ChatGLM6B 可以胜任文案写作、代码调试等任务,还能够根据用户需求进行角色扮演,满足用户在虚拟场景中的互动需求。同时,ChatGLM6B 也具备多模态理解能力,可以解析图片、视频等多种类型的信息,进一步拓展了其在实际应用中的场景。

二、环境准备:

首先还是需要下载MindSpore和MindNLP两个基础包。下载MindSpore可以参考昇思25天学习打卡营第1天|快速入门-CSDN博客,mindnlp直接使用pip命令下载即可,并进行网络配置:

# 配置网络环境以方便拉取huggingface的模型
export HF_ENDPOINT=https://hf-mirror.com

三、具体实践:

使用mindnlp库加载"ChatGLM-6B"的预训练序列到序列语言模型和相应的分词器,并使用半精度浮点数来减少内存使用。通过设置模型为评估模式,代码为使用gradio创建Web界面进行文本生成任务做好了准备,同mdtex2html时间库可用于处理和显示生成的文本

from mindnlp.transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import gradio as gr
import mdtex2htmlmodel = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
model.set_train(False)
tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")

下载完权重就可以和ChatGLM6B聊天了(doge):

prompt = '你好'
history = []
response, _ = model.chat(tokenizer, prompt, history=history, max_length=20)
print(response)

如果想和ChatGLM6B展开多轮对话,可以使用下面的代码:

prompt = '你好'
history = []print("输入'exit'结束对话。")while True:# 生成回应response, _ = model.chat(tokenizer, prompt, history=history, max_length=200)print(response)print("输入'exit'结束对话。")# 更新对话历史history.append((prompt, response))# 获取用户下一轮的输入prompt = input("用户: ")if prompt.lower() == "exit":print("结束对话")break# 清除历史中的"exit",以避免影响模型生成回应if prompt.lower() == "exit":history.pop()

 就是有点慢,大家最好用好一点的显卡(狗头)

关键字:昇思25天学习打卡营第17天|ChatGLM-6B聊天demo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: