LLM中的Tokenizers
00 分钟
2024-5-12
2024-6-21
type
status
date
slug
summary
tags
category
icon
password
URL-TEXT
😀
在大型语言模型(LLM)中,tokenizers 扮演着非常关键的角色。它们负责将输入的文本转换成模型能理解的一系列数字,我们通常称这些数字为“tokens”。让我们来详细探讨一下 tokenizers 是如何工作的.
 

📝 关于Tokenizer

作用&能力

  1. 分词(Tokenization)
      • 基于空格和标点:最简单的分词方法是根据空格和标点符号分开文本。这种方法简单但通常不够精细,可能会忽略语言中的一些细微差别。
      • 子词分词(Subword tokenization):为了更有效地处理词汇多样性和未知词汇,现代的 NLP 模型通常使用子词分词技术。这种技术可以将复杂的词汇分解成更小的单元(如词根、前后缀)。常见的算法包括 BPE(Byte Pair Encoding)、WordPiece 和 SentencePiece。
  1. 编码(Encoding)
      • 每个 token(可以是一个词、一个子词或一个字符)都被赋予一个唯一的数字ID。这些ID是预训练过程中建立的,基于语料库中单词的频率。
      • 这些数字ID使模型能够将文本转换成向量,这些向量是进行机器学习的基础。
  1. 处理特殊tokens
      • 特殊tokens对于模型来说是必要的,它们用来表示句子的开始和结束(如 [CLS], [SEP]),或者用于填充和分隔(如 [PAD], [UNK])。
  1. 上下文理解
      • 现代的 tokenizers 能够保留单词之间的关系和结构,这对于理解语言的上下文非常重要。比如,在使用 BERT 类模型时,会考虑句子中每个词与其他词的关系。
 
Tokenizer 是连接原始文本输入和机器学习模型之间的桥梁。它不仅需要高效地将文本转换为 tokens,还要保持文本的语义完整性,以便模型能够学习并生成有意义的输出。
 

形象化理解

可以把 tokenizer 比作是一种智能的“文字破碎机”。想象你有一本书,而你需要把书中的文字转换成一种机器能读懂的形式。这里,tokenizer 就扮演了这样一个角色:
  1. 切割文字
      • 把书中的文本按照某种规则(如空格、标点符号)切割开来,就像把一句句话切割成一个个词或短语。
      • 进一步地,它还能将这些词或短语再细分到更小的部分,比如将“unbelievable”分解为“un-”, “believe”, “-able”,就像是把大块面包切成小块,以确保每块都可以被机器理解。
  1. 编码
      • 每一个切割好的小块都会被转换成一个数字。想象每个词或词段都有一个专属的“身份证号”,这样机器就可以通过这个号码来识别和处理文本了。
  1. 添加标志
      • 在这些数字之间,tokenizer 会插入一些特殊的标记,比如用来表示句子开始和结束的标记。这就像是在装配机器的时候,加入一些特殊的零件,使整个机器能更好地运作。
  1. 保持关系
      • 在处理时,tokenizer 会注意保持词与词之间的关系,这样整句话的意思才不会丢失,就好比确保机器的每个部件都正确地安装,以确保整个机器的功能。
<ins/>

🤗 总结归纳

在大型语言模型(LLM)中,tokenizers扮演着关键角色,将文本转换为模型可理解的数字“tokens”。分词方法包括基于空格和标点的分词,以及更精细的子词分词。每个token都被赋予一个唯一的数字ID,使模型能够将文本转换为向量。特殊tokens用于表示句子的开始和结束,或用于填充和分隔。现代的tokenizers能够保留单词之间的关系和结构,对理解语言的上下文至关重要。总的来说,tokenizer是连接原始文本输入和机器学习模型之间的桥梁。
 
 
 
上一篇
如何让Python和C++生成相同的随机数
下一篇
行为克隆(BC)、奖励建模(RM)、强化学习(RL)和拒绝采样(best-of-n)