【AI面试秘籍】| 第24期:Transformers / LLM的词表应该选多大?

article/2025/8/23 19:24:13

在构建和训练Transformers以及大型语言模型 (LLM) 时,词表 (Vocabulary) 大小的选择是一个至关重要且常常令人困惑的问题。它不仅直接影响模型的性能,还关系到模型的计算效率内存占用。那么,当面试官抛出这个问题时,我们应该如何专业且全面地回答呢?

1. 理解词表的本质及其重要性 🎯

首先,我们需要明确词表是什么。简单来说,词表是模型能够理解和处理的最小语言单元 (token) 的集合。这些单元可以是字 (character)词 (word),或者更常见的子词 (subword),例如通过 Byte Pair Encoding (BPE) 或 WordPiece 等算法构建的单元。

词表的大小直接决定了以下几个方面:

  • 模型覆盖率:一个更大的词表可以覆盖更多的词汇,从而减少未登录词 (Out-of-Vocabulary, OOV) 的出现。OOV问题会导致模型无法准确理解输入文本的含义。
  • 模型参数量:词表大小是模型输入层和输出层(尤其是softmax层)参数量的主要决定因素之一。词表越大,这两层的参数矩阵就越大,进而增加模型的整体大小和内存需求。
  • 计算复杂度:尤其是在输出层进行softmax计算时,词表大小直接影响计算的复杂度。更大的词表意味着更昂贵的计算。
  • 表示的粒度:基于字的词表粒度最细,但序列长度会很长;基于词的词表粒度较大,但容易出现OOV;子词则在两者之间取得了较好的平衡。

2. 词表大小选择的权衡因素 ⚖️

选择合适的词表大小需要在多个因素之间进行权衡:

  • 任务和语料特性

    • 通用领域 vs. 特定领域:通用领域的模型(如GPT系列)通常需要更大的词表来覆盖广泛的语言现象。而特定领域的模型(如医学、法律领域的LLM)可以适当缩小词表,专注于领域内的专业词汇,甚至可以考虑是否需要重新构建词表。
    • 语言特性:对于形态丰富的语言(如德语、俄语),词的变化形式多样,使用子词或更大的词表可能更有优势。对于中文这类以字为基本单位的语言,可以考虑基于字的词表或较小规模的子词词表。
    • 语料库大小:训练语料库的大小也会影响词表的选择。如果语料库较小,过大的词表可能导致很多词的词频过低,无法得到充分训练。
  • 模型性能与OOV

    • 理论上,词表越大,OOV问题越少,模型对生僻词的理解能力越强。然而,当词表大到一定程度后,新增词汇带来的性能提升可能会边际递减。
    • 对于非常罕见的词,即使加入词表,由于其在训练数据中出现的次数过少,模型也难以学习到其准确的语义表示。
  • 计算资源与效率

    • 更大的词表意味着更大的模型体积,需要更多的显存 (VRAM) 进行训练和推理。
    • Softmax层的计算量与词表大小成正比,尤其是在训练过程中,这会显著影响训练速度。
    • 虽然有一些技术如分层softmax (Hierarchical Softmax)采样softmax (Sampled Softmax) 可以缓解大词表带来的计算压力,但它们也可能引入额外的复杂性或近似误差。
  • 子词切分算法的影响

    • BPE, WordPiece, SentencePiece 等子词算法本身就会影响最终词表的大小和构成。这些算法的目标是在固定的词表大小下,尽可能高效地表示文本,并减少OOV。
    • 在选择词表大小时,通常会先运行这些子词切分算法,并观察在不同词表规模下,文本被切分的情况以及OOV的比例。

3. 业界常见实践与经验法则 💡

虽然没有一个“放之四海而皆准”的完美词表大小,但我们可以参考一些业界的实践和经验:

  • 常见范围:对于大多数基于子词的LLM,词表大小通常在 30,000 到 100,000+ 之间。

    • 例如,早期的BERT模型词表大小约为30,000 (英文) 和 21,128 (中文)。
    • GPT系列模型的词表大小有所不同,GPT-2约为50,257,GPT-3及其后续模型也大致在这个量级或略有增加,通常会包含一些特殊token。
    • 多语言模型(如XLM-R)通常拥有更大的词表,例如250,000,以覆盖多种语言的字符和子词。
  • 经验法则

    • 覆盖率与词频:一个常见的做法是,选择一个能覆盖训练语料中99%~99.9% 词汇(按词频计算)的词表大小。过于稀有的词即使加入词表,学习效果也有限。
    • Token长度与信息密度:理想的词表应该使得平均每个词被切分成的token数量不宜过多(例如,平均每个词1.x个token),以保证信息密度和处理效率。
    • 可对齐性 (Alignability):对于需要跨语言或跨模态对齐的任务,词表的选择需要考虑不同语言或模态单元之间的对应关系。
  • 实验与调优

    • 在实际项目中,通常会根据具体任务和数据,尝试几种不同大小的词表进行实验,评估它们在验证集上的性能表现(如困惑度Perplexity、下游任务指标)以及训练效率。
    • 可以先从一个相对较小且常用的词表大小开始(如32k或50k),然后根据实验结果和资源限制进行调整。

4. 如何向面试官展示你的思考深度 👨‍💻

当面试官问及词表大小时,除了给出一些常见的数字范围,更重要的是展现你对此问题的深入思考:

  1. 定义先行:清晰地解释什么是词表及其在模型中的作用。
  2. 阐述权衡:详细说明选择词表大小时需要考虑的各项因素(任务、语料、性能、资源等)以及它们之间的相互制约关系。
  3. 列举实践:提及一些主流模型的词表大小作为参考,并解释其背后的可能原因。
  4. 强调方法:说明在实际工作中,你会如何通过实验和分析(如OOV率、token长度、模型性能)来确定一个合适的词表大小。
  5. 考虑未来/高级话题 (加分项)
    • 可以提及词表扩展 (Vocabulary Expansion) 的技术,即在预训练模型的基础上,如何为特定领域或新语言增加词汇。
    • 讨论无词表模型 (Vocab-free Models)基于字节的模型 (Byte-level Models) 的概念,它们旨在完全消除OOV问题,但可能面临序列更长、计算效率更低等挑战。例如,ByT5、CANINE。
    • 提及一些优化大词表softmax计算的技术。

5. 总结与建议 ✍️

选择合适的词表大小是一个经验与实验相结合的过程。理解其背后的原理和权衡是关键。

  • 不要追求绝对的最优,而是追求最适合当前任务、数据和资源的方案。
  • 从小处着手,逐步迭代:如果时间和资源允许,可以从一个标准大小开始,然后进行增减实验。
  • 关注子词切分的效果:确保子词切分算法能够有效地表示文本,减少不必要的切分。


想学习AI更多干货可查看往期内容

  • 【AI面试秘籍】| 第7期:多轮对话如何实现长期记忆?高频考点解析+代码实战-CSDN博客
  • 💡大模型中转API推荐

技术交流:欢迎在评论区共同探讨!更多内容可查看本专栏文章,有用的话记得点赞收藏噜!


http://www.hkcw.cn/article/GafwiLBkMj.shtml

相关文章

一文清晰理解目标检测指标计算

一、核心概念 1.交并比IoU 预测边界框与真实边界框区域的重叠比,取值范围为[0,1] 设预测边界框为,真实边界框为 公式: IoU计算为两个边界框交集面积与并集面积之比,图示如下 IoU值越高,表示预测边界框与真实边界框的对…

一文讲懂fork函数(c语言linux)

c语言的fork函数是拿来创建子进程的, 进程 pcb(process control block) 代码和数据 子进程中的代码和数据与父进程的一致(共享父进程的代码和数据),没有自己的代码和数据. 如果父进程或者子进程要修改数据,操作系统就会把要修改的数据拷贝一份新的,让目标进程修改这份拷贝…

LVDS系列14:Xilinx Ultrascale系可编程输入延迟(四)

本节讲解Ultrascale IDELAYE3的TIME模式仿真;  TIME模式下参数和时序: 必须例化IDELAYCTRL,IDELAYCTRL时钟频率与REFCLK_FREQUEMCY参数相同; 有温度电压补偿,EN_VTC在修改抽头值时拉低,修改完毕后拉高&a…

RTX腾讯通停服后,有哪些兼容Linux及移动端的升级途径?

一、RTX腾讯通停服后的核心挑战 1.国产系统与移动端适配中断 RTX腾讯通停更后无法适配统信UOS、银河麒麟等国产操作系统,原有Windows版本在Linux内核环境下运行异常,且缺乏Android、iOS移动端支持,阻碍跨平台协作。 2.大规模组织架构同步失…

美团启动618大促,线上消费节被即时零售传导到线下了?

首先,从市场推广与消费者吸引的角度来看,美团通过联合众多品牌开展大规模促销活动,并发放高额优惠券包,旨在吸引更多消费者参与购物。这种策略有助于提高平台的活跃度和交易量,同时也能够增强用户粘性。对于消费者而言…

TDengine 运维——巡检工具(安装前预配置)

背景 TDengine 的安装部署对环境系统有一定的依赖和要求,安装部署前需要进行环境预配置操作,本文档旨在说明安装前预配置工具在安装 TDengine 前对环境的预配置内容和工具的使用方法。 预配置工具使用方法 工具支持通过 help 参数查看支持的语法 Usa…

收集飞花令碎片——C语言(数组+函数)

C语言的函数(Function)是程序的基本构建块,用于封装一段可重用的代码,完成特定任务。函数可以提高代码的模块化、可读性和复用性。 目录 函数库函数标准库头文件自定义函数(1)基本语法(2&#x…

2013-2021年各省电子商务数据

2013-2021年各省电子商务数据 1、时间:2013-2021年 2、来源:国家统计局、各省年鉴 3、指标:统计年度、地区代码、地区名称、电子商务销售额 4、范围:31省 5、指标说明:电子商务销售额是指通过电子商务平台进行商品…

企业级开发的 “技术主权保卫战”:iVX 源码自主性实践指南

在数字化转型的浪潮中,技术主权已成为企业核心竞争力的关键组成部分。iVX 作为全栈可视化开发平台,通过源码自主性实践,为企业构建了从开发工具到行业落地的全栈解决方案,在安全架构、国产替代、合规优势三大领域实现了技术突破与…

Python-12(函数)

函数的主要功能是可以打包代码,最大程度的实现代码的重用,减少冗余代码,可以将不同功能的代码进行封装,从而降低结构的复杂度,提高代码的可读性。 创建和调用函数 使用def语句来定义函数。 def myFunc():print(&quo…

罗德里格斯公式动图演示

一. 罗德里格斯公式形式: R o t ( ω ^ , θ ) e [ ω ] ^ θ I s i n θ [ ω ^ ] ( 1 − c o s θ ) [ ω ^ ] 2 Rot(\hat{\bold{\omega}}, \theta)e^{\hat{\bold{[\omega]}}_{\times} \theta}\bold{I}sin\theta[\hat{\bold{\omega}}]_{\times}(1-cos\theta)[\hat{\bo…

多家医院回应药企向上百名医生行贿 调查正在进行中

近日,一则关于某药企被举报向四川多家医院上百名医生行贿的消息引发广泛关注。举报材料中提及了四川省内包括成都市、绵阳市、广安市在内的多个城市的37家医疗机构。达州市第一人民医院工作人员表示,举报信中提到的医生并不在院方员工名单中,且该院去年才成立,往年员工名单…

高密爆炸警钟长鸣:AI为化工安全戴上“智能护盾”

一、高密爆炸:一声巨响,撕开化工安全“伤疤” 2025年5月27日,山东高密友道化学有限公司的车间爆炸声,像一把利刃划破了化工行业的平静。剧烈的冲击波将车间夷为平地,黑色蘑菇云腾空而起,刺鼻的化学气味弥漫…

微软 Azure AI Foundry(国际版)十大重要更新

2025 年被广泛视为 “AI 智能体元年”。在过去半年,微软密集发布众多创新技术,构建起从基础设施层、开发工具层到场景应用层的完整技术矩阵,加速推动诸多具备自主决策能力的 “超级助理” 智能体落地,形成完整的 AI 赋能生态&…

撒贝宁在广东水陆两栖过端午,广东过端午到底有多嗨?

撒贝宁在广东水陆两栖过端午。“龙舟漂移”惊险刺激,荔枝让苏轼灵感迸发,还有机器人参与的赛博端午节……广东过端午到底有多嗨?撒贝宁近日现身佛山叠滘,沉浸式体验龙舟季活动。在蜿蜒狭窄的河道上,他勇敢挑战龙舟漂移,完成高难度C弯动作时,自信高呼粤语有各位大哥在这里…

【HarmonyOS 5】鸿蒙中的UIAbility详解(二)

【HarmonyOS 5】鸿蒙中的UIAbility详解(二) 一、前言 今天我们继续深入讲解UIAbility,根据下图可知,在鸿蒙中UIAbility继承于Ability,开发者无法直接继承Ability。只能使用其两个子类:UIAbility和Extensi…

滚珠导轨:电子制造“纳米级”精度的运动基石

在电子制造与半导体设备追求“微米级工艺、纳米级控制”的赛道上,滚珠导轨凭借高刚性、低摩擦与高洁净特性,成为精密运动系统的核心载体。从芯片封装到晶圆检测,其性能直接定义了设备生产的极限精度与可靠性。滚珠导轨在电子制造与半导体设备…

高端装备制造企业如何选择适配的项目管理系统提升项目执行效率?附选型案例

高端装备制造项目通常涉及多专业协同、长周期交付和高风险管控,因此系统需具备全生命周期管理能力。例如,北京奥博思公司出品的 PowerProject 项目管理系统就是一款非常适合制造企业使用的项目管理软件系统。 国内某大型半导体装备制造企业与奥博思软件达…

MS37549/MS37545三相无感正弦波 BLDC 驱动

产品简述 MS37549 和 MS37545 是无感三相直流电机预驱芯片,采用 正弦波驱动方式,具有低噪声及低震动的特点。 芯片通过一个速度控制脚来控制电机的速度。并且电源电压 可以低到 4V 来适应调整电机的转速。 MS37549 和 MS37545 采用 QFN16 …

TCP协议

有连接,可靠传输,面向字节流 16位源端口号 16位目的端口号 4位首部长度 报头的长度,报头中包含了“选项” optional >可选择的,0 - 15 ,4个字节,TCP 报头的最大长度是 60 字节 保留位(6位…