本篇博客主要总结了 DeepLearning AI 公开课程 Prompt Engineering 提示词工程 第五章节 Inferring 推理的内容,也可以理解为该章节的笔记。
输入一些文本,让模型帮助我们完成推理的工作,如提取标签、名字,梳理文本情感等。看起来和之前的输入文本,让模型提取其中的关键信息撰写文章有些类似,不过实际应用中,prompt 还是会有一些不同。
1. 文本情绪分类
传统的机器学习工作流中,要实现文本情绪分类,必须收集标签数据集、训练模型并部署,推断等。对于个人开发者而言,这样的过程工作量大,很繁杂,并不是很合适。LLM将我们从这些繁琐的工作中解放出来,可以通过几个简短的 prompt 就完成这些工作。
在上一个章节中,我们会采用如下的 prompt 来指示 LLM,让它提取文本。
1 | lamp_review = """ |
可以看到,虽然正确提取了信息,但是不够凝练。对prompt做一些改变,要求输出更凝练:
1 | prompt = f""" |
可以看到,要求LLM对情感进行二元分类,并给出固定的选项,可以让回复更标准,更易于在程序之间传递。
2. 文本情绪识别
更进一步,为了更细致地了解文本中包含的情绪,我们可以让LLM将文本中的多种情绪概括成一个词语列表,如下所示:
1 | prompt = f""" |
和前面我们要求 LLM 判断这段文本的态度类似,我们可以要求 LLM 帮助我们识别出特别不满的情绪,并返回 YES 或 NO。
1 | prompt = f""" |
我们还可以让 LLM 帮助我们提取评论中涉及的产品和制造商,并以JSON的格式返回。这在批量处理用户评价、反馈时常常用到。例如在游戏中,收集某个活动期间玩家的公平发言,并分析是否有对某个活动极其不满的情绪,我们就可以让 LLM 提取表达不满的玩家所提到的活动名字。
1 | prompt = f""" |
3. 一次性处理多个任务
将prompt整合,我们可以将上述的多个任务,通过一次请求完成。在指示中,一定要足够清晰、明确,比如指出返回的选项、数据类型,要求返回JSON,并指明 key 值。
1 | prompt = f""" |
4. 文本主题推断
LLM 的另一个技能是推断主题。
提炼文本主题
输入一段长文本,我们可以要求 LLM 确定这段文本所讨论的主题。我们可以指定 LLM 提炼几个主题,每个主题用一到两个单词描述,以逗号分隔的列表来表示。由于示例文本比较长,在此不另外列出,实际上,用什么样的文本作为输入并不是很重要。
1 | prompt = f""" |
文本主题索引
既然 LLM 能够提取出一段文本中的主题,那么反过来,我们也可以让 LLM 判断,某个主题是否为文本的主题之一。
首先,我们要整理出我们关心的主题 list。将这个主题 list 和文本都输入给 LLM,要求 LLM 根据主题是否相关,以 0/1 的形式表示结果。可以注意到,在prompt中,我们将 topic_list 的格式转化为了一个逗号分隔的文本形式。因为我们不能直接将python定义的数组嵌入 prompt 中。
1 | topic_list = ["nasa", "local government", "engineering", "employee satisfaction", "federal government"] |
这个文本主题推断的技能,还可以稍加包装,用作文章提醒。例如,定义一个你感兴趣的主题 list,就像前文的 topic_list一样,每次有新增的文章发布时,就执行一遍上面的操作。在拿到返回值以后,根据返回的 0/1,判断是否要给用户发送提醒。这其实就可以成为文章订阅机制的一部分。
1 | topic_dict = {i.split(': ')[0]: int(i.split(': ')[1]) for i in response.split(sep='\n')} |
Prompt Engineering 提示词工程笔记汇总
- 第一、二章:编写指示的几个指导原则
- 第三章:迭代 Iterative
- 第四章:摘要 Summarizing
- 第五章:推理 Inferring
- 第六章:转化 Transferring
- 第七章:扩充 Expanding
- 第八章:聊天机器人 ChatBot
参考资料
ChatGPT Prompt Engineering for Developers - DeepLearning.AI
B站可以找到搬运翻译的中文版本👆:《吴恩达 x OpenAI Prompt课程》
- 本文作者: Berry
- 本文链接: https://wuxinberry.github.io/2025/02/09/Prompt-tips4/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!