首页 » 软件开发 » 大语言模型LLM是如何知道何时停止生成的呢?(生成模型停止单词就像)

大语言模型LLM是如何知道何时停止生成的呢?(生成模型停止单词就像)

神尊大人 2024-07-23 23:31:32 软件开发 0

扫一扫用手机浏览

文章目录 [+]

有两种情况可以使模型停止生成:“EOS tokens”(<| endoftext |>) 和“最大token长度”。
我们会了解它们,但我们必须先来了解更多关于token和 GPT 的生成过程……

Tokens

LLM看不到文字。
他们从来没有见过一个字。
他们看到的东西被称为tokens。
在 GPT-4 等 LLM 的背景下,tokens并不是严格意义上的完整单词;它们也可以是单词的一部分、常见的子词、标点符号,甚至是图像的一部分,例如像素。
例如,“unbelievable”这个词可能会被分成“un”、“believ”和“able”等标记。
我们根据它们在训练数据中重复的频率将它们分解为熟悉的组件,我们称之为标记化过程(tokenization process)

但我们仍然有单词,而模型不认识单词……我们需要将它们转换为数字,以便模型可以对它们进行数学运算,因为它不知道单词是什么,它只知道位和数字。
在这里,我们使用所谓的模型字典。
这个字典基本上只是我们在前面的步骤中决定的所有可能tokens的一个巨大列表。
现在,我们只需在字典中获取单词索引即可将单词表示为数字。

大语言模型LLM是如何知道何时停止生成的呢?(生成模型停止单词就像) 大语言模型LLM是如何知道何时停止生成的呢?(生成模型停止单词就像) 软件开发
(图片来自网络侵删)

这种标记化过程有两个原因。
首先,将单词拆分为常用单词有助于减少模型的词汇量,从而提高处理效率。
其次,它允许模型在更细粒度的级别上生成和解释文本,从而增强其理解和生成细致入微的语言的能力。

生成过程

现在我们的问题已转换为tokens列表。
但 GPT-4 如何处理这些tokens呢?它使用它们一次生成一个新token,并以统计方式生成。
这意味着它将根据之前发送和生成的所有内容生成最有意义的下一个token或单词。

大语言模型LLM是如何知道何时停止生成的呢?(生成模型停止单词就像) 大语言模型LLM是如何知道何时停止生成的呢?(生成模型停止单词就像) 软件开发
(图片来自网络侵删)

如果你问“为什么应该订阅该频道”,它会根据其训练数据(这里是互联网)中最有意义的内容来回答,在这种情况下,这似乎是通过给出订阅理由列表。

所以这里有几件事需要理解:

首先,模型开始生成最有意义的单词,重新表述问题,就像我们在学校看到的那样,并跟进“for several reasons”和冒号(“:”)。
这是因为,在它的训练数据中,大多数类似的问题都是用这样的项目符号列表来回答的,所以它只是复制了这种风格。

有趣的是,它的思维方式与我们不同。
反之亦然。
我们思考这个问题并发现我们应该给出一个订阅理由的项目符号列表,然后列举它们。
就 GPT 而言,它已经开始生成响应,而没有对要回答什么的心理计划。
当它生成这个冒号标记时,它想,“该死,我只是说我会给出几个理由并加上一个冒号;”我现在也许应该开始列举一些事情了!
”事情就这样开始了。

那么,它怎么知道要生成多少个要点并完成生成呢?请记住,没有计划。
它只是根据之前的所有单词一次创建一个单词。
它不知道接下来会发生什么以及何时正确回答,因此它应该停止打字。
这就是我们现在要回答的……

正如我们所说,有两种可能的情况会导致模型停止生成……

场景 1:EOS(End-of-Text)Token

第一种情况是常见的情况。
当它回答了你的问题时,这要归功于一种名为 EOS 的特殊token,或 <|endoftext|>。
与许多大型语言模型一样,GPT-4 使用此特殊标记来确定何时停止生成文本。
想象一下教一个孩子认识一本书中某一章的结尾。
当看到“总结”或“回顾”之类的短语时,孩子会认为我们即将结束。
嗯,这类似于 GPT-4 学习停止生成文本的方式。

在训练过程中,每段文本通常以 EOS token结束,有效地教导模型将其识别为自然停止点及其之前的文本,从而导致这个结局 - 就像章节的最后一个点,如果你愿意这么做的话。
例如,当您问“法国的首都是什么?”这样的简单问题时,模型会生成响应,然后将 EOS token放在“巴黎”后面,表示答案已完成。

就这么简单。
在训练过程中,我们给出的所有示例末尾都有这个 EOS token。
它本质上是根据训练数据学会停止自行生成的。
没有其他的。
没有给定的长度,没有最大值,没有最小值。
这一切都归功于我们如何训练它,以及这个特殊的 EOS 代币,它就像任何其他标点符号一样,只是另一个数字,但这只是为了让模型知道它已经结束。

这导致我们进入第二个场景,使其停止生成:如果我们要求它更简短或更详细,或者在 OpenAI 平台上手动设置token长度限制怎么办?

场景 2:最大令牌长度(Maximum Token Length)

当您设置最大token限制或以文本方式请求时,GPT-4 会使用其对各种长度文本的广泛训练来衡量如何在此限制内适当地分发内容。
例如,如果您要求模型简要解释量子力学等复杂概念,它会计划其响应,以在达到token限制之前传达最关键的信息,通常使用介绍性句子,然后是关键点,以确保清晰度和简洁性。

同样,这是因为这是人类生成简洁摘要或构建清晰而密集的 PowerPoint 的方式。
但是,如果问题相对于令牌限制过于宽泛或复杂,则模型最终可能会提供一个感觉不完整的答案,就像下图所示

正如我们所看到的,它并不总是完美的,但它不断改进。
非常简单,感觉就像魔法一样,对吧?这一切都基于教导这些机器模仿人类的交互和回答,就像我们通过令人惊叹的工程工作和精心策划的训练数据给出相同的背景一样。
没什么神奇的,也没什么太花哨的。
这是纯粹的模仿、统计,也是一个重要的标志,告诉我们是时候结束了。

<|endoftext|>

原文地址:https://pub.towardsai.net/how-llms-know-when-to-stop-generating-b82a9a57e2c4

标签:

相关文章