Skip to content

zhaoyukoon/damoxing_fenci_gongji

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

注意分词!分词影响大模型的初步发现

文章

大模型中分词使用的是数据驱动的BPE,数据集分布对词表有很大的影响。本项目分析各个大模型的词表语言和词汇长度分布。

markdown简约版(新)

原始完整版(旧)

下面是各个大模型词表中英文和中文词汇数量统计,具体参考(大模型词汇语言分布分析报告):

Language Llama-3.3-70B-Instruct MiniCPM3-4B MiniMax-Text-01 Mistral-7B-Instruct-v0.3 Phi-3.5-mini-instruct deepseek_v3 gemma-2-9b-it glm-4-9b-chat gpt-4o internlm3-8b-instruct qwen2.5-72b telechat-7B
chinese 4265 28322 38420 1459 700 35184 21762 28478 7449 10364 24966 29919
pure_english 28158 15832 33489 10612 10204 21994 72065 29915 37839 23291 27376 28863
Total 128000 73440 200000 32768 32000 128000 256000 150252 200000 128569 151643 160135

记录

2025/01/17: 增加了 360Zhinao2-7B-Chat-4K,词表一共157333,中规中矩。中文词表数量46093,迄今为止最大。最长词汇转载此文是出于传递更多信息之目的经相关部门批准后方可开展经营活动

2025/01/17: 增加了 Mistral-7B-Instruct-v0.3,词表一共32768,和Phi-3.5-mini-instruct一样精简。中文1459,除了3个两字词之外都是汉字。英文最长单词ancellationToken。包括阿拉伯语、希伯来语、韩语、日语在内的其他语言也是类似处理策略。 另外 controls(词中包含\t或者\n)只有一个,词表很干净!

2025/01/17: 增加了 telechat-7B ,中文词表数量29919,最长词请安装Unicode擴展字形档見:附录:漢語詞彙索引/,有大量繁体中文数据。

2025/01/17: 增加了Gemma-2-9b-it ,词表巨大,一共有256000单词。中文词表数量256000,最长的是点击下一页继续阅读,还有繁体词汇請繼續往下閱讀

2025/01/17: 增加了Llama-3.3-70B-Instruct 中规中矩,中文词表数量4265,最长是生命周期函数,英文最长词 latesAutoresizingMaskIntoConstraints

2025/01/17: 增加了微软的Phi-3.5-mini-instruct ,相比与其他家动辄12万甚至20万,词表很特别,一共只有32000。其中中文单词只有700,都是汉字。包括阿拉伯语、希伯来语、韩语、日语在内的其他语言也是类似处理策略。 另外 controls(词中包含\t或者\n)只有一个,词表很干净!

2025/01/17: 增加了glm-4-9b-chat , 词表中规中矩,其中中文词数量高达28478,最长的词是 词条初始信息均引自国家企业信用信息公示系统

2025/01/16: 发现几篇很好讲BPE的博客 how-to-train-tokenizer 如何训练模型分词器:BPE、WordPiece、ULM、SentencePiece

2025/01/16: 分析了今天刚刚发布的MiniMax-Text01,中文词汇以2个和3个字为主,有非常多的长词。原始词表38421,重新分词后 23473。 另外,词表有大量日文词,最长的是日以上更新していないブログに表示しています

2025/01/15: 分析了今天刚刚发布的internlm3-8b-instruct,中文词汇以1个和2个字为主,和本文期望一致,不提交issue。原始词表有 10364 中文词,重新 分词去重之后有7901。

2025/01/14: 给MiniCPM提交了issue OpenBMB/MiniCPM#276

2025/01/14: 发现 tokenizer-attack,利用BPE分词器的合并规则列表和每个类别的示例数据,推断出训练数据中各类别的比例。和本项目关注问题切入点非常相关。两个工作异同分析如下:

  1. 相同 都是关注BPE分词对大模型影响;
  2. 相同 都建议谨慎使用BPE tokenizer;
  3. 差异 tokenizer-attack解决如何根据BPE词表反向推到出大模型定量的数据分布,揭示模型训练数据中的一些未公开信息;本项目出发是思考分词准确率对大模型结果的影响,动机和方法都不同,虽然最后一个阶段分析数据来源是殊途同归。

2015/01/14: 给Deepseek和Qwen分别提交新的issues QwenLM/Qwen2.5#1161 deepseek-ai/DeepSeek-V3#273

2015/01/14: 给OpenAI提交issue openai/tiktoken#368

Issue

我分别给Qwen、Deepseek和OpenAI提交了issues:

  1. Qwen: QwenLM/Qwen2.5#1159 QwenLM/Qwen2.5#1161 , 都得到回复,被close;
  2. Deepseek: deepseek-ai/DeepSeek-V3#263 deepseek-ai/DeepSeek-V3#273 两个都尚未回复;
  3. OpenAI: openai/tiktoken#368 尚未回复;
  4. MiniCPM: OpenBMB/MiniCPM#276 尚未回复;

提示词

prompts.json中包含论文中使用的提示词。其中包含了提示词、模型、调用途径、结果是否符合预期。

分词展示

llm_segment.py是对qwen、qwen2.5-72b-instruct、deepseek_v3三个大模型,给定中文输出给出分词结果。其中qwen2.5-72b-instruct、deepseek_v3的词表是unicode形式展示字节,因此会将其转化成bytes再用utf-8编码就可以正常输出。由于模型文件都是从huggingface直接加载,因此使用前需要先翻墙。

词表读入

vocab_convert.py,读入tokener.json处理为vocab_extend.jsonvocab_extend.tsv脚本,并生成全部词表和汉字词表长度分布。使用方法:

python vocab_convert.py -tok_path deepseek_v3/qwen2.5-72b/both

Deepseek_v3

目录中包含如下:

  1. tokener.json,来自 DeepSeek-V3/tokenizer.json
  2. tokenizer_config.json,词表配置,来自DeepSeek-V3/tokenizer_config.json。暂时未使用,据此可以判断出是基于LlamaTokenizerFast;
  3. vocab_extend.json,基于tokener.json中的vocab字段将其中unicode形式转化成可读的utf-8字符串,其中包含(原始词汇、utf-8词汇、utf-8词汇长度、是否是中文)四个字段;
  4. vocab_extend.tsv,以tsv格式展示vocab_extend.json内容,并以utf-8词汇长度顺序排序。

Qwen2.5-72b

目录中包含如下:

  1. tokener.json,来自 Qwen2.5-72B-Instruct/tokenizer.json
  2. tokenizer_config.json,词表配置,来自 Qwen2.5-72B-Instruct/tokenizer_json.json。暂时未使用,据此可以判断出是基于Qwen2Tokenizer;
  3. vocab_extend.json,和deepseek_v3目录中相同格式;
  4. vocab_extend.tsv,和deepseek_v3目录中相同格式;

如果您觉得本论文对您研究工作有贡献,请引用:

{
  "author": "赵迎功",
  "title": "注意意分词!分词影响大模型的初初步发现",
  "url": "https://github.com/zhaoyukoon/damoxing_fenci_gongji"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages