跳到主要内容

如何使用大型语言模型

大型语言模型的工作原理

[大型语言模型][大型语言模型博客文章]是将文本映射到文本的函数。给定一个输入文本字符串,大型语言模型预测接下来应该出现的文本。

大型语言模型的神奇之处在于,通过在大量文本上训练以最小化这种预测误差,模型最终学习到了对这些预测有用的概念。例如,它们学会了:

  • 如何拼写
  • 语法如何运作
  • 如何改写
  • 如何回答问题
  • 如何进行对话
  • 如何用多种语言写作
  • 如何编写代码
  • 等等。

它们通过“阅读”大量现有文本,学习单词在上下文中与其他单词的常见出现方式,并利用所学知识来预测用户请求后最可能出现的下一个单词,以及随后的每个单词。

GPT-3 和 GPT-4 为[许多软件产品][OpenAI 客户故事]提供动力,包括生产力应用、教育应用、游戏等。

如何控制大型语言模型

在所有输入到大型语言模型的内容中,影响最大的是文本提示。

可以通过几种方式提示大型语言模型生成输出:

  • 指令:告诉模型你想要什么
  • 补全:引导模型完成你想要的开始部分
  • 场景:给模型一个情境来展开
  • 演示:向模型展示你想要的内容,可以是:
    • 提示中的几个示例
    • 微调训练数据集中的数百或数千个示例

下面展示了每种方式的示例。

指令提示

将你的指令写在提示的顶部(或底部,或两者都有),模型将尽力遵循指令然后停止。指令可以很详细,所以不要害怕写一段明确详细说明你想要的输出,只需注意模型可以处理多少令牌

示例指令提示:

从下面的引文中提取作者的名字。

“有些人认为,智慧物种在扩展到外太空之前就会灭绝。如果他们是对的,那么夜空的寂静就是墓地的沉默。”
― 特德·姜,《呼吸》

输出:

特德·姜

补全提示示例

补全式提示利用了大型语言模型试图写出它们认为最可能出现的下一段文本的特点。为了引导模型,尝试开始一个模式或句子,这将由你想要看到的输出来完成。相对于直接指令,这种引导大型语言模型的模式可能需要更多的关注和实验。此外,模型不一定知道何时停止,因此你通常需要停止序列或后处理来截断超出所需输出的生成文本。

示例补全提示:

“有些人认为,智慧物种在扩展到外太空之前就会灭绝。如果他们是对的,那么夜空的寂静就是墓地的沉默。”
― 特德·姜,《呼吸》

这段引文的作者是

输出:

特德·姜

场景提示示例

给模型一个遵循的场景或角色来扮演,对于复杂查询或寻求富有想象力的回答时很有帮助。使用假设性提示时,你设定一个情境、问题或故事,然后要求模型像该场景中的角色或该主题的专家一样回应。

示例场景提示:

你的角色是从任何给定的文本中提取作者的名字

“有些人认为,智慧物种在扩展到外太空之前就会灭绝。如果他们是对的,那么夜空的寂静就是墓地的沉默。”
― 特德·姜,《呼吸》

输出:

特德·姜

演示提示示例(少样本学习)

类似于补全式提示,演示可以向模型展示你希望它做什么。这种方法有时被称为少样本学习,因为模型从提示中提供的几个示例中学习。

示例演示提示:

引文:
“当推理的心灵被迫一次又一次地面对不可能时,它别无选择,只能适应。”
― 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 Examples

一般来说,输入提示是改善模型输出的最佳杠杆。你可以尝试以下技巧:

  • 更加具体 例如,如果你想让输出是一个逗号分隔的列表,就要求它返回一个逗号分隔的列表。如果你希望它在不知道答案时说“我不知道”,就告诉它“如果你不知道答案,就说‘我不知道’。” 你的指令越具体,模型响应得越好。
  • 提供上下文:帮助模型理解你请求的更大背景。这可以是背景信息、你想要的示例/演示或解释你任务的目的。
  • 要求模型以专家身份回答:明确要求模型产生高质量输出或以专家身份输出,可以促使模型给出它认为专家会写的高质量答案。像“详细解释”或“逐步描述”这样的短语很有效。
  • 提示模型写下解释其推理的一系列步骤:如果理解答案背后的“为什么”很重要,就提示模型包含其推理。这可以通过在每个答案前简单添加一行“让我们一步步思考”来实现。