如何充分利用大型语言模型
大型语言模型的工作原理
大型语言模型是将文本映射到文本的函数。给定一个文本输入字符串,大型语言模型会预测接下来应该出现的文本。
大型语言模型的魔力在于,通过在大量文本上进行训练以最小化预测误差,这些模型最终学会了对这些预测有用的概念。例如,它们学会了:
- 如何拼写
- 语法如何工作
- 如何改写
- 如何回答问题
- 如何进行对话
- 如何用多种语言写作
- 如何编写代码
- 等等
所有这些功能都不是明确编程的,它们都是在训练过程中产生的结果。
GPT-3支持数百种软件产品,包括生产力应用程序、教育应用程序、游戏等等。
如何控制大型语言模型
在所有输入中,对大型语言模型影响最大的是文本提示。
大型语言模型可以通过以下几种方式进行提示以生成输出:
- 指令: 告诉模型你想要什么
- 完成: 引导模型完成你想要的文本的开头
- 演示: 向模型展示你想要的内容,可以是提示中的一些示例,也可以是精细调整训练数据集中的成百上千个示例
下面分别展示了每种方式的示例。
指令提示
遵循指令的模型(例如text-davinci-003
或以text-
开头的任何模型)专门设计用于遵循指令。在提示的顶部(或底部,或两者兼有)编写你的指令,模型将尽力遵循指令,然后停止。指令可以很详细,所以不要害怕写一段明确详细的输出要求。
例如指令提示:
提取下面引用中的作者姓名。
“有些人理论认为,智能种族在扩展到外太空之前就会灭绝。如果他们正确,那么夜空的寂静就是坟墓的寂静。”
― Ted Chiang, 《呼吸》
输出:
Ted Chiang
完成提示示例
完成式提示利用了大型语言模型试图编写它认为最有可能出现的文本的方式。为了引导模型,尝试开始一个模式或句子,这个模式或句子将由你想要看到的输出来完成。与直接指令相比,这种方式需要更多的关心和实验。此外,模型不一定知道何时停止,因此通常需要停止序列或后处理来截断生成的文本,以确保输出符合预期。
例如完成提示:
“有些人理论认为,智能种族在扩展到外太空之前就会灭绝。如果他们正确,那么夜空的寂静就是坟墓的寂静。”
― Ted Chiang, 《呼吸》
这句话的作者是
输出:
Ted Chiang
演示提示示例(少样本学习)
与完成式提示类似,演示可以向模型展示你想要它做什么。这种方法有时被称为少样本学习,因为模型从提示中提供的少数示例中学习。
例如演示提示:
引用:
“当理性思维一次又一次地被迫面对不可能时,它别无选择,只能适应。”
― N.K. Jemisin, 《第五季》
作者: N.K. Jemisin
引用:
“有些人理论认为,智能种族在扩展到外太空之前就会灭绝。如果他们正确,那么夜空的寂静就是坟墓的寂静。”
― Ted Chiang, 《呼吸》
作者:
输出:
Ted Chiang
细调提示示例
通过足够多的训练示例,你可以对自定义模型进行细调。在这种情况下,指令变得不必要,因为模型可以从提供的训练数据中学习任务。但是,包含分隔符序列(例如->
或###
或任何不常出现在输入中的字符串)可以帮助告诉模型提示何时结束以及输出何时开始。如果没有分隔符序列,模型有可能继续详细阐述输入文本,而不是开始生成你想要看到的答案。
例如,细调提示示例(用于已在类似提示完成对中进行自定义训练的模型):
“有些人理论认为,智能种族在扩展到外太空之前就会灭绝。如果他们正确,那么夜空的寂静就是坟墓的寂静。”
― Ted Chiang, 《呼吸》
###
输出:
Ted Chiang
代码能力
大型语言模型不仅在文本方面表现出色,还在代码方面表现出色。OpenAI的专用代码模型称为[Codex](https
://openai.com/blog/openai-codex)。
Codex支持超过70个产品,包括:
- GitHub Copilot(在VS Code和其他IDE中自动完成代码)
- Pygma(将Figma设计转化为代码)
- Replit(具有“解释代码”按钮等功能)
- Warp(带有AI命令搜索的智能终端)
- Machinet(编写Java单元测试模板)
请注意,与遵循指令的文本模型(例如text-davinci-002
)不同,Codex没有经过训练以遵循指令。因此,设计良好的提示需要更多的关注。
更多提示建议
有关更多提示示例,请访问OpenAI Examples。
总的来说,输入提示是改进模型输出的最佳杠杆。你可以尝试一些技巧,如:
- 提供更明确的指令。 例如,如果你希望输出是逗号分隔的列表,可以要求它返回逗号分隔的列表。如果你希望它在不知道答案时说“我不知道”,可以告诉它'如果你不知道答案,请说“我不知道”。'
- 提供更好的示例。 如果你在提示中展示示例,请确保你的示例多样且高质量。
- 要求模型像专家一样回答。 明确要求模型产生高质量的输出,或者产生像专家写的输出一样的输出,可以诱使模型提供更高质量的答案,因为模型认为专家会写的答案。例如,“以下答案是正确的、高质量的,由专家撰写。”
- 提示模型写下解释其推理的一系列步骤。 例如,在最终答案之前,以“让我们一步一步地思考”之类的方式引导模型给出其推理的解释。提示模型在最终答案之前解释其推理的步骤可以增加最终答案一致且正确的可能性。