外观
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、池化、归一化和索引一起迁移。