生成式人工智能的竞争近期达到了新的高潮。OpenAI 抢先发布了 GPT-4o,随后谷歌在 I/O 开发者大会上发布了一系列生成式人工智能模型与产品。自 2022 年 11 月 OpenAI 推出 ChatGPT 以来,已有 18 个月的时间。学界和业界为了提升生成式 AI 模型的能力,做出了诸多努力。
著名人工智能学者、斯坦福大学教授吴恩达高度总结了提升生成式 AI 模型能力的方式,主要包括两点:一是提升模型的推理能力;二是扩展上下文窗口。基于此,他撰写了一篇博客阐述了一套通用且高效的 Prompt 策略。
行业最新进展
谷歌宣布将 Gemini Pro 1.5 的输入上下文窗口扩大一倍,从 100 万 token 扩展到 200 万 token。OpenAI 发布的 GPT-4o,其生成速度是 GPT-4 Turbo 的 2 倍,而且价格降低了 50%,原生支持输入、生成多模态 token。这是 18 个月以来的最新进展。
随着 GPT-4、Gemini 1.5 Pro、Claude 3 Opus 和 Llama 3-70B 等里程碑模型的发布,许多模型提供商通过两个重要方式提高了自己的能力:
- 提升模型的推理能力:使大语言模型(LLM)能够思考复杂的概念并遵循复杂的指令。
- 更长的输入上下文窗口:允许模型处理更多的信息。
推理能力与 Mega-Prompt
GPT-4 和其他高级模型的推理能力使它们非常擅长解释带有详细说明的复杂 Prompt。许多人习惯向 LLM 快速提出 1 到 2 句话的查询。相比之下,在构建应用程序时,经验丰富的团队经常编写可能长达 1 到 2 页的 Prompt(称为「Mega-Prompt」),这些 Prompt 提供复杂的指令来详细说明我们希望 LLM 如何执行一个任务。
这种 Prompt 方式与我们通常在 LLM 网络用户界面中使用的非常不同。在这种方式中,我们可能会快速进行查询,如果响应不满意,则通过与聊天机器人反复对话来表述清楚我们想要什么。而在工程化应用中,我们需要一次性提供详尽的上下文和约束条件。
例如,在构建复杂的工作流时,开发人员可以通过以下过程获得良好的结果:
- 编写快速、简单的 Prompt,看看效果如何。
- 根据输出不足的地方,迭代地充实 Prompt。这通常会导致更长、更详细的 Prompt,甚至可能是「Mega-Prompt」。
- 如果这仍然不够,请考虑少样本或多样本学习(如果适用),或者不太频繁地进行微调。
- 如果仍然不能产生您需要的结果,请将任务分解为子任务并应用智能体工作流。
上下文窗口与样本学习
此外,输入上下文窗口长度的增加为开发人员的工具箱添加了另一种技术。GPT-3 激发了关于小样本上下文学习的大量研究。例如,如果您使用 LLM 进行文本分类,您可能会提供一些(例如 1 到 5 个)文本片段及其类别标签的样本,以便它可以泛化到其他文本。
GPT-4o 接受 128,000 个输入 token,Claude 3 Opus 200,000 个 token,Gemini 1.5 Pro 100 万个 token(200 万个 token 目前仅适用于预览版)。然而,随着输入上下文窗口变得越来越长,人们发现 LLM 并不局限于少数样本。通过多样本(Many-Shot)学习,开发人员可以在 Prompt 中给出数十个甚至数百个样本,这比少样本(Few-Shot)学习效果更好。
系统化的 Prompt 优化策略
为了更系统地优化大模型的效果,建议遵循以下逻辑路径:
1. 基础指令优化
首先确保指令清晰、无歧义。明确任务的输入、输出格式以及任何特定的约束条件。避免使用模糊的词汇,如'最好'、'大概',而应使用具体的量化指标。
2. 思维链(Chain of Thought)
对于复杂的推理任务,引导模型展示其思考过程。通过在 Prompt 中加入'让我们一步步思考'等提示,可以显著提高模型在数学、逻辑推理等任务上的准确率。
3. 检索增强生成(RAG)结合
当需要模型回答特定领域知识时,单纯依赖模型内部参数可能不足。结合 RAG 技术,将外部知识库的内容作为上下文提供给模型,可以有效减少幻觉并提高答案的时效性和准确性。
4. 智能体工作流(Agent Workflow)
如果单轮交互无法满足需求,可以将任务分解为多个子任务。利用智能体框架,让不同的模型实例或同一个模型的不同调用负责不同的子任务,最后汇总结果。例如,一个 Agent 负责搜索信息,另一个负责分析数据,第三个负责生成报告。
推荐资源
如果您有兴趣更深入地研究 Prompt 策略,推荐参考 Medprompt 论文。该论文列出了一组复杂的 Prompt 策略,包括自我反思、多视角验证等,可以带来非常好的结果。
Medprompt 论文链接:


