首页 > 数据库 > 数据库开发技术 > 通往AGI之路:提示词基础技巧入门 3
大家好,我是雪飘雨飞。在上一篇专栏的文章中,我们提到了提示词书写的基础技巧就是提供有效的参考文本,今天我们就继续学习后面的技巧,就是将复杂的任务拆分为简单的子任务。
之前的文章地址如下,欢迎查阅:
一、将复杂的任务拆分成简单的子任务
今天,我们介绍第三个技巧,将复杂的任务进行拆解。就像在软件工程中将一个复杂系统分解成一系列模块化组件一样,这同样也适用于提交给 GPT 的任务。复杂任务往往比简单任务具有更高的错误率。此外,复杂任务通常可以重新定义为由较简单任务组成的工作流,其中早期任务的输出用于构建后续任务的输入。
策略1:使用意图分类去识别与用户查询最相关的指令
对于需要处理不同情况下的大量独立指令集的任务,首先将查询分类,并使用该分类确定所需的指令可以带来不少好处。这可以通过定义固定的类别和硬编码与处理给定类别任务相关的指令来实现。
这个过程也可以递归地应用于将任务分解为一系列阶段。这种方法的优势在于每个查询只包含执行任务下一个阶段所需的指令,与使用单个查询执行整个任务相比,这可以降低错误率。这还可以降低成本,因为较大的提示运行成本更高。
假设对于客户服务应用程序,可以将查询分类如下:
|
您将收到客户服务查询。将每个查询分为主要类别和次要类别。以JSON 格式提供带有键的输出:primary 和
secondary。 主要类别:计费、技术支持、账户管理或一般查询。 计费次要类别: - 取消订阅或升级 - 添加付款方式 - 收费说明 -
对收费提出异议 技术支持次要类别: - 故障排除 - 设备兼容性 - 软件更新 账户管理次要类别: - 密码重置 - 更新个人信息 - 关闭帐户 -帐户安全 一般查询二级类别: - 产品信息 - 定价 - 反馈 - 与人交谈 用户输入:<text> </text> |
下图是实际使用 GPT 执行的结果,可以发现 GPT 能够有效的识别我们的输入例子,并进行意图的分类。当然,你可以多次尝试这个提示词,或许有不一样的收获。

策略2:对于需要很长对话的应用,总结或过滤之前的对话
由于 GPT 有固定的上下文长度,用户和助手之间的对话,如果整个对话都包含在上下文窗口中,则无法无限制地继续。
此问题有多种解决方法之一是对先前的对话进行总结。一旦输入达到预定的阈值长度,这可能会触发查询,摘要部分对话,之前对话的摘要可能包含在系统消息中。或者,整个对话期间,先前的对话可以在后台异步总结。
另一个解决方案是动态选择与当前查询最相关的先前对话部分。这个方案需要用到我们之前提到的词嵌入(word embedding)和相似度检索技术,后续会有专门的章节进行讲解。
策略3:分段总结长文档并递归构建完整摘要
由于 GPT 的上下文长度是固定的,因此无法通过单个查询来总结超过上下文长度减去所生成摘要长度的文本。
为了总结一个非常长的文档,比如一本书,我们可以使用一系列查询来总结每个部分。部分摘要可以进行拼接和总结,从而产生总结的总结。这个过程可以递归进行,直到整个文档被总结。
如果需要使用之前部分的信息来理解后面的部分,那么一个有用的技巧是在总结某个位置的内容时,包括前面文本的运行总结。OpenAI 在使用 GPT-3 的变体进行研究时已经研究了这种用于总结书籍的方法的有效性。
END
好了,今天的分享就到这里,希望对你有所帮助。
你的每一个【点赞】,都是鼓励我进步的勇气,点个【在看】,加油吧!
原文作者:雨飞AI笔记;如有侵权,请联系管理员删除。