赞
踩
今天的应用实践是基于MindSpore和ChatGLM-6B实现一个(伪)聊天应用,本质上就是使用MindSpore下载模型及其权重,然后调用相关API输入自己想说的话,就可以得到回复,如果要打造真正的聊天应用,则需要进行界面编写等等。
ChatGLM是基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型开发的开源模型,ChatGLM-6B是参数量为6B的一个小型大模型,详细的可自行搜索了解,今天主要是借助MindSpore提供的API直接使用。
- from mindnlp.transformers import AutoModelForSeq2SeqLM, AutoTokenizer
- import gradio as gr
- import mdtex2html
-
- model = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
- model.set_train(False)
- tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")
- prompt = '简单介绍一下你自己'
- history = []
- response, _ = model.chat(tokenizer, prompt, history=history, max_length=100)
- response
里面有四个参数,tokenizer是固定的,prompt即是用户输入,history是与用户的历史聊天记录,这里没有,所以为空,max_length用于限制大模型的输出。我多试了几次,发现大模型的输出质量一般,可能是因为参数量大小了,其输出速度和max_length、用户提问有关,max_length越大,用户问题越难,速度越慢,当然max_length是有上限的,具体要查文档。且由于只是一个接口,没有对输出结果进行格式化处理,有时候输出不方便用户阅读,比如输出代码的时候:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。