如何使用大型语言模型
# 大型语言模型的工作原理
大型语言模型 (opens new window)是将文本映射到文本的函数。给定一个输入文本字符串,大型语言模型会预测接下来应该出现的文本。
大型语言模型的神奇之处在于,通过训练以最大限度地减少对大量文本的预测误差,模型最终学习到对这些预测有用的概念。例如,他们学习:
- 怎么拼
- 语法是如何运作的
- 如何释义
- 如何回答问题
- 如何进行对话
- 如何用多种语言写作
- 如何编码
- 等等。
这些能力都没有明确编入程序——它们都是训练的结果。
GPT-3 (opens new window) 为数百种软件产品 (opens new window)提供支持,包括生产力应用程序、教育应用程序、游戏等。
# 如何控制大型语言模型
在大型语言模型的所有输入中,迄今为止影响最大的是文本提示。
可以通过以下几种方式提示大型语言模型生成输出:
说明:告诉模型你想要什么
完成:诱导模型完成你想要的开始
演示
- 向模型显示您想要的内容,可以使用:
- 提示中的几个例子
- 微调训练数据集中有数百或数千个示例
下面显示了每个示例。
# 指令提示
指令跟随模型(例如,text-davinci-003
或任何以text-
开头的模型)专门设计用于遵循指令。在提示的顶部(或底部,或两者)写下您的指令,模型将尽最大努力遵循指令,然后停止。说明可以很详细,所以不要害怕写一段明确详细说明您想要的输出。
示例指令提示:
从下面的引文中提取作者姓名。
“Some humans theorize that intelligent species go extinct before they can expand into outer space. If they're correct, then the hush of the night sky is the silence of the graveyard.”
― Ted Chiang, Exhalation
输出:
Ted Chiang
# 完成提示示例
完成式提示利用大型语言模型如何尝试编写他们认为最有可能出现的文本。要引导模型,请尝试从一个模式或句子开始,该模式或句子将由您想要查看的输出完成。相对于直接指令,这种转向大型语言模型的方式可以更加小心和实验。此外,模型不一定知道在哪里停止,因此您通常需要停止序列或后处理来切断超出所需输出的生成文本。
示例完成提示:
“Some humans theorize that intelligent species go extinct before they can expand into outer space. If they're correct, then the hush of the night sky is the silence of the graveyard.”
― Ted Chiang, Exhalation
The author of this quote is
输出:
Ted Chiang
# 演示提示示例 (小样本学习 (opens new window))
与完成式提示类似,演示可以向模型展示您希望它做什么。这种方法有时称为小样本学习,因为模型从提示中提供的几个示例中学习。
示例演示提示:
Quote:
“When the reasoning mind is forced to confront the impossible again and again, it has no choice but to adapt.”
― N.K. Jemisin, The Fifth Season
Author: N.K. Jemisin
Quote:
“Some humans theorize that intelligent species go extinct before they can expand into outer space. If they're correct, then the hush of the night sky is the silence of the graveyard.”
― Ted Chiang, Exhalation
Author:
输出:
Ted Chiang
# 微调提示示例
通过足够的训练示例,您可以微调 (opens new window)自定义模型。在这种情况下,指令变得不必要,因为模型可以从提供的训练数据中学习任务。但是,包含分隔符序列(例如,->
或###
或任何通常不出现在输入中的字符串)来告诉模型提示何时结束,输出何时开始,这可能会很有帮助。如果没有分隔符序列,则存在模型继续详细说明输入文本而不是从您想要看到的答案开始的风险。
微调提示示例(对于在类似的提示完成对上经过自定义训练的模型)
“Some humans theorize that intelligent species go extinct before they can expand into outer space. If they're correct, then the hush of the night sky is the silence of the graveyard.”
― Ted Chiang, Exhalation
###
输出:
Ted Chiang
# 代码能力
大型语言模型不仅擅长文本——它们也擅长代码。OpenAI 的专用代码模型称为Codex (opens new window)。
Codex 支持70 多种产品,包括:
- GitHub Copilot (opens new window)(在 VS Code 和其他 IDE 中自动完成代码)
- Pygma (opens new window)(将 Figma 设计转化为代码)
- Replit (opens new window)(有一个“解释代码”按钮和其他功能)
- Warp (opens new window)(带AI命令搜索的智能终端)
- Machinet (opens new window)(编写 Java 单元测试模板)
请注意,与指令遵循文本模型(例如,text-davinci-002
)不同,Codex未经过训练以遵循指令。因此,设计好的提示可以更加小心。
# 更及时的建议
有关更多提示示例,请访问OpenAI 示例 (opens new window)。
通常,输入提示是改进模型输出的最佳杠杆。您可以尝试以下技巧:
- 给予更明确的指示。例如,如果您希望输出是一个逗号分隔的列表,请要求它返回一个逗号分隔的列表。如果您希望它在不知道答案时说“我不知道”,请告诉它“如果您不知道答案,请说“我不知道”。”
- 提供更好的例子。如果您在提示中演示示例,请确保您的示例多样化且质量高。
- 让模型像专家一样回答。明确要求模型产生高质量的输出或输出,就好像它是由专家写的一样,可以诱导模型给出它认为专家会写的更高质量的答案。例如,“以下答案是正确的、高质量的,而且是专家写的。”
- 提示模型写下解释其推理的一系列步骤。例如,在您的答案前加上“让我们逐步思考 (opens new window)”之类的内容。提示模型在其最终答案之前给出其推理的解释可以增加其最终答案一致和正确的可能性。