使用 GPT 进行下一个词元预测

社区文章 发布于 2023 年 10 月 20 日

词元

语言模型不处理英语、西班牙语或任何其他人类语言。语言模型处理词元 ID 并生成词元 ID。例如,当我向 GPT-2 发送句子“The dog eats the apples.”时,该句子被分解为词元 ["The", " dog", " eats", " the", " apples", "."] 并且 GPT-2 处理词元 ID "[464, 3290, 25365, 262, 22514, 13]"(见下图)。

词元分解和词元 ID 将取决于语言模型,但总体思路是相同的。要了解词元是什么或搜索特定词元,请使用此交互式演示:https://alonsosilva-tokenizer.hf.space/

注意:本文中的三个交互式演示都是使用 Solara 构建的,Solara 是一个纯 Python 的 React 风格框架,用于构建超响应式 Web 应用程序。

下一个词元预测

语言模型将接收这些词元并预测下一个词元。从抽象的角度来看,预测下一个词元是一个多类分类任务,其中有许多类(对于 GPT-2 来说有 50,257 个类,因为这些是所有可能的词元)。

例如,当我们发送句子“One, two,”时,GPT-2 接收词元 ID "[3198, 11, 734, 11]" 并以 39.71% 的概率预测下一个词元 ID 将是 "[1115]",它对应于词元 " three"。

生成单个词元很酷,但如果生成整个句子、段落等呢?我们可以通过迭代地从模型中获取下一个词元预测来生成完整的句子。在每次迭代中,我们将预测的词元重新添加到输入中。这种模型称为自回归模型(例如,GPT-4 就是一个自回归模型)。

那么问题就在于如何极其出色地预测下一个词元。语言模型会给出下一个词元的概率(见上图)。

有许多不同的采样策略,但最简单的策略是预测概率最高的下一个词元。如果我们遵循该策略,我们将得到以下结果:

然后,通过使用这种贪婪策略补全提示“One, two,”,我们得到:“One, two, three, four, five, six, seven, eight, nine, ten,”...

要探索下一个词元预测,您可以查看我构建的以下应用程序:https://alonsosilva-nexttokenprediction.hf.space/

由于模型会给出它期望的下一个词元的概率,因此给定一段文本,我们可以估计模型发现给定词元时的惊讶程度。例如,在看到“One, two, three, four,”之后,模型发现下一个词元是“ mango”时会非常惊讶(见下图)

实际上,如果我们将鼠标悬停在词元“ mango”上,模型估计的词元“ mango”的概率为 0.00%。

要探索模型对您提供的给定句子中每个词元的惊讶程度,您可以查看以下应用程序:https://alonsosilva-perplexity.hf.space/

社区

已删除
此评论已被隐藏
已删除
此评论已被隐藏

注册登录 以评论