当前位置: 首页 > ds >正文

大模型词表设计与作用解析

几乎所有大型语言模型(LLM)都有自己独立的词表(Vocabulary)。这是模型设计和训练过程中的核心组件之一。以下是关于词表的关键点:

1. 词表的作用

  • 分词基础:词表定义了模型如何将输入文本拆分成基本单元(如单词、子词、符号等)。
  • 数值化映射:每个词表中的单元对应一个唯一整数(Token ID),模型通过处理这些 ID 进行运算。
  • 模型容量:词表大小直接影响模型的参数量和处理效率。

2. 不同模型的词表差异

  • 语言差异
    • 中文模型(如 ChatGLM、Qwen)包含大量中文字符和常见中文词汇。
    • 多语言模型(如 mBART、NLLB)的词表可能覆盖数十种语言的字符。
  • 训练数据
    • 代码模型(如 CodeLlama)的词表包含编程语言关键词(if, def, {} 等)。
    • 专业领域模型可能包含生物/化学术语(如 AlphaFold 相关的蛋白质序列 token)。
  • 分词算法
    • BPE(Byte Pair Encoding):GPT 系列、RoBERTa。
    • WordPiece:BERT、DistilBERT。
    • Unigram:T5、XLM-R。
    • SentencePiece:LLaMA、Gemini(支持跨语言无空格分词)。

3. 典型模型的词表大小对比

模型词表大小特点
GPT-250,257英文为主,含常见符号
BERT30,522英文+WordPiece 子词
LLaMA 3128,256多语言优化,支持代码
Qwen-1.5152,064中英混合,覆盖数学/代码符号
Claude 3~200k强调多语言和长上下文支持

4. 为什么需要自定义词表?

  • 效率优化:避免对常见词(如英文的 the、中文的 )过度拆分。
  • 语言适配:中文/日文等非空格语言需要不同的分词策略。
  • 领域适配:医学/法律模型需保留专业术语的完整性(如 "冠状动脉" 不应被拆解)。
  • 生僻词处理:通过子词组合(如 "Deep" + "##seek" → "Deepseek")解决未登录词问题。

5. 词表如何影响模型行为?

  • 分词结果差异
    • 输入 "ChatGPT is amazing!"
      • GPT-2 可能拆为 ["Chat", "G", "PT", " is", " amazing", "!"]
      • LLaMA 可能拆为 ["Chat", "GPT", " is", " amazing", "!"]
  • 语言偏误:词表以英文为主时,中文/泰文等语言的效率会下降。
  • 信息损失:过小的词表可能导致专有名词被强制拆解(如 "Transformer" → "Trans" + "##former")。

6. 特殊 Token 示例

除了常见词汇,词表还包含功能性 Token:

  • [CLS][SEP] → BERT 用于句子分类/分隔
  • <|im_start|> → ChatML 格式中的对话开始标记
  • <0x04>(EOS)→ 句子结束符
  • → SentencePiece 表示空格

总结:

词表是每个大模型的身份证语言基因,决定了模型如何看待文本。不同模型因目标语言、领域和算法选择差异,会采用完全不同的词表设计。这也是同一段输入在不同模型中表现各异的原因之一!

http://www.xdnf.cn/news/15979.html

相关文章:

  • 开源安全大模型Foundation-Sec 8B的安全实践
  • Baumer工业相机堡盟工业相机如何通过YoloV8的深度学习模型实现螺母螺丝的分类检测(C#代码,UI界面版)
  • 【开源项目】基于RuoYi-Vue-Plus的开源进销存管理系统
  • 软件工程:需求分析
  • XSS内容总结
  • 建筑墙壁损伤缺陷分割数据集labelme格式7820张20类别
  • 从零到精通:用DataBinding解锁MVVM的开发魔法
  • 优先算法——专题十:哈希表
  • JAVA高级第六章 输入和输出处理(一)
  • 人工智能与心理史学:从阿西莫夫的科幻预言到可计算社会模型>
  • 车载通信架构 --- DoIP协议通信
  • Java多线程基础详解:从实现到线程安全
  • CS231n-2017 Lecture2图像分类笔记
  • Map集合
  • C++入门--lesson4
  • 嵌入式学习-PyTorch(9)-day25
  • HTTPHTTPSTLSDNSRSA
  • Python技术题2
  • 工程图矢量化 笔记 | potrace ezdxf svgpathtools | png转svg保存dxf用matplotlib画出来
  • 如何构建未来的人-AI-环境智能教育生态系统
  • 线性回归问题
  • xss的利用
  • 《YOLOv13魔术师专栏》全景指南:从理论到工业级实战
  • ICT测试原理之--什么是假短
  • JavaSE-接口
  • Android14 SystemUI 启动流程(2)
  • 笔试大题20分值(用两个栈实现队列)
  • Unity物理响应函数与触发器
  • C++类和对象(一)基础内容讲解
  • 2025暑假训练树状数组