今天来聊一聊BERT和GPT的分词器,了解大模型的第一步:Tokenizer。Tokenizer(分词器)是大语言模型(如BERT和GPT)预处理文本的核心组件,其作用是将原始文本拆解为子词、单词或字符,同时保留语义和结构信息。 BERT的Tokenizer:基于WordPiece的子词分词ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin-right: 0px;margin-left: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin-right: 0px;margin-left: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin-right: 0px;margin-left: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin-right: 0px;margin-left: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"> BERT使用WordPiece算法生成子词(subword)单元,通过贪心算法迭代合并语料中高频出现的字符对,平衡词汇表大小与OOV(未登录词)问题。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">BERT将特殊标记预置在输入序列中,通过结构化标记引导模型理解任务目标与上下文边界。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans CN", sans-serif, "Apple Color Emoji", "Segoe UI Emoji";list-style: none;margin: 0px;scrollbar-width: none;font-weight: 600;color: rgb(6, 7, 31);font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(253, 253, 254);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">[CLS]:表示序列的起始位置,常用于分类任务。例如,Input 'my dog is cute. he likes playing' 分词为:'[CLS]'、'my'、'dog'、'is'、'cute'、'[SEP]'、'he'、'likes'、'play'、'##ing'(“##”表示子词延续)和'[SEP]'。忽略:WordPiece算法、贪心算法、OOV问题。关注:Token(词元)、Tokenizer(分词)、Subword(子词)、Tag(标记)ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.578px;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">三、存在问题:ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.578px;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">(1)中文适配性差BERT 原始 Tokenizer 依赖空格分词(如英文),对中文等无显式空格的语言需额外分词预处理。[CLS]、[SEP] 等特殊标记的语义和位置固定,难以适应动态任务需求(如可变长度的分类任务、多轮对话)。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;visibility: visible;box-sizing: border-box !important;overflow-wrap: break-word !important;">GPT的Tokenizer:基于BPE的子词分词GPT(尤其是GPT-2/3)使用BPE算法,通过合并高频字节对生成子词,与WordPiece不同,BPE更注重频率统计。同时GPT-2采用字节级BPE,支持多语言输入(如中文、代码)而无需额外预处理。关注:Token(词元)、Tokenizer(分词)、Subword(子词)三、BPE和WordPiece两者差异:(1)符号标记BPE:无特殊标记,直接合并高频子词(如happy)。WordPiece:依赖##标记后缀(如##ness),拆分规则更严格。BPE:通过字节级编码统一处理多语言(如pneu+monia)。WordPiece:需预分词(如中文按字拆分),跨语言泛化性弱。BPE:生成任务(GPT)、多语言混合、非规范文本WordPiece。WordPiece:理解任务(BERT)、短文本分类、精准语义解析。 |