当前位置:   article > 正文

昇思25天学习打卡营第10天|应用实践之基于MindNLP和ChatGLM-6B实现一个聊天应用

昇思25天学习打卡营第10天|应用实践之基于MindNLP和ChatGLM-6B实现一个聊天应用

基本介绍

        今天的应用实践是基于MindSpore和ChatGLM-6B实现一个(伪)聊天应用,本质上就是使用MindSpore下载模型及其权重,然后调用相关API输入自己想说的话,就可以得到回复,如果要打造真正的聊天应用,则需要进行界面编写等等。

ChatGLM-6B简介

        ChatGLM是基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型开发的开源模型,ChatGLM-6B是参数量为6B的一个小型大模型,详细的可自行搜索了解,今天主要是借助MindSpore提供的API直接使用。

ChatGLM实践

  • 下载:使用如下代码下载相关模型,下载完就可以直接使用
  1. from mindnlp.transformers import AutoModelForSeq2SeqLM, AutoTokenizer
  2. import gradio as gr
  3. import mdtex2html
  4. model = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
  5. model.set_train(False)
  6. tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")
  • 使用:通过model.chat()便可进行聊天,具体调用示例如下:
  1. prompt = '简单介绍一下你自己'
  2. history = []
  3. response, _ = model.chat(tokenizer, prompt, history=history, max_length=100)
  4. response

里面有四个参数,tokenizer是固定的,prompt即是用户输入,history是与用户的历史聊天记录,这里没有,所以为空,max_length用于限制大模型的输出。我多试了几次,发现大模型的输出质量一般,可能是因为参数量大小了,其输出速度和max_length、用户提问有关,max_length越大,用户问题越难,速度越慢,当然max_length是有上限的,具体要查文档。且由于只是一个接口,没有对输出结果进行格式化处理,有时候输出不方便用户阅读,比如输出代码的时候:

Jupyter运行情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/802643
推荐阅读
相关标签
  

闽ICP备14008679号