GPT-4 提问技巧五:如何提升GPT-4的能力

释放双眼,带上耳机,听听看~!
本文介绍了如何利用外部工具提升 GPT-4 的能力,包括代码执行器、函数调用和 LangChain,以及示例问题和相关工具的详细说明。

深入探索 GPT-4 提问技巧系列的第五篇文章,介绍了如何利用外部工具提升 GPT4 的能力, 包括代码执行器可以运行 GPT4 生成的代码; 函数调用可以直接调用语言描述的函数; LangChain 提供了一系列工具和框架, 实现与外部世界的数据和服务的连接。

本文是 GPT4 提问技巧系列的第五篇(严格来说,这一篇不算是 GPT-4 的提问题技巧了,不过为了延续这一个系列的名字,这里也就继续用这个标题了),全部系列文章:

  1. GPT4 提问技巧一:写清晰的说明
  2. GPT4 提问技巧二:提供参考文本
  3. GPT4 提问技巧三:复杂任务拆分
  4. GPT4 提问技巧四:给模型思考时间
  5. GPT4 提问技巧五:借助外部工具
  6. GPT4 提问技巧六:系统基准评测

GPT4 作为一个大语言生成模型,虽然很强大,但是有一些局限性。比如信息缺乏时效性,无法访问互联网或者外部数据库,缺乏深度专业知识特别是数学计算能力,处理复杂数据的能力有限等。在上面这些领域现在已经有专业软件工具,可以弥补 GPT4 能力上的不足。我们可以将 GPT4 和外部工具结合起来,从而更大限度的发挥 GPT4 模型的能力。

下面是一些可以在 GPT4 中使用外部工具的场景:

  • 获取实时信息:外部工具可以访问实时数据和信息。例如,可以使用 Web 爬虫或 API 来检索最新的新闻和统计数据。
  • 处理复杂数据:外部工具可以帮助我们处理和分析复杂数据。例如,可以使用数据可视化工具来创建图表和图像,以更直观地展示信息。
  • 提高准确性:外部工具可以验证 GPT 生成的信息的准确性,并在必要时进行更正。

示例问题):

查找以下多项式的所有实值根:3x^5 – 5x^4 – 3x^3 – 7x – 10

直接问 GPT4 的话,通常没法给出答案,如下图所示:

wolframalpha 上计算的结果一致。GPT4 给的回复如下:

加班了多少天?GPT4 被绕晕了,GPT 并不能直接给出加班天数。但是可以编写一个正确的程序,来计算出总的加班天数。

正是因为 GPT4 配合代码执行,能大幅提高 GPT4 的能力。所以 OpenAI 自己也提供了 Code Interpreter(代码解析器),生成的代码可以直接在 ChatGPT 的沙箱解析器执行,我专门写过几篇文章来介绍代码解析器的用法。

Function calling and other API updates 中宣布支持 Function calling。在 Function calling 问世以前,如果想通过自然语言来调用函数,需要先用自然语言让模型解析出调用的函数以及参数,这个过程既复杂又容易出错。

让我们以一个天气查询的例子来说明。假设我们有一个函数 get_weather(location: string, date: string),它可以查询指定日期和地点的天气。在 Function calling 问世以前,如果我们想让 GPT 模型帮我们调用这个函数,我们可能会写下这样的 Prompt:

我有一个函数 get_weather(location: string, date: string) 来拿指定地点的天气信息,对于下面的提问,你要提取里面的关键信息 location 和 date,并以 json 输出。
提问内容是: 明天广州的天气如何?

可能得到下面的结果,然后解析这里的返回,再去调用我们自己的函数拿到结果。这中间模型可能会返回非 json 的内容,或者返回的日期也不对,需要去处理这些异常情况。

这些模块按照复杂程度从低到高列出如下:

  • Model I/O (模型 I/O):负责加载语言模型,并实现与语言模型的交互,包括发送提问和获取响应。
  • Data connection (数据连接):用于连接外部数据源,如数据库和 API,可以从中获取应用需要的结构化数据。
  • Chains (调用链):定义了构建语言模型链的组件和执行流程,可自定义链中的模块组合与顺序,比如顺序执行一系列操作。
  • Agents (代理):实现了智能代理的策略,根据当前状态动态选择和切换链中最合适的模块工具。
  • Memory (内存管理):用于构建知识库,在链的运行过程中存储并检索关键信息,实现状态维护。
  • Callbacks (回调):可以注册回调函数,记录日志和处理链中的流式数据,实现执行过程的可观测性。
  • Evaluation (评估):提供了评估链性能的方法,可以分析结果并基于测试集测试链的性能。

官方文档对每个模块都有详细的说明,比如 Data connection 部分,抽象了 5 个步骤,包括加载不同来源的文档,进行分割以及删减,文档向量化 embeding,存储向量数据,以及查询。如下图 (图片来自官方文档) 所示:

LangChain for LLM Application Development,里面讲的还是挺不错的,可以用来快速了解 LangChain 的玩法。

我们知道 LangChain 是一个编程库,目前支持 Python 和 JavaScript,为了能进一步降低这里的开发门槛,有人提供了一个 UI langflow,能够通过拖拽完成简单的任务,如下图示例:

GPT-4 提问技巧五:如何提升GPT-4的能力LangChain langflow 示意图

在可预见的未来,我们可以期待 GPT-4 等大型语言模型将与现有工具进行更深度的融合,以充分释放其潜力并推动各类应用的创新与发展。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

Stable Diffusion XL 1.0发布!最强文生图开放模型免费试玩

2023-11-19 10:52:14

AI教程

解决线程安全问题:我花了两天时间没解决的问题,chatgpt用了5秒搞定

2023-11-19 11:04:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索