大型语言模型的工作原理
大型语言模型是一种将文本映射为文本的函数。给定一段文本输入,大型语言模型预测接下来应该出现的文本。
大型语言模型的神奇之处在于,通过在大量文本上训练以最小化预测误差,模型最终学会了对这些预测有用的概念。例如,它们学会了:
- 如何拼写
- 语法如何运作
- 如何释义
- 如何回答问题
- 如何进行对话
- 如何用多种语言写作
- 如何编写代码
- 等等
它们通过“阅读”大量现有文本,学习单词如何在其他单词的上下文中出现,并使用所学到的知识预测下一个最有可能响应用户请求的单词,以及之后每个单词。
GPT-3和GPT-4为许多软件产品提供动力,包括生产力应用、教育应用、游戏等。
如何控制大型语言模型
在所有输入大型语言模型的文本中,最具影响力的是文本提示。可以通过以下几种方式提示大型语言模型产生输出:
-
指令:告诉模型你想要什么
-
补全:引导模型完成你想要的开头
-
情景:给模型一个情境来展开
-
示范:通过以下方式向模型展示你想要什么:
在提示中提供一些示例 在微调训练数据集中提供数百或数千个示例
以下是每种方式的示例。
指令提示示例
在提示词的顶部(或底部,或底部顶部都写)写下你的指令,模型将尽力遵循指令然后停止。指令可以详细,所以不要害怕写一段明确详细输出内容的段落,只要注意模型可以处理的tokens数量。
示例指令提示:
从下面的引用中提取作者的名字。
“有些人推测,智能物种在能够扩展到外太空之前就会灭绝。如果他们是正确的,那么夜空的寂静就是墓地的沉默。”
— 特德·姜,《呼吸》
输出:
特德·姜
补全提示示例
补全式提示利用了大型语言模型尝试编写它们认为最有可能接下来的文本的方式。为了引导模型,尝试开始一个模式或句子,这将由你想要的输出完成。与直接指令相比,这种引导大型语言模型的方式可能需要更多的关注和实验。此外,模型不一定知道在哪里停止,因此你通常需要停止序列或后处理来切断生成的超出所需输出的文本。
示例补全提示:
“有些人推测,智能物种在能够扩展到外太空之前就会灭绝。如果他们是正确的,那么夜空的寂静就是墓地的沉默。”
— 特德·姜,《呼吸》
这位引用的作者是
输出:
特德·姜
情景提示示例
给模型一个情境来遵循或扮演角色,对于复杂查询或寻求富有想象力的响应时,这可能会有所帮助。当使用假设性提示时,你设置了一个情境、问题或故事,然后要求模型以情境中的角色或主题专家的身份作出响应。
示例情景提示:
你的职责是从任何给定文本中提取作者的名字
“有些人推测,智能物种在能够扩展到外太空之前就会灭绝。如果他们是正确的,那么夜空的寂静就是墓地的沉默。”
— 特德·姜,《呼吸》
输出:
特德·姜
示范提示示例(少样本学习)
与补全式提示类似,示范可以向模型展示你想要它做什么。这种方法有时被称为少样本学习,因为模型从提示中提供的少数示例中学习。
示例示范提示:
引用:
“当理性的头脑被迫一次又一次地面对不可能时,它别无选择,只能适应。”
— N.K.杰米辛,《第五季》
作者:N.K.杰米辛
引用:
“有些人推测,智能物种在能够扩展到外太空之前就会灭绝。如果他们是正确的,那么夜空的寂静就是墓地的沉默。”
— 特德·姜,《呼吸》
作者:
微调提示示例
有了足够的训练示例,你可以微调一个定制模型。在这种情况下,指令变得不必要,因为模型可以从提供的训练数据中学习任务。然而,包括分隔序列(例如,->
或###
或任何不常出现在你的输入中的字符串)以告诉模型何时提示结束并且何时输出开始可能会有所帮助。没有分隔序列,模型可能会继续阐述输入文本,而不是开始你想要的答案。
示例微调提示(对于在类似提示-完成对上定制训练过的模型):
“有些人推测,智能物种在能够扩展到外太空之前就会灭绝。如果他们是正确的,那么夜空的寂静就是墓地的沉默。”
— 特德·姜,《呼吸》
###
输出:
特德·姜
大型语言模型不仅擅长文本 - 它们也可以擅长编写代码。OpenAI的[GPT-4]模型就是一个很好的例子。
GPT-4为[许多创新产品]提供动力,包括:
- GitHub Copilot(在Visual Studio和其他IDE中自动完成代码)
- Replit(可以完成、解释、编辑和生成代码)
- Cursor(在一个为与AI配对编程而设计的编辑器中更快地构建软件)
GPT-4比以前的模型如gpt-3.5-turbo-instruct
更高级。但是,要充分利用GPT-4进行编码任务,给出清晰和具体的指令仍然很重要。因此,设计好的提示词可能需要更多的关注。
更多提示建议
更多提示示例,请访问OpenAI示例。
通常,输入提示是改善模型输出的最佳杠杆。你可以尝试以下技巧:
- 更具体 例如,如果你想让输出是一个逗号分隔的列表,就要求它返回一个逗号分隔的列表。如果它不知道答案时要求它说“我不知道”,就告诉它“如果你不知道答案,就说’我不知道’”。你的指令越具体,模型的响应就越好。
- 提供上下文:帮助模型理解你的请求的大局。这可能是背景信息、你想要的示例/示范或解释任务的目的。
- 要求模型像专家一样回答。 明确要求模型产生高质量的输出或像专家一样写的输出,可以促使模型给出它认为专家会写的更高质量的答案。像“详细解释”或“逐步描述”这样的短语可以很有效。
- 提示模型写下解释其推理的一系列步骤。 如果理解答案背后的“为什么”很重要,提示模型包括它的推理。这可以通过在每个答案前简单地添加一行像“[让我们一步一步思考]来完成。