大型语言模型的工作原理
大型语言模型 是将文本映射到文本的函数。 给定一段输入文本,大型语言模型会预测接下来应该出现的文本。
大型语言模型的魔力在于,通过训练模型以最大限度地减少对大量文本的预测误差,模型最终会学习到对这些预测有用的概念。 例如,它们学习
- 如何拼写
- 语法如何运作
- 如何释义
- 如何回答问题
- 如何进行对话
- 如何用多种语言写作
- 如何编程
- 等等。
它们通过“阅读”大量现有文本并学习单词在上下文中与其他单词一起出现的趋势来实现这一点,并使用所学知识来预测在响应用户请求时最有可能出现的下一个单词,以及之后出现的每个单词。
GPT-3 和 GPT-4 为 许多软件产品 提供支持,包括生产力应用程序、教育应用程序、游戏等等。
如何控制大型语言模型
在大型语言模型的所有输入中,到目前为止,最具影响力的是文本提示。
可以提示大型语言模型以几种方式生成输出
- 指令:告诉模型你想要什么
- 补全:引导模型完成你想要的开头
- 情景:给模型一个要扮演的情景
- 演示:向模型展示你想要什么,通过以下任一方式
- 提示中的几个示例
- 微调训练数据集中的数百或数千个示例
下面展示了每种方式的示例。
指令提示
将你的指令写在提示的顶部(或底部,或两者都写),模型将尽力遵循指令然后停止。 指令可以很详细,所以不要害怕写一段明确详细说明你想要的输出的段落,只需注意模型可以处理多少 tokens。
指令提示示例
Extract the name of the author from the quotation below.
“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
情景提示示例
对于复杂的查询或在寻求富有想象力的回应时,给模型一个要遵循的情景或要扮演的角色可能会有所帮助。 当使用假设性提示时,你设置一个情景、问题或故事,然后要求模型像该情景中的角色或该主题的专家一样做出回应。
情景提示示例
Your role is to extract the name of the author from any given 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
演示提示示例(少样本学习)
与补全式提示类似,演示可以向模型展示你希望它做什么。 这种方法有时被称为少样本学习,因为模型从提示中提供的几个示例中学习。
演示提示示例
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
微调提示示例
通过足够的训练示例,你可以微调自定义模型。 在这种情况下,指令变得不必要,因为模型可以从提供的训练数据中学习任务。 但是,包含分隔符序列(例如,->
或 ###
或任何在你的输入中不常出现的字符串)来告诉模型提示何时结束以及输出何时开始可能会有所帮助。 如果没有分隔符序列,则存在模型继续详细说明输入文本而不是开始你希望看到的答案的风险。
微调提示示例(对于已在类似的提示-补全对上进行自定义训练的模型)
“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 的 GPT-4 模型就是一个典型的例子。
GPT-4 为 众多创新产品 提供支持,包括
- GitHub Copilot(在 Visual Studio 和其他 IDE 中自动完成代码)
- Replit(可以完成、解释、编辑和生成代码)
- Cursor(在专为与 AI 配对编程而设计的编辑器中更快地构建软件)
GPT-4 比以前的模型(如 gpt-3.5-turbo-instruct
)更先进。 但是,为了充分利用 GPT-4 进行编码任务,给出清晰明确的指令仍然很重要。 因此,设计好的提示可能需要更加谨慎。
更多提示建议
有关更多提示示例,请访问 OpenAI Examples。
总的来说,输入提示是改进模型输出的最佳手段。 你可以尝试以下技巧,例如
- 更具体 例如,如果你希望输出是逗号分隔的列表,请要求它返回逗号分隔的列表。 如果你希望它在不知道答案时说“我不知道”,请告诉它“如果你不知道答案,请说‘我不知道’。” 你的指令越具体,模型就能越好地响应。
- 提供上下文:帮助模型理解你请求的更大背景。 这可以是背景信息、你想要的示例/演示或解释你的任务的目的。
- 要求模型像专家一样回答。 明确要求模型生成高质量的输出或像专家撰写的那样输出可以引导模型给出它认为专家会写出的更高质量的答案。 诸如“详细解释”或“逐步描述”之类的短语可能有效。
- 提示模型写下解释其推理过程的一系列步骤。 如果理解答案背后的“为什么”很重要,请提示模型包含其推理过程。 这可以通过在每个答案前简单地添加一行“让我们逐步思考”来完成。