Skip to content

Token 与 Embedding 专项面试题

目录

1. 使用说明

  • 对应知识主题Token 与 Embedding
  • 角色:资深面试官从文本离散化追问到检索索引迁移,高级技术应聘者负责给出张量、版本和工程边界;
  • 回答顺序:先用 1~3 句专业短答,再用生活化解释;涉及向量时必须区分 Token Embedding、Hidden State 和 Sentence Embedding;

事实红线| Token 数、最大长度和 Tokenizer 行为必须以目标模型实际配置为准,不能用字符数猜测;

  • 题目数量:7 题,严格覆盖 L1~L7。

阅读图例| L1~L2 概念与边界 · L3~L4 原理与实现 · L5 工程 · L6 架构 · L7 项目复盘

答案层级| 必答结论 · 小白解释 · 加分项 · 高频误区 · 下一问

2. 递进路线

图:Token 与 Embedding L1~L7 递进路线

替代文本: L1 Token/Tokenizer/Embedding 职责 → L2 子词方案边界 → L3 表示层次区别 → L4 input_ids 到模型输入 → L5 线上输入链路排障 → L6 模型/Tokenizer/索引版本契约 → L7 示例检索项目复盘。

图表加载中…

读图结论: 蓝色阶段建立概念与边界,紫色阶段进入原理与实现,橙色和青色阶段验证工程与架构能力,绿色阶段用项目证据完成复盘。

题链先建立文本到向量的基本过程,再追问张量与 Mask,随后进入截断、Padding 和版本漂移,最后用语义检索方案验证是否真正理解表示边界。

图:同一段文本从离散 ID 到三类向量表示的边界

替代文本: 原始文本先被 Tokenizer 切成 Token,再通过词表映射为整数 ID;ID 查 Embedding 矩阵得到上下文无关的 Token Embedding,经位置与同句上下文参与 Transformer 计算后成为上下文化 Hidden State,最后通过经过句向量目标训练的池化或投影得到可用于句级检索的 Sentence Embedding。

图表加载中…

读图结论: Token、ID、Token Embedding、Hidden State 和 Sentence Embedding 属于连续但不同的表示层次,不能因为它们都能写成数字或向量就混作同一个概念。

图中最关键的分界是“查表”和“经过 Transformer”:查表只按 ID 取静态初始向量,同一 Token 在不同句子中拿到同一行参数;上下文化表示则会随位置与周围内容变化。句向量是否适合检索还取决于池化、训练目标和任务评测,不能把任意 Hidden State 的平均值默认当成高质量 Sentence Embedding。

3. 一问一答

第 1 题|L1 概念|Token、Tokenizer、Vocabulary 和 Embedding 分别是什么?

核心考察点|LLM 输入链路的基本边界

面试官提问

请从一条原始文本进入模型的过程说明四者职责。

30 秒专业短答

Token 是 Tokenizer 规则下的离散符号,Tokenizer 负责文本与 Token/ID 的转换,Vocabulary 保存 Token 到整数 ID 的映射,Token Embedding 再从可训练矩阵中按 ID 查出连续向量。它们依次解决“怎么切、怎么编号、怎样进入神经网络计算”。

小白解释

像把一句话拆成积木块,每种积木在目录中有编号,再根据编号从仓库取出对应的数值卡片;拆分规则、编号表和数值卡片是三个不同环节。

  • 合格线| Token 不固定等于字或词;Tokenizer、词表、Embedding 分工正确;
  • 加分项| 指出位置表示发生在模型输入侧,不属于 Tokenizer;
  • 高频误区| 把 Token 当固定单词,或把 Tokenizer 说成直接生成语义向量;
  • 下一问| 知道四个对象后,继续解释为什么大模型通常使用子词而非整词或纯字符。

第 2 题|L2 边界|为什么常用子词 Tokenization,BPE 与 Unigram 有何不同?

核心考察点|子词算法直觉、词表与序列成本

面试官提问

请说明词表大小、未知词和序列长度之间的权衡,并补充生产编码何时可能不确定。

30 秒专业短答

整词词表容易过大且仍有生僻词,纯字符覆盖广但序列较长,子词在开放词表、参数量和序列长度之间折中。BPE 通过高频相邻符号合并学习规则,Unigram 从候选子词概率模型中选择切分;固定配置并关闭采样时生产编码通常确定,显式启用 Subword Sampling 或 BPE Dropout 时可以随机。

小白解释

整词像每个完整词都单独做一块印章,数量会爆炸;逐字符像每次只能盖一个字,句子变很长。子词保留常用词块,生僻词再拆开;有时训练会故意随机换拆法,像给学生看不同拼法增强适应性。

  • 合格线| 整词、字符、子词三方权衡;BPE 与 Unigram 训练思路不同;
  • 加分项| 联系词表参数 Vd 与标准 Attention 的序列长度平方项;
  • 高频误区| 声称子词完全消除未知输入,或说 Tokenizer 永远随机/永远确定;
  • 下一问| 文本能稳定切分后,还要区分不同层次的 Embedding 是否适合语义检索。

第 3 题|L3 原理|Token、Hidden State 和 Sentence Embedding 如何产生与比较?

核心考察点|表示层次与训练目标

面试官提问

为什么输入层 Token Embedding 不能直接作为句向量?请写出 Masked Mean 和余弦相似度。

30 秒专业短答

Token Embedding 是按 Token ID 查出的上下文无关初始向量;Hidden State 是经过模型后依赖上下文的位置表示;Sentence Embedding 可由选定 Hidden State 池化得到,生产检索模型通常还经过对比学习或检索目标训练。给定有效位掩码 m_t,Masked Mean 为 s=Σ_t m_t h_t / max(Σ_t m_t,1);对非零向量 u,v,余弦相似度为 uᵀv/(||u||·||v||)。直接平均输入 Token Embedding 或通用 Hidden State 只能作为待评测基线,不能预设适合语义检索。

小白解释

单个词的字典卡片只给基础含义,读完整句话后才知道它在这句话里的具体意思;做检索还要把整句话制作成一张经过专门训练的“主题名片”,不能把几张原始字典卡直接当成这张名片。

  • 合格线| 三类表示的粒度、上下文依赖和用途不同,Masked Pooling 排除 Padding,余弦比较方向而非长度;
  • 加分项| 处理全 Padding 与零向量边界,并用标注集评估 Recall@k 等指标;
  • 高频误区| 认为任何 Embedding 都天然表示句义,或维度越高检索一定越准;
  • 下一问| 表示层次明确后,落到 input_ids、位置和 Mask 的具体张量流。

第 4 题|L4 实现|input_ids 如何变成 Transformer 输入?

核心考察点|ID、Embedding、位置和 Mask 的张量形状

面试官提问

给定批大小 B、序列长度 n、词表大小 V 和隐藏维度 d,请说明查表、位置、Padding 与 Mask 的形状。

30 秒专业短答

input_ids∈{0,…,V-1}^{B×n}E∈R^{V×d} 查表得到 X∈R^{B×n×d},再按模型架构加入或融合位置表示;attention_mask 通常是 [B,n],用于阻止 Padding 进入有效注意力或池化。Embedding 参数量为 Vd,ID 必须为整数且与词表、特殊 Token 和模型权重版本一致。

小白解释

一批句子先被补齐成同样长度的编号表,再按每个编号取一张 d 维卡片,并标上每块积木的位置;Mask 像遮罩,告诉模型哪些格子只是为了对齐而补的空位。

  • 合格线| [B,n] × [V,d] 查表语义、输出 [B,n,d]、位置与 Mask 作用正确;
  • 加分项| 说明查表与 One-hot 乘矩阵数学等价但无需构造稠密 One-hot,并补充可选 Weight Tying;
  • 高频误区| 把位置编码当 Tokenizer 输出,池化时计入 Padding,或把 Token Embedding 等同 Sentence Embedding;
  • 下一问| 张量链路正确仍可能因截断、Unicode、特殊 Token 或 Padding 产生静默质量问题。

第 5 题|L5 工程|线上输入或召回质量突然下降,如何排查 Tokenizer 链路?

核心考察点|输入链路的版本、截断和不变性测试

面试官提问

请给出从版本到固定样本的诊断顺序,并覆盖长文本与 Padding。

30 秒专业短答

我会先锁定模型、Tokenizer、词表、特殊 Token、规范化与索引版本,重放固定文本比较 Token ID、原长度、截断方向、Mask 和最终向量,再按语言、字符类型和长度观察分布。若同一文本随 Padding 长度变化,应检查池化是否正确应用 attention_mask;若 ID 一致,再转查 Embedding、池化、归一化和索引。

小白解释

翻译结果突然变差时,先确认是否换了字典、编号或删掉了句尾,再用同一句标准样本逐步比对;如果只是为了排版加了空格却改变意思,说明程序把空白当成了真实内容。

  • 合格线| 固定样本比 ID、长度、特殊 Token、截断、Mask 与向量;
  • 加分项| 加入 Unicode 组合字符、全半角、Emoji、空输入、超长输入和多种 Padding 长度回归;
  • 高频误区| 直接调大 Top-k 掩盖编码错误,或只看服务是否报异常;
  • 下一问| 要防止再次发生,需要把 Tokenizer、模型与检索索引定义成不可拆分的版本契约。

第 6 题|L6 架构|Tokenizer、模型和向量索引如何共同版本化?

核心考察点|制品契约、索引迁移、灰度与回滚

面试官提问

如果升级 Embedding 模型,怎样避免新旧向量空间混用并实现安全切换?

30 秒专业短答

发布契约应绑定 model_id、Tokenizer/词表与规范化配置哈希、维度、池化、归一化、最大长度和索引版本;新模型必须构建独立索引,用同一标注集验证后双路/灰度切流,并保留原子回退。查询编码只允许访问兼容索引,不能把新旧向量增量混写到同一空间。

小白解释

换了一套地图坐标系,就必须重画整张地图;不能让一半地点用旧经纬度、一半用新经纬度。先在备用地图上校验,再整体切换,出问题还能切回旧图。

  • 合格线| 模型/Tokenizer/池化/归一化/维度/索引共同版本化,独立重建与原子切换;
  • 加分项| 内容哈希去重、双写验证、固定查询集、跨版本拒绝加载和引用当前文档版本;
  • 高频误区| 只改模型名、混写新旧向量,或认为相同维度就代表同一向量空间;
  • 下一问| 最后用源文档的技术文档检索示例说明方案和未验证边界。

第 7 题|L7 项目复盘|如何设计内部技术文档语义检索?

核心考察点|表示选择、索引契约、异常测试和证据纪律

面试官提问

请从切块、编码、索引、权限、测试和迁移说明;当前能否声称实际效果?

30 秒专业短答

这是源文档中的示例项目:文档侧保留 ID、版本、章节、租户与 ACL 元数据,使用目标 Embedding 模型的固定 Tokenizer 控制长度并按语义边界切块,再以固定池化和归一化建立版本化索引。检索必须在候选内容进入重排模型、LLM 或响应前执行服务端权限约束;硬租户边界优先采用独立索引或检索前过滤,避免仅在最终结果后置过滤造成泄漏或召回饥饿。查询侧使用同一编码契约并返回原文引用;仓库没有实际索引和评测结果,因此不能声称 Recall、延迟或业务收益。

小白解释

先把技术手册按章节做成带版本和权限的卡片,再用同一套“主题坐标”给卡片和问题定位;找到后还要返回原页供核对。现在只有施工方案,没有真实检索成绩单。

  • 合格线| 专门句向量、真实 Token 预算、服务端 ACL、版本索引与引用;
  • 加分项| 按语言/文档类型切片评测,覆盖删除、截断、异常字符、索引切换和敏感文本处理;
  • 高频误区| 使用输入层 Token Embedding 直接上线检索,或编造效果数字;
  • 下一问| 本组题结束;后续应通过 Padding 不变性和新旧索引迁移实验验证掌握。

4. 自测与评分

  • [ ] 打印一批文本的 input_ids、Mask 和 [B,n,d] 输出形状;
  • [ ] 用同一短句比较不同 Padding 长度下的 Masked Pooling 结果;
  • [ ] 分别解释 Token Embedding、Hidden State 和 Sentence Embedding;
  • [ ] 为 Embedding 模型升级写一份版本清单与回滚步骤;
  • [ ] 按准确性、原理深度、工程意识、项目表达、沟通结构各 0~5 分评分;
  • [ ] 第 7 题不得虚构检索指标或把示例说成上线项目。

5. 事实边界与参考资料

  • 单一事实源:Token 与 Embedding
  • 源文档依据包括 BPE、SentencePiece、Transformer 原始论文,以及 PyTorch Embedding、Hugging Face Tokenizer 和 SentencePiece 官方资料;
  • 具体 Token 数、最大长度、特殊 Token、采样与规范化行为必须以目标 Tokenizer 版本实测;

当前无法确认| 示例检索系统的模型、索引、数据规模、Recall、延迟、成本和线上效果。

6. 总结

一句话记忆: Tokenizer 把开放文本变成版本化 ID,Embedding 把 ID 变成向量,而 Mask、位置和索引契约决定链路是否可信。

  • 子词在词表大小、覆盖和序列长度之间折中;
  • [B,n] 的 ID 经 [V,d] 查表得到 [B,n,d]
  • Token Embedding、Hidden State 和 Sentence Embedding 不能混为一谈;
  • 截断、Padding、Unicode 和特殊 Token 都需要回归测试;
  • 模型升级必须连同 Tokenizer、池化、归一化和索引一起迁移。