这是 GPT 最佳实践的第五部分,使用外部工具,第四部分(给GPT思考时间)在这里,更多部分在这里。
使用外部工具
通过将其他工具的输出提供给GPT,来弥补GPT的缺点。例如,文本检索系统可以告诉GPT相关的文档。代码执行引擎可以帮助GPT进行数学计算和运行代码。如果一个任务可以由一个工具而非GPT更可靠或高效地完成,那么将其卸载以获得两者的优点。
策略:
- 使用基于嵌入的搜索来实现高效的知识检索
- 使用代码执行来进行更精确的计算或调用外部API
策略:使用基于嵌入的搜索来实现高效的知识检索
如果将外部信息源作为模型输入的一部分,模型可以利用这些信息。这可以帮助模型生成更有见地和更新的回应。例如,如果用户提问关于特定电影的问题,将关于该电影的高质量信息(例如,演员、导演等)添加到模型的输入中可能会有所帮助。嵌入可以被用来实现高效的知识检索,以便在运行时动态地将相关信息添加到模型输入中。
文本嵌入是一个能够衡量文本字符串之间相关性的向量。相似或相关的字符串在空间中的距离会比无关的字符串更近。这一事实,加上快速向量搜索算法的存在,意味着嵌入可以被用来实现高效的知识检索。特别地,文本语料库可以被分割成块,每一块都可以被嵌入和存储。然后,给定的查询可以被嵌入,可以进行向量搜索,以找到与查询最相关的(也就是在嵌入空间中最接近的)文本语料库的嵌入块。
可以在OpenAI Cookbook中找到示例实现。参见策略“Instruct the model to use retrieved knowledge to answer queries”以查看如何使用知识检索来最小化模型编造错误事实的可能性的示例。
策略:使用代码执行进行更精确的计算或调用外部API
不能依赖GPT自己准确地执行算术或长时间的计算。在需要这样做的情况下,可以指示模型编写并运行代码,而不是进行自己的计算。特别是,可以指示模型将要运行的代码放入指定的格式,如三个反引号。生成输出后,可以提取并运行代码。最后,如果必要,可以将代码执行引擎(即Python解释器)的输出作为模型下一次查询的输入。
角色 | 数据 |
---|---|
SYSTEM | You can write and execute Python code by enclosing it in triple backticks, e.g. code goes here . Use this to perform calculations.你可以通过将代码封闭在三个反引号中来编写和执行Python代码,例如 code goes here 。使用此功能进行计算。 |
USER | Find all real-valued roots of the following polynomial: 3x5 – 5x4 – 3x3 – 7x – 10. 找出以下多项式的所有实数根:3x5 – 5x4 – 3x3 – 7x – 10. |
备注:让 GPT 生成使用的代码,检查他的代码,并改进他。
代码执行的另一个好的使用场景是调用外部API。如果一个模型被正确地指示使用API,它可以编写使用该API的代码。可以通过向模型提供文档和/或代码示例来指示模型如何使用API。
角色 | 数据 |
---|---|
SYSTEM | You can write and execute Python code by enclosing it in triple backticks. Also note that you have access to the following module to help users send messages to their friends:python import message message.write(to="John", message="Hey, want to meetup after work?") 你可以通过将代码封闭在三个反引号中来编写和执行Python代码。同时请注意,你可以使用以下模块来帮助用户向他们的朋友发送信息: python import message message.write(to="John", message="Hey, want to meetup after work?") |
备注 可以调用外部api?
注意:执行模型产生的代码本身并不安全,任何试图执行此操作的应用都应采取预防措施。特别是,需要一个沙盒化的代码执行环境来限制不受信任的代码可能造成的损害。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。