面试被问到词元(Token)相关问题怎么答?整理了几道高频题

最近面AI岗,好几轮面试都被问到词元(Token)相关的问题。有些答得不太好,来社区请教一下正确答案。

被问过的问题:

  1. 什么是词元化(Tokenization)?常见的分词算法有哪些?
  2. 为什么中文消耗的词元比英文多?
  3. 大模型的上下文窗口和词元的关系?
  4. 怎么优化词元消耗?

有面过类似问题的老哥吗?来分享分享经验。

1 个赞

这些都是AI岗高频题,我来逐个回答:

1. 词元化(Tokenization)和分词算法

词元化是把原始文本切分成模型能处理的最小单元(词元)的过程。主流算法有三种:

  • BPE (Byte Pair Encoding):GPT系列用的。原理是从单字符开始,不断合并出现频率最高的相邻字符对,直到词表达到预定大小。优点是能处理未见过的词(OOV问题)。
  • WordPiece:BERT用的。和BPE类似,但合并标准是最大化语言模型似然,而不是简单的频率计数。
  • SentencePiece:把空格也当作普通字符处理,不依赖预分词,对中日韩等不用空格分隔的语言更友好。

面试时说清楚BPE的原理+举例,基本就能拿到这题的分数。

2. 中文为什么消耗词元多

根本原因是主流模型的分词器在英文语料上训练得更多。英文常见单词(如"the"、“hello”)被编码为1个词元,而中文字在词表中的覆盖率低,经常被拆成多个字节级别的词元。

国产模型(如Deepseek、通义千问)因为训练语料中中文占比高,分词器对中文优化了,中文词元效率会好很多。

3. 上下文窗口和词元的关系

上下文窗口就是模型一次能"看到"的最大词元数。比如128K词元的窗口,意味着输入+输出总共不能超过12.8万个词元。超出的部分会被截断。

这直接影响模型的"记忆力"——窗口越大,能处理的文档越长,多轮对话能记住更多历史。但窗口越大计算量越大,延迟和成本也越高。

4. 优化词元消耗

  • 提示词层面:精简指令、减少冗余描述、用英文写System Prompt
  • 架构层面:RAG(检索增强生成)只传入相关片段而非全量文档
  • 对话管理:定期总结历史对话、滑动窗口策略
  • 模型选择:简单任务用小模型,复杂任务才用大模型

面试时能从工程实践角度谈优化策略,会加分很多。

1 个赞

面试八股文又多了一章,AI时代真卷

补充一个我被追问的问题:面试官问"BPE和WordPiece的本质区别"。关键区别是合并策略不同——BPE选频率最高的pair,WordPiece选合并后语言模型损失最小的pair。被追问的时候能说出这个基本就过了。

分享一个面试小技巧:当面试官问词元相关的问题时,你可以主动提到"不同模型的词元化策略不同,所以同一段文本在不同模型里的词元数是不一样的"。这个知识点很多候选人不知道,说出来会让面试官觉得你理解得比较深。

一楼太详细了,整理到笔记里了。BPE和WordPiece那个追问确实容易被问到,下次面试心里有底了。谢谢各位!

第二题我面试的时候也被问到了