摘要传统机器学习中情感分析、命名实体识别、主题分类等任务需要分别训练和部署多个模型耗时耗力。而大语言模型LLM凭借其强大的推理能力只需通过提示词就能快速完成这些任务。本文基于 OpenAI 官方课程系统讲解如何使用 LLM 进行文本推理。你将学习情感二分类正面/负面、多情绪识别、愤怒检测、商品与品牌提取、单提示多任务联合抽取、主题列表生成、零样本主题分类与新闻预警系统。所有代码均基于 gpt-3.5-turbo 模型。适用人群 / 前置知识适用人群希望快速实现 NLP 任务的开发者、数据科学家、产品经理对传统 ML 流程感到繁琐的学习者。前置知识了解 Python 基础能调用 OpenAI API知道什么是提示词即可。引言从“训练模型”到“编写提示”在传统机器学习时代如果你想做三件事——判断评论情感、提取商品名称、识别用户是否愤怒——你需要收集三个带标签的数据集训练三个不同的模型可能是朴素贝叶斯、LSTM、BERT 等将三个模型分别部署到云端编写三个推理接口这个过程至少需要几天到几周。而有了大语言模型你只需要写几个提示词甚至一个提示词就能在几秒内完成所有任务。这就是 LLM 在“推理”任务上的革命性优势。本文将带你从零开始掌握 LLM 的推理能力涵盖情感分类正面/负面情绪识别快乐、沮丧、愤怒等实体提取商品名、品牌名多任务联合抽取一次提示获取多个字段主题推断与零样本分类环境准备复用之前的辅助函数importopenaiimportosfromdotenvimportload_dotenv,find_dotenv _load_dotenv(find_dotenv())openai.api_keyos.getenv(OPENAI_API_KEY)defget_completion(prompt,modelgpt-3.5-turbo):messages[{role:user,content:prompt}]responseopenai.ChatCompletion.create(modelmodel,messagesmessages,temperature0,)returnresponse.choices[0].message[content]案例数据一条灯的产品评论lamp_review Needed a nice lamp for my bedroom, and this one had additional storage and not too high of a price point. Got it fast. The string to our lamp broke during the transit and the company happily sent over a new one. Came within a few days as well. It was easy to put together. I had a missing part, so I contacted their support and they very quickly got me the missing piece! Lumina seems to me to be a great company that cares about their customers and products!! 任务一情感分析正面/负面最简单的推理判断评论是正面还是负面。promptf 以下产品评论的情感是什么评论用三重反引号分隔。 评论{lamp_review} responseget_completion(prompt)print(response)# 输出该产品评论的情感是正面的。如果你只想得到一个词方便后处理promptf 以下产品评论的情感是什么用单个词回答要么“positive”要么“negative”。 评论{lamp_review} responseget_completion(prompt)print(response)# 输出positive任务二情绪识别除了整体情感你可能还想知道客户表达了哪些具体情绪。promptf 识别以下评论作者表达的情绪列表。最多包含五个项目。 将答案格式化为小写单词组成的列表用逗号分隔。 评论{lamp_review} responseget_completion(prompt)print(response)# 输出示例satisfied, happy, grateful, relieved, content任务三愤怒检测对于客户支持团队快速识别愤怒的客户至关重要。promptf 以下评论的作者是否表达了愤怒用“yes”或“no”回答。 评论{lamp_review} responseget_completion(prompt)print(response)# 输出no任务四实体提取商品与品牌提取结构化信息购买的商品、生产公司。promptf 从评论文本中识别以下项目 - 购买的商品 - 生产该商品的公司 将答案格式化为 JSON 对象键名为“Item”和“Brand”。 如果信息不存在用“unknown”作为值。 评论{lamp_review} responseget_completion(prompt)print(response)# 输出{Item: lamp, Brand: Lumina}任务五多任务联合抽取一个提示搞定所有你不需要为每个任务单独调用模型。一个提示可以同时提取情感、愤怒标记、商品、品牌。promptf 从评论文本中识别以下项目 - 情感positive 或 negative - 评论者是否表达愤怒true 或 false - 购买的商品 - 生产该商品的公司 将答案格式化为 JSON 对象键名为“Sentiment”、“Anger”、“Item”、“Brand”。 将 Anger 的值格式化为布尔值true/false不加引号。 评论{lamp_review} responseget_completion(prompt)print(response)# 输出示例# {# Sentiment: positive,# Anger: false,# Item: lamp,# Brand: Lumina# }这个 JSON 可以直接用 json.loads() 解析为 Python 字典非常方便。任务六主题推断从新闻文章中提取主题假设我们有一篇关于政府员工满意度调查的虚构新闻文章代码中的 story 变量内容提及 NASA、社会保障局等。我们可以要求模型总结出 5 个主题。promptf 确定以下文本中讨论的五个主题文本用三重反引号分隔。 每个主题为一到两个词长。 将答案格式化为逗号分隔的列表。 文本{story} responseget_completion(prompt)print(response)# 输出示例government survey, job satisfaction, NASA, Social Security Administration, employee morale你可以用 response.split(‘,’) 将其转换为 Python 列表。任务七零样本主题分类与新闻预警假设你的新闻网站只追踪固定的几个主题[“NASA”, “local government”, “engineering”, “employee satisfaction”, “federal government”]。你想判断一篇新文章覆盖了哪些主题。topic_list [“NASA”, “local government”, “engineering”, “employee satisfaction”, “federal government”]promptf 判断以下主题列表中的每一项是否是下面文本用三重反引号分隔中讨论的主题。 给出答案格式为“主题: 0 或 1”每行一个。 主题列表{, .join(topic_list)}文本{story} responseget_completion(prompt)print(response)# 输出示例# NASA: 1# local government: 0# engineering: 0# employee satisfaction: 1# federal government: 1解析响应并创建预警topic_dict{}forlineinresponse.split(\n):if: inline:key,valline.split(: )topic_dict[key]int(val)iftopic_dict.get(NASA,0)1:print(ALERT: New NASA story!)注意上面这个解析方式依赖于模型输出的固定格式。在生产环境中更推荐要求模型输出 JSON这样解析更稳健。常见问题与注意事项1. 输出格式不稳定的问题模型可能有时输出“positive”有时输出“Positive”有时输出“The sentiment ispositive”。解决办法在提示中明确指定格式如“只输出一个词”或使用 JSON 模式。2. 布尔值格式要求输出 true/false 时明确说明“不要加引号”否则模型可能输出字符串 “false”。3. 零样本 vs 少样本本文所有示例都是零样本没有给任何示例。如果模型表现不稳定可以尝试在提示中加入一个示例少样本。4. 推理与生成的界限推理任务通常要求确定性输出建议 temperature0。生成任务如写诗才用较高temperature。5. 多任务联合抽取的优势减少 API 调用次数、降低延迟、节省成本。但提示会变长需要测试是否依然准确。扩展应用场景客户工单分类自动判断工单类型退货、咨询、投诉、紧急程度。社交媒体监控实时分析品牌提及的情感变化。简历解析从简历中提取姓名、技能、工作年限。合同审查提取关键条款、日期、责任方。总结推理任务提示关键词输出示例情感二分类sentiment … as a single wordpositive情绪列表list of emotionssatisfied, happy, grateful愤怒检测expressing anger? yes or nono实体提取identify Item and Brand as JSON{“Item”: “lamp”, “Brand”: “Lumina”}多任务联合identify Sentiment, Anger, Item, Brand完整 JSON主题提取determine five topicsNASA, job satisfaction, …零样本分类determine whether each topic is in textNASA: 1大语言模型的推理能力让原本复杂的 NLP 任务变得像写一句话一样简单。你不需要再训练和部署多个模型只需要掌握提示词的技巧就能在几分钟内构建出实用的文本分析系统。下一步你可以尝试将自己的业务数据用户反馈、客服对话、新闻文章代入这些提示模板看看模型能为你提取出哪些有价值的信息。下一篇文章我们将探讨“转换”能力——翻译、格式转换等敬请期待