自然语言处理与大型语言模型 (LLM)(例如 ChatGPT 和)的演变GPT-4 标志着一个重要的里程碑,这些模型在基于文本的任务中展示了接近人类的理解能力。除此之外,OpenAI 引入的大型多模态模型 (LMM) 代表了一个显着的转变,使这些模型能够处理图像和文本数据。本文将重点讨论法学硕士的核心文本解释技术——标记化和嵌入——及其在多模态环境中的适应,预示着人工智能的未来将超越文本,涵盖更广泛的感官输入。
将原始文本转换为 GPT-4 等大型语言模型可以理解的格式涉及一系列复杂且相互关联的步骤。每个过程(标记化、标记嵌入和变压器架构的使用)在这些模型如何理解和生成人类语言方面都发挥着关键作用。
标记化:理解文本的门户
处理法学硕士语言数据的第一步是标记化。这是将文本分割成更小的单元(称为标记)的过程。此步骤对于将复杂的语言结构分解为机器学习模型可以处理和理解的元素至关重要。
不同的代币化方法
代币化可以采取多种形式,每种形式都有其独特的优势和挑战。
字符级标记化是最简单的形式,其中文本被划分为单个字符。然而,其直接性会导致令牌序列较长,从而降低处理效率。另一方面是单词级标记化,它将文本拆分为单词。这种方法很直观,但在处理大量词汇时可能会遇到困难,并且在遇到新的或未知的单词时常常会犹豫不决。
在子字标记化中找到了一种更平衡的方法,例如字节对编码(BPE)。 BPE 从包含训练语料库中所有独特字符的基础词汇开始,确保每个单词都可以分解为这些基本单元。 BPE的核心在于其频率分析和对合并的方法。它迭代地扫描语料库以识别最常出现的字符或标记对。然后将这些对合并以形成新的令牌。此步骤至关重要,因为它使模型能够识别和巩固常见的配对,并在后续处理中将它们视为单个单元。该过程继续进行,每次迭代都会合并下一个最频繁的对。
随着每次迭代词汇的发展,新的标记(合并对)会被添加。重复该过程,直到词汇表达到预定义的大小或所需的粒度级别。最终的词汇量在足够详细以表示复杂单词和易于管理以有效处理之间取得了平衡。
在对新文本进行标记时,算法会采用这种精炼的词汇表。它首先搜索词汇表中最大可能的标记。如果没有找到匹配项,它会将文本分解为更小的单元,继续下去,直到找到合适的匹配项。该方法确保将常用单词和短语标记为更少、更大的标记,从而提高处理速度,同时将不太常见的短语进一步细分以提高准确性。
BPE 表示常用短语的效率、通过子词单元处理罕见和未知单词的能力以及其平衡方法使其对于处理词汇量大或词形复杂的语言特别有效。该方法体现了一种准备供法学硕士处理的数据的复杂方法,极大地促进了他们对人类语言的理解。
我将通过一个示例演示 BPE 的工作原理,并附上一些代码,以使这个概念更加具体。
让我们用“这是一个例子”这句话作为例子。最初,BPE 将句子分解为基本单元。它不是以整个单词,而是以字符或一小群字符开头。因此,“这是一个示例”首先会被标记为每个单独的字符,例如“T”、“h”、“i”、“s”等。
BPE 然后分析训练数据中字符对的频率并开始合并最常见的字符对。例如,如果“Th”、“is”、“an”、“ex”和“ample”是训练数据中的频繁对,BPE 会将它们合并为单个标记。这个过程被迭代地应用,导致句子由更少、更大的标记来表示,例如“Th”、“is”、“an”、“ex”和“ample”。
将句子从单个字符序列转换为更大、更有意义的单元,减少了表示文本所需的标记总数,在保持效率的同时又不失去意义。此外,BPE 的方法擅长处理新词或罕见词。对于训练期间未见过的单词(例如“exemplary”),BPE 可以将其分解为已知的子词或字符,例如“ex”、“am”、“pl”、“ar”和“y”。此功能使 BPE 在处理未知单词时特别有效,方法是使用现有的子词词汇来近似未知单词。
我还将向您展示 BPE 的简化表示在代码中的样子。
分段 1:从语料库初始化词汇
此部分从示例文本语料库中准备初始词汇。每个单词都被拆分为字符,并附加一个特殊的词尾标记 。此标记有助于区分以相同字符结尾但属于不同单词的单词。
if 词汇中的单词:
词汇[单词] += 1
别的:
词汇[词] = 1″ data-lang=”text/x-python”>
corpus =“这是一个示例。这是另一个示例。”
词汇={}
# 预处理和初始化词汇
对于 corpus.split() 中的单词:
词 = ' '.join(列表(词)) + ' '
if 词汇中的单词:
词汇[单词] += 1
别的:
词汇[单词] = 1
<正文>
表>