阿里云部署qwen 、第5步:阿里云服务器上大模型运行demo.py,固定提示词模板 拼接用户输入,输出符合要求格式结果

任务 3:大模型提示词设计(网络评论情感分类)

模型:Qwen3.5-0.8B 环境:rag_env虚拟环境 题目要求:加载本地模型,自己设计提示词模板,输入评论,只输出正面 / 中立 / 负面单个词语 目标人群:学生,代码增加大量注释,步骤讲细

整体原理(给学生理解)

  1. 提示词模板 = 我们提前写好的任务规则(本题得分核心,由学生自己设计)
  2. 用户输入 = 待分析的评论内容
  3. 程序做字符串拼接:【规则模板】+【用户输入的评论】,拼成完整一段话送给大模型
  4. 大模型按照我们写的规则,只输出分类词,不能额外写解释

完整操作步骤

步骤 1:登录服务器,进入工作目录,激活 rag_env 虚拟环境

复制代码
# 进入workspace文件夹,模型、代码都放在这里
cd ~/workspace

# 激活我们之前装好依赖的虚拟环境rag_env
source rag_env/bin/activate

✅ 激活成功标志:命令行前面出现 (rag_env)

重要:所有代码运行必须在这个环境里面,否则找不到 numpy、transformers、torch 等库

步骤 2:确认模型已经解压(提前操作)

复制代码
# 查看目录,确认Qwen3_5‑0_8B文件夹存在
ls

如果还没解压,执行解压命令

复制代码
tar -zxvf Qwen3_5‑0_8B.tar.gz

步骤 3:新建 Python 代码文件 classify_comment.py

复制代码
# nano是Linux简易记事本,文件不存在就新建并打开编辑
nano classify_comment.py

粘贴下面带详细注释的完整代码

复制代码
# 导入需要的工具包
# AutoTokenizer:分词器,把文字转成模型看得懂的数字
# AutoModelForCausalLM:加载Qwen大语言模型
from transformers import AutoTokenizer, AutoModelForCausalLM
# torch:GPU运算框架,用来在显卡上跑模型推理
import torch

# ===================== 【1】设置模型路径 =====================
# 指向解压后的Qwen3.5模型文件夹,这里根据你的文件夹名字修改
model_path = "./Qwen3_5‑0_8B"

# ===================== 【2】加载分词器和大模型 =====================
# 加载分词器,模型文件夹内自带分词器文件
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

# 加载Qwen大模型,自动使用GPU显卡运行
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    torch_dtype=torch.float16,  # 使用半精度,节省显存
    device_map="auto",          # 自动检测cuda显卡,把模型放到GPU
    trust_remote_code=True
)

# ===================== 【3】学生自己设计的提示词模板(本题核心考点!) =====================
# 这一段是固定任务规则,写死在代码里面,属于考生设计的prompt模板
# {comment_text} 是占位符,后面会把用户输入的评论填到这个位置
def build_prompt_template(comment_text):
    prompt = f"""
任务:对网络评论进行情感分类,只输出【正面、中立、负面】其中一个词,禁止输出多余解释。
待分类评论:{comment_text}
输出结果:
"""
    # 返回拼接完成的完整提示词
    return prompt


# ===================== 【4】接收用户输入的评论 =====================
# input()函数:在终端等待学生输入文字,就是待分类的评论
user_comment = input("请输入待分类的网络评论:")

# 调用函数,把用户输入的评论填充进提示词模板,完成字符串拼接
full_prompt = build_prompt_template(user_comment)

# 打印完整拼接后的全部文本,方便学生观察,理解模板+输入如何合并
print("\n======== 送入大模型的完整提示文本 ========")
print(full_prompt)
print("==========================================")


# ===================== 【5】文字编码,送入GPU推理 =====================
# tokenizer:把完整文本转成模型能识别的数字token,放到cuda显卡
input_tokens = tokenizer(full_prompt, return_tensors="pt").to("cuda")

# torch.no_grad():关闭梯度计算,推理阶段节省显存,加快速度
with torch.no_grad():
    # 调用模型生成结果
    output_tokens = model.generate(
        **input_tokens,
        max_new_tokens=10,    # 限制最多输出10个token,只需要输出一个词,防止长篇回答
        temperature=0.1       # 降低随机性,让分类结果稳定,不会乱变
    )

# ===================== 【6】把模型输出的数字转回中文文字 =====================
# skip_special_tokens=True:去掉模型自带特殊标记,只保留可读文字
result_text = tokenizer.decode(output_tokens[0], skip_special_tokens=True)

# 打印最终分类结果
print("\n模型分类结果:")
print(result_text)

粘贴完成后: Ctrl+O → 回车保存文件 → Ctrl+X 退出 nano 编辑器

步骤 4:运行代码

复制代码
python3 classify_comment.py
  1. 程序加载模型,等待一段时间(模型载入 GPU 显存)
  2. 终端提示:请输入待分类的网络评论:
  3. 输入样例文字:看了你的视频很开心很感动
  4. 程序会先打印完整拼接好的提示文本,再输出分类结果 正面

步骤 5:保存成果(竞赛提交)

  1. 把代码复制,粘贴到答题卡对应位置
  2. 终端运行截图,放入 3_答题卡/result/Q2 文件夹

测试样例(给学生练习)

表格

用户输入评论 预期输出
看了你的视频很开心很感动 正面
这个视频太差了,完全浪费时间 负面
视频时长 5 分钟。 中立
相关推荐
小白学大数据1 小时前
Python 项目实战:用 Flask 构建生产级 MySQL 增删改查 REST API
开发语言·人工智能·python·mysql·flask
诺伦1 小时前
AI营销从单点智能到系统协同:多Agent编排如何重塑增长运营
python·多agent系统·ai营销·agent编排·增长运营
9624561 小时前
pywebview 指定 Edge Chromium,为什么打包后仍回退到 MSHTML?
python
ellenwan20261 小时前
量化学习不能只补技术
人工智能·python
SamChan901 小时前
多栏PDF阅读顺序重建:用Python按坐标聚类还原双栏论文的翻译顺序
python·ai·pdf
赵民勇1 小时前
Python collections.ChainMap 详解
python
三十岁老牛再出发1 小时前
9月16日总结
python·深度学习·机器学习
计算机源码社2 小时前
基于大数据的全球温室气体排放燃料结构与碳强度评估研究-基于Spark的全球温室气体排放多维度检测与评估分析
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
eybk2 小时前
用Kivy制作手机相片分类局域网传送工具,还能传输数据库文件
开发语言·python