当前位置:   article > 正文

通义千问1.5大模型本地运行_通义千问1.5-32b 每个模型文件都需要下载么

通义千问1.5-32b 每个模型文件都需要下载么

1. 配置相关python环境,环境配置可以参考GitHub上qwen项目的环境要求。

https://github.com/QwenLM/Qwen

  1. transformers>=4.32.0,<4.38.0
  2. accelerate
  3. tiktoken
  4. einops
  5. transformers_stream_generator==0.0.4
  6. scipy

2. 下载模型文件。下载地址:魔搭社区

3. 运行模型。相关代码可以参考魔搭社区上的Transformer推理案例。

  1. import torch
  2. from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
  3. model_name = "本地路径/tclf90/模型名称" # 例:"./my_models/tclf90/Qwen1.5-32B-Chat-GPTQ-Int3"
  4. model_name = model_name.replace('.', '___')
  5. tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
  6. model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16).cuda()
  7. model.generation_config = GenerationConfig.from_pretrained(model_name)
  8. model.generation_config.pad_token_id = model.generation_config.eos_token_id
  9. messages = [
  10. {"role": "user", "content": "你好你是谁"}
  11. ]
  12. input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
  13. outputs = model.generate(input_tensor.to(model.device), max_new_tokens=100)
  14. result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=True)
  15. print(result)

需要注意的是该方法没有像ChatGML类似的模型提供model.chat接口和history字段方便用户进行进行流式对话。

该模型需要采用messages进行历史对话信息的传递。

  1. messages= [
  2. {"role": "user", "content": "你的指令"}
  3. ]
  4. input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
  5. outputs = model.generate(input_tensor.to(model.device), max_new_tokens=100)
  6. result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=True)
  7. print(result)
  8. #在messages中加入模型的输出以及用户的新指令。
  9. messages.append({'role': 'assistant', 'content': result})
  10. messages.append( {"role": "user", "content": "<输入>你的指令"})
  11. input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
  12. outputs = model.generate(input_tensor.to(model.device), max_new_tokens=100)
  13. result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=True)
  14. print(result)

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

闽ICP备14008679号