昇思23天

1. 导入库
from mindnlp.transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import gradio as gr
import mdtex2html
  • mindnlp.transformers:这是一个与自然语言处理(NLP)相关的库。具体导入的类有:
    • AutoModelForSeq2SeqLM:自动序列到序列语言模型类,用于加载预训练模型。
    • AutoTokenizer:自动分词器类,用于加载预训练模型的分词器。
  • gradio:一个用于快速搭建机器学习模型Web界面的库。
  • mdtex2html:一个将Markdown格式的文本转换为HTML格式的库。
2. 加载预训练模型和分词器
model = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
model.set_train(False)
tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")
  • 加载模型

    model = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
    
    • from_pretrained:从预训练模型中加载模型,这里使用的是ZhipuAI/ChatGLM-6B模型。
    • mirror="modelscope":指定下载模型的镜像源为modelscope
    • .half():将模型参数转换为半精度(float16),可以减少显存使用,提高推理速度。
  • 设置模型为评估模式

    model.set_train(False)
    
    • set_train(False):将模型设置为评估模式,而不是训练模式,这样可以关闭dropout层,并提高推理的稳定性。
  • 加载分词器

    tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")
    
    • 同样使用from_pretrained方法从ZhipuAI/ChatGLM-6B模型加载对应的分词器。

好的,让我们继续解析这段代码的其余部分。

代码解析

3. 定义输入和历史记录
prompt = '你好'
history = []
  • prompt:这是给模型的输入提示,这里是一个简单的中文问候语 “你好”。
  • history:这是一个空列表,用来存储对话的历史记录。在对话系统中,历史记录用于保持对话的上下文。
4. 生成回复
response, _ = model.chat(tokenizer, prompt, history=history, max_length=20)
  • model.chat:这个方法使用加载的模型生成对话回复。
    • tokenizer:用于将文本输入转化为模型可以理解的形式,并将模型输出转化为人类可读的文本。
    • prompt:模型生成回复时的输入提示。
    • history:对话历史记录,帮助模型理解上下文,这里是一个空列表,表示没有之前的对话。
    • max_length=20:生成回复的最大长度,最多生成20个标记(tokens)。
  • response:模型生成的回复文本。
  • _:通常表示一个不需要使用的变量,在这里可能是模型生成回复时的其他信息,比如生成的标记的概率等,但我们并不关心这些信息。
5. 输出回复
response
  • 输出模型生成的回复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值