当前位置:   article > 正文

chatgpt自己训练模型实现多轮问答对话_transformers>=4.32.0,<4.38.0

transformers>=4.32.0,<4.38.0

 

这是一一个使用“通义千问-7b-chat“模型的案例,模型文件我已经上传了,现在我们使用 mdelscope 库来进行演示。

环境要求:
1.V100 Tensor Core GPU 选择这个 GPU 镜像,镜像内存 40G,32G显存,一个 GPU,才跑得起来,我在自己电脑一个 GPU 2G 显存,直接跑不起来。
2.需要安装 modelscope 库
3.transformers>=4.32.0

如果选择了最小的 GPU 镜像也可以跑起来,可能需要再加载模型使用以下代码:

  1. from modelscope import AutoModelForCausalLM, AutoTokenizer
  2. from modelscope import GenerationConfig
  3. # 加载词表模型词表
  4. tokenizer = AutoTokenizer.from_pretrained("/home/mw/input/qwen7bchat7438", trust_remote_code=True)
  5. # 加载模型
  6. model = AutoModelForCausalLM.from_pretrained("/home/mw/input/qwen7bchat7438", device_map="auto", trust_remote_code=True, fp16=True).eval()
  7. # 第一轮对话
  8. response, history = model.chat(tokenizer, "你好,你可以介绍一下自己吗?", history=None)
  9. print(response)
  10. # 第二轮对话
  11. response, history = model.chat(tokenizer, "通义千问事你的兄弟吗?", history=history)
  12. print(response)
  13. # 第三轮对话
  14. response, history = model.chat(tokenizer, "你那些兄弟跟你区别?", history=history)
  15. print(response)

 

多轮对话封装

也就是封装成函数,用起来类似网页版那种,可以手动输入

  1. from modelscope import AutoModelForCausalLM, AutoTokenizer
  2. # 加载词表模型词表
  3. tokenizer = AutoTokenizer.from_pretrained("/home/mw/input/qwen7bchat7438", trust_remote_code=True)
  4. # 加载模型
  5. model = AutoModelForCausalLM.from_pretrained("/home/mw/input/qwen7bchat7438", device_map="auto", trust_remote_code=True, fp16=True).eval()
  6. def chat(text, history):
  7. response, history = model.chat(tokenizer, text, history=history)
  8. return response, history
  9. while True:
  10. text = input("请输入 prompt:")
  11. response, history = chat(text, history=None)
  12. print(response + '\n')

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

闽ICP备14008679号