20260414_分词器
token是LLM的基本输入单位由分词器根据统计规则把文本拆成的子词、字符或字节再映射成数字ID。可拆分成四步准备语料初始化基础单元可省略统计并迭代合并输出产物并用于编码、解码训练分词器准备语料应收集覆盖目标应用场景的多样化文本以确保泛化能力必须对原始文本进行清洗与标准化去除或屏蔽无关元数据、修正或删除乱码与非法字符、统一编码味UTF-8对重复或近重复样本进行去重以减少训练偏移敏感信息需要脱敏处理与合规检查混合语料场景中需要评估占比决定是否需要对低资源语言进行过采样或定向保留避免词表被高频语言主导。保留一小部分未参与训练的验证语料初始化基础单元常见策略包括基于空格和标点的切分、按Unicode类别划分或直接采用字节级切分。但不是所有的分词器都需要显式地进行预分词对于大多数用空格做分隔的语言可以用正则表达式按单词边界和标点进行初步切割对中日等语言可以用逐字符或基于字的初始但原来保证覆盖性预分词生成的基础单元序列将作为后续统计合并的输入务必保存该序列与对应位置信息以便在训练过程反复高效更新。统计并迭代合并分词算法要解决的问题“你好”要拆成“你”和“好”还是合并成一个词“你好”。粒度太细拆得太碎“今天天气很好” → [“今”, “天”, “天”, “气”, “很”, “好”]✅ 优点能处理任何词不会有未知词❌ 缺点序列太长模型要学很多token之间的组合关系粒度太粗合并得太大“今天天气很好” → [“今天天气很好”]一个词✅ 优点序列很短❌ 缺点遇到今天天气不好就变成新词词表爆炸理想的粒度BPE等算法追求的“今天天气很好” → [“今天”, “天气”, “很”, “好”]✅ 优点“今天”、天气是常见词可以复用“很”、好是基础字可以灵活组合序列长度适中算法选择标准exampleBPE拼最常出现的“机器学习中机”、“器经常一起出现先拼成机器”WordPiece看看拼了有没有收益拼了机器后让机器学习出现的概率是否显著提升UnigramLM淘汰最差的100个候选拼法中淘汰掉老出现的单个字SentencePiecer空格也是字符不管中文英文都按规则处理空格也是一种符号vocab文件记录所有token及其对应的id是编码器和解码器的核心索引。merges文件按顺序记录所有子词合并规则或概率模型。二者共同决定tokenizer的编码与解码逻辑并确保编码的可逆。如果后续需要扩表如加入新领域术语、专业词或品牌名等建议优先采用这些方式而非完全重训tokenizer增量训练、加入新的merges项、清理极低频token。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2519406.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!