新浪博客

哑评学汉字-词元

2026-04-03 11:43阅读:

“词元”是自然语言处理(NLP)和大语言模型中的一个核心概念。
简单来说,词元是模型处理文本时的最小基本单位。它不是我们日常理解的一个字或一个词,而是模型在训练和推理时真正“看到”和“生成”的原子单元。
核心理解:词元 ≠ 单词
常见的误解是把词元等同于单词或汉字。实际上,模型内部处理时,会根据一个预设的词元表(Vocabulary),把输入文本切分成词元序列。这个切分过程叫做分词(Tokenization)。
不同的切分粒度
不同模型使用的分词器不同,切分方式也各异:
按词切分 (Word-level):把每个单词作为一个词元。比如 “I love you” → ['I', 'love', 'you']。缺点是词表会非常大(需要包含所有变形、生僻词),且无法处理未登录词(如“新冠”这种新词)。
按字符切分 (Character-level):把每个字符作为一个词元。比如 “hello” →['h','e','l','l','o']。缺点是序列会变得极长,模型难以学习到单词级的语义。
按子词切分 (Subword-level):这是当前主流大模型(如GPTLLaMA)使用的最佳实践。它巧妙地平衡了上述两种方法:
常用词保留为完整词元(高效)。
罕见词或新词会被切分成更常见的子词片段(处理未知词能力强)。
例如:“unhappiness
” 可能被切分为 ['un', 'happiness']['un', 'happi', 'ness']
中文例子:“我喜欢人工智能” 可能被切分为 ['', '喜欢', '人工', '智能']。注意“人工智能”未被进一步切分,因为它是个常见组合。
为什么词元如此重要?
计费单位:在使用OpenAIGoogleAnthropic等商业模型的API时,费用直接按输入和输出的词元总数计算。例如,GPT-4大约每1,000个词元收费0.03美元(价格会变)。一个英文字母通常算一个词元?不,通常是约3/4个单词对应1个词元,即100个词元约等于75个英文单词。中文字符通常1个字对应1-2个词元。
上下文长度限制:模型的“上下文窗口”(如8K128K1M词元)是指它能同时处理的最大词元数量,而不是字数或单词数。超出限制,模型就会“忘记”最早的信息。
性能与效率:词元化方式直接影响模型训练速度、推理速度以及内存占用。一个好的分词器能大大提升效率。
理解模型行为:当你看到模型输出奇怪的拼写错误或重复时(如“The the the”),往往是因为词元边界导致的。模型是在逐词元生成,而非逐字母思考。
如何计算词元数?
粗略估算:英文中,1个词元 ≈ 0.75个单词;中文中,1个汉字 ≈ 1.5~2个词元。
精确工具:各家平台都提供分词器工具。例如OpenAITokenizer页面,你可以粘贴文本实时查看词元数。
举个具体例子
句子:'ChatGPT is amazing!'
常见词元化结果:['Chat', 'G', 'PT', ' is', ' amazing', '!'] (注意:空格常被包含在后续词元的开头,以便模型理解词边界)
统计:这6个词元对应了3个单词和1个标点。
总而言之,词元是AI模型理解世界的语言积木。虽然对人类阅读不自然,但对模型而言,它是计算、计费和性能的基本单位。理解词元,有助于更有效地使用和调试大语言模型。

我的更多文章

下载客户端阅读体验更佳

APP专享