AI入门学习--理解token
token(令牌) 是指对文本进行分割后得到的最小处理单位,是机器理解人类语言的基础。它的核心作用是将连续的文本转换为机器可处理的离散单元。
1. token 是什么?
简单来说,token 是文本的 “基本组成块”。根据语言和分词方式的不同,token 可以是:
- 英文中:通常是单词(如 “apple”)、词根(如 “un-”“happy”)或标点(如 “!”)。
- 中文中:通常是单字(如 “我”“们”)或词语(如 “人工智能”)。
- 特殊符号:如数字(“123”)、表情符号(“😊”)、网址片段等,也会被视为独立 token。
例如,对句子 “我爱人工智能!” 进行分词后,可能得到的 token 是:["我", "爱", "人工智能", "!"]
。
2. token 的核心作用
(1)将文本转换为机器可理解的形式
机器无法直接处理原始文本(字符串),必须将其转换为数字。token 是这一转换的 “中间桥梁”:
- 第一步:将文本分割为 token(分词)。
- 第二步:为每个 token 分配一个唯一的数字 ID(如 “我”→100,“爱”→203)。
- 第三步:通过 ID 将文本转换为数字序列,供模型计算(如 “我爱”→[100, 203])。
(2)帮助模型捕捉语言规律
token 的划分方式直接影响模型对语言的理解:
- 合理的分词(如将 “人工智能” 作为一个 token)能让模型更快学习到词语的整体含义。
- 细分的 token(如将 “unhappy” 拆分为 “un-”“happy”)有助于模型捕捉词根、词缀等语言规律。
(3)控制模型输入长度
几乎所有 NLP 模型(如 BERT、GPT)对输入长度都有限制(通常以 token 数量为单位)。例如:
- GPT-3.5 支持最多 4096 个 token。
- BERT-base 支持最多 512 个 token。
超过限制的文本需要截断或拆分,因此 token 是控制输入规模的关键指标。
3. 常见的 tokenization(分词)方式
不同模型采用的分词策略不同,常见的有:
- 按空格 / 标点分割:最简单的方式(如英文默认按空格分词),但会将 “don't” 拆分为 “don”“'t”,不够合理。
- 词表分词(Word-based):基于预定义词表分割,如将 “apple” 作为一个 token,但无法处理未登录词(如新词、拼写错误)。
- 子词分词(Subword):主流模型(如 BERT、GPT)的选择,结合了词和字符的优势:
- 将罕见词拆分为常见子词(如 “unhappiness”→“un”“happiness”)。
- 既保证对常见词的完整表示,又能处理生僻词,平衡了词汇量和泛化能力。
- 中文分词:由于中文无空格,需用专门工具(如 jieba、THULAC)按语义分割(如 “北京大学”→“北京”“大学” 而非单字)。
4. 为什么需要关注 token?
- API 计费:许多 AI 服务(如 OpenAI API)按 token 数量收费,输入和输出的 token 都会被计算。
- 模型性能:不合理的 token 划分会导致模型理解偏差(如将 “武汉市” 拆分为 “武汉”“市” 可能影响地名识别)。
- 长文本处理:超过模型 token 限制的文本需要特殊处理(如分段输入),否则会丢失信息。