子词分词器

我们了解了嵌入就是把字符转化为一组多维数字(向量),以方便语言模型更好的处理,及捕捉语言的结构与语义

但截至目前我们一直使用单个字符作为语言的基本构建块,这种方法有它的局限性:神经网络需要承担繁重的任务,它们需要理解一个字符序列(即单词)在彼此之间、以及与其他单词之间的关系。

如果不用字符而是直接为单词分配嵌入向量,让神经网络预测下一个单词会怎样呢?比如可以为每个单词(如“I”、“love”、“you”等)分配一个多维向量,然后将这些单词的向量输入神经网络,神经网络则负责预测下一个单词。这样会不会更好?

如果用“token”(相信你很熟悉这个词)来代表嵌入(即分配向量)的基本单位,那么之前模型使用单个字符作为token,现在我们则提出使用整个单词作为token。

让我们来细说这个问题。

一、从字符到词语的进化之路

先前的语言模型确实像牙牙学语的婴儿,以单个字符为单位学习。比如处理"cat"这个词,模型需要分别处理c、a、t三个字符的向量。这种方式看似简单,却让模型承担了过重的负担——它必须自行发现"c-a-t"组合起来代表猫,还要理解"c-a-t-s"中的s表示复数。

举个具体例子,当模型看到这两个句子时:

  1. The cat sat on the mat.

  2. The cats ate the fish.

如果用单个字符为单位处理,模型需要从零开始发现:

  • "cat"和"cats"共享前三个字符

  • "sat"和"ate"都包含"at"但含义不同

这种学习方式就像要求小学生通过笔画来理解文章主旨,效率极低。

现在尝试改用整词分词:为每个单词(如"cat"、“cats”)分配独立向量。这显然可以大大简化学习任务!但也带来了新问题——比如英语有超过18万个单词,中文常用字词也超过大几万。想象一个需要管理10万种"文字基因"的模型,光是存储这些向量就要消耗海量资源!

更糟糕的是,整词分词割裂了词语间的天然联系。就像"猫"和"猫咪"在中文里明明有关联,模型却要当作完全不同的两个词来学习。这时,一个精妙的解决方案应运而生——子词分词。

二、子词分词的魔法原理

子词分词的智慧,在于它像拼乐高一样拆解词语。比如:

  • “unhappy” → [“un”, “happy”]

  • “cats” → [“cat”, “s”]

  • “中文分词” → [“中”, “文”, “分”, “词”](注:实际处理会更智能)

这种拆解带来了三重优势:

1、共享零件,举一反三
当模型学会"happy"表示开心,“un"表示否定,它就能自动理解"unhappy”、“unfriendly"等系列词汇,而不需要逐个记忆。这就像掌握"氵"偏旁后,能猜出"江”“河”"湖"都和水有关。

2、 应对生僻词
遇到"ChatGPT"这种新造词时,子词分词可以将其拆解为[“Chat”,“G”,“P”,“T”],模型立即明白这与聊天程序相关。传统方法遇到新词就只能抓瞎。

3、 平衡效率与效果
主流子词分词器(如BERT用的WordPiece、GPT用的BPE)通常只保留3-5万个常用子词。对比整词分词的18万词库,存储量减少80%以上,却覆盖了更广泛的语言现象。

实际案例:
OpenAI的GPT-3使用BPE分词器后,即便面对网络俚语"LOLcats"也能游刃有余地拆解为[“LOL”,“cat”,“s”],既理解这是搞笑猫图,又保持语法正确性。

三、分词器的工程实践

一个优秀的分词器,就像语言模型的瑞士军刀,需要解决三大挑战:

1、 如何智能切割?
以"underground"为例,可能有多种切法:

  • [“under”,“ground”](在地下)

  • [“un”,“der”,“ground”](不接地)

分词器必须根据上下文选择正确拆分。这依赖统计学习:如果语料库中"under+ground"常一起出现,就优先保留这个组合。

2、 中文分词的特色
不同于英文的空格分隔,中文分词更具挑战。优秀的分词器要能区分:

  • “南京市长江大桥” → [“南京”,“市”,“长江”,“大桥”]

  • 而不是错误拆分为[“南京”,“市长”,“江大桥”]

3、 统一编码方案
现代分词器如SentencePiece采用统一编码:

  • 将文本转换为Unicode字符

  • 统计高频字符组合,逐步合并为子词

  • 最终形成包含单字、词语、词缀的混合词表

这个过程就像制作压缩包——保留高频模式,舍弃低频组合,在压缩率与信息完整性间找到最佳平衡。

当我们把嵌入(embeddings)和子词分词(subword tokenization)结合起来,一个模型大体上可能是下面这样的,相比之前的区别是:

输入输出向量不再以单个字符来匹配生成,也不是以完整的单词(word)为单位,而是以子词(subword)为单位,这里的“单位”也就是我们熟知的“Token”。

最后:

从结绳记事到甲骨刻字,人类一直在寻找记录语言的最佳方式。子词分词器延续了这个古老智慧,用数字时代的密码本重新诠释语言本质。当我们将"人工智能"拆解为[“人工”,“智能”]时,不仅为机器找到了理解语言的钥匙,也在提醒自己:最复杂的智慧,往往始于对基本元素的精妙组合。

理解了神经网络及语言模型的基础后,接下来的章节我们将开始涉及到那些让大语言模型(LLMs)具备如今这般强大能力的核心技术,敬请继续关注。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?老师啊,我自学没有方向怎么办?老师,这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!当然这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!
在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐