大模型(4):大模型推理数据分类
目录1.导入和加载模型2.构建历史对话3.当前输入4.拼接完整输入5.编码6.模型生成答案7.解码与输出8.运行结果9.改进这次是一个多轮对话式分类任务算是上面两篇文章的一个组合。模型通过我们的历史对话判断新问题答案。1.导入和加载模型from transformers import AutoModelForCausalLM, AutoTokenizer model_name_or_path rD:\learn\damodel\Qwen2.5-1.5B-Instruct tokenizer AutoTokenizer.from_pretrained(model_name_or_path) model AutoModelForCausalLM.from_pretrained(model_name_or_path,device_mapauto)#不写这个参数就自动放到cpu里面一样的导入模块和加载模型但是这里我们加了一个device_mapauto这是让模型自动分配可用设备有GPU就用GPU没有才用CPU没有这个参数的时候默认使用CPU。device 直译是“设备”在 PyTorch / transformers 的世界里主要指两种CPU中央处理器擅长复杂逻辑控制但跑大模型慢GPU图形处理器显卡擅长并行计算跑大模型快通常快10-50倍所以 device 决定了你的模型在哪块硬件上“思考”。用了 device_mapauto 后你的输入也要放到同一个设备上因为模型在GPU上输入还在CPU上就会报错。2.构建历史对话# 假设的历史输入信息多轮对话 history_inputs [我是用户你是系统你需要按照我给你的句子判断属于哪一个科目有三种数学,语文,英语。 用户another, 系统英语, 用户sin90度1, 系统数学“ “用户花落知多少” “系统语文” ]这段字符串中首先就是系统的指令告诉模型它的任务是什么。并要求了格式需要是用户……系统……给了三个例句3.当前输入# 当前轮次的输入信息 current_input 用户good 设置新问题这里也遵循我们设置的格式4.拼接完整输入# 将历史输入和当前输入连接成一个长字符串 full_input_text \n.join(history_inputs [current_input]) # 字符串的组合用换行符把历史对话和当前问题拼成一个长字符串。full_input_text的内容如下5.编码# 编码整个输入序列 inputs tokenizer(full_input_text, return_tensorspt).to(model.device)前半部分和之前两篇大模型推理是一样后面的.to(model.device)也有学习过在深度学习中也有使用过。是把编码后的张量也放到和模型一样的设备上GPU/CPU否则会报错。6.模型生成答案# 调用模型生成回复 output_sequences model.generate( inputs[input_ids], max_length2000, max_new_tokens300, # 限制生成的新 token 数量 temperature0.01, # 控制生成文本的随机性值越小越确定 top_p0.9, # 核采样参数 attention_maskinputs.attention_mask, )和之前是一样的。这里我们 把max_new_tokens设置的很大会在输出结果中看到模型还对所给的结果进行解释。但是依旧没有说完是因为字数达到限制了model.generate这是模型开始工作的核心函数根据我们的输入一个token一个token的预测接下来可能出现的token其实token的意思就是最小的切分单元就像一个字对人类来说是最小的切分单元一样我们读文章可以说成逐字阅读模型就是逐token。inputs.input_ids把翻译好的问题传给模型。max_new_tokens这是限制模型生成的token数可以理解为写作文限制字数这里是不能超过512其他参数可以参考大模型前两篇文章7.解码与输出# 解码生成的文本 generated_reply tokenizer.decode(output_sequences[0], skip_special_tokensTrue) print(generated_reply)8.运行结果9.改进可以把这个字数限制设置小一点max_new_tokens5此外还可以让结果更简单在上面的修改基础上把最后print(generated_reply)修改为answer generated_reply[len(full_input_text):].strip() # 只取新生成的部分 print(f模型判断{answer})把我们的提示词部分给切掉解决生成结果比较厚重直接给出答案。运行结果
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2446313.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!