当前位置: 首页 > news >正文

关于大模型中的Token概念小记

大模型中的 Token 详解

在大模型(如 GPT-4、Llama、Claude 等)中,Token(标记)是自然语言处理(NLP)中的一个基本单位,用于将文本拆分为模型可以理解和处理的片段。它的粒度可以是一个单词、一个子词,甚至是一个字符,取决于具体的 Tokenization(分词)方法。


1. Token 的概念

Token 是模型处理文本的最小计算单位,类似于计算机中的字节对数据的作用。例如,在大多数基于 Transformer 的 NLP 模型中,文本输入时不会直接作为完整的句子,而是首先被拆分成一系列 Token,然后再进行处理。

示例:

假设有一句话:

“ChatGPT is amazing!”

如果使用空格作为简单的 Token 拆分依据,它可能会变成:

["ChatGPT", "is", "amazing", "!"]

但实际上,大模型采用更复杂的分词方式,例如基于 Byte Pair Encoding (BPE)Unigram,它可能会拆成:

["Chat", "G", "PT", " is", " amazing", "!"]

在这个例子中,“ChatGPT” 被拆成了三个 token,这是因为 BPE 认为 “Chat”、“G” 和 “PT” 是更常见的子单元。


2. Token 计算方式

许多 AI 模型(如 OpenAI 的 GPT)在提供 API 访问时,都会限制最大 Token 处理量。例如:

  • GPT-4 Turbo 可能支持 128K Token(输入+输出总和)。
  • 早期 GPT-3.5 的 Token 限制一般在 4K 左右。

通常来说:

  • 一个英文单词 ≈ 1.2 个 Token
  • 一个汉字 ≈ 1 个 Token
  • 一个标点符号 ≈ 1 个 Token
  • 代码(如 Python/HTML)通常比自然语言消耗更多 Token

示例

句子:“ChatGPT is amazing!” 大约包含 4-5 个 Token

["Chat", "G", "PT", " is", " amazing", "!"]

而同样的句子在中文:

"ChatGPT 很棒!"

可能会被拆分成:

["ChatGPT", " 很", "棒", "!"]

总共 4 个 Token


3. Tokenization(分词)方法

不同的大模型使用不同的 Tokenization 技术,常见的有:

(1) Byte Pair Encoding (BPE)

  • 这是 GPT-4、Llama 等大模型常用的分词算法。
  • 通过统计文本中的常见子词,逐步合并成更大的 Token,提高压缩率并减少 Token 数量。
  • 示例
    • “unhappiness” → [“un”, “happiness”]
    • “happiness” → [“happi”, “ness”]
    • “happily” → [“happi”, “ly”]

(2) Unigram Language Model

  • 由 Google 提出的 SentencePiece 分词器使用此方法。
  • 通过概率统计计算 Token 的最优拆分方式,以最大化文本的可压缩性。

(3) WordPiece

  • BERT 使用的一种分词方法,与 BPE 类似,但它是通过最大化概率的方式来决定如何合并子词的。

(4) Character-based

  • 有些 NLP 任务会直接按字符进行 Tokenization,适用于拼写敏感的任务,比如 OCR(光学字符识别)或自动拼写纠正。

4. Token 影响成本与性能

在使用大模型时,Token 直接影响计算成本和推理速度:

  1. 推理成本:大多数 AI API(如 OpenAI)按照 Token 数量计费,Token 越多,成本越高。
  2. 响应时间:模型需要逐个处理 Token,Token 数量越多,响应速度越慢。
  3. 上下文长度:模型通常对最大 Token 数量有限制,如果超过上限,会截断部分内容。

计算公式

假设 GPT-4 的 API 定价如下:

  • 输入 Token 费用: 0.01 / 1000 T o k e n 0.01 / 1000 Token 0.01/1000Token
  • 输出 Token 费用: 0.03 / 1000 T o k e n 0.03 / 1000 Token 0.03/1000Token

如果一篇文章有 5000 个 Token,则处理成本为:

输入成本 = 5000 × 0.01 1000 = 0.05 美元 \text{输入成本} = \frac{5000 \times 0.01}{1000} = 0.05 \text{美元} 输入成本=10005000×0.01=0.05美元

输出成本 = 5000 × 0.03 1000 = 0.15 美元 \text{输出成本} = \frac{5000 \times 0.03}{1000} = 0.15 \text{美元} 输出成本=10005000×0.03=0.15美元


5. Token 的优化策略

由于 Token 影响计算效率和成本,可以采取以下策略优化:

  1. 减少冗余:避免长而重复的输入,如不必要的上下文信息。
  2. 调整分词方式:使用更合适的 Tokenization 方法,减少 Token 数量。
  3. 截断无用部分:对于长文本输入,可以保留核心信息,减少无意义的 Token 占用。
  4. 使用更短的 prompt:精简指令,使模型能够在较少 Token 下产生最优结果。

6. 结论

  • Token 是 NLP 模型处理文本的基本单位,可能是单词、子词、字符或特殊符号。
  • 不同的分词方法(BPE、Unigram、WordPiece)会影响 Token 的划分方式
  • Token 数量影响计算成本、响应时间和模型的上下文能力
  • 合理优化 Token 数量可以提高 AI 任务的性能,降低使用成本

希望这篇文档能帮助你更好地理解大模型中的 Token!🎯

相关文章:

  • 滑动窗口:解决连续区间问题的黄金模板(练习笔记)
  • Elasticsearch:设置向量搜索
  • CentOS安装sshpass工具-自动化SSH密码认证
  • vue2中引入elementui
  • node-ddk,electron,截屏封装(js-web-screen-shot)
  • 【蓝桥杯】每日连续 Day9 前缀和
  • Xinference安装、使用详细笔记
  • 数据库原理13
  • tcl语法中的命令
  • </mirrorOf> Maven
  • 零基础入门网络爬虫第5天:Scrapy框架
  • 嵌入式驱动开发方向的基础强化学习计划
  • 【监控系列】ELK
  • 《水上安全》杂志社水上安全编辑部水上安全杂志2025年第3期目录
  • 持续集成与持续交付:这里有从开发到部署的全流程优化
  • Linux 基础入门操作 第十二章 TINY Web 服务器
  • MyBatis StatementHandler是如何创建 Statement 对象的? 如何执行 SQL 语句?
  • mac怎么安装pycharm?
  • 【加密社】币圈合约交易量监控,含TG推送
  • 简单描述一下,大型语言模型简史
  • 农行一季度净利润719亿元增2.2%,不良率微降至1.28%
  • 当初没有珍惜巴特勒的热火,被横扫出局后才追悔莫及
  • 西湖大学本科招生新增三省两市,首次面向上海招生
  • 太好玩了!坐进大卫·霍克尼的敞篷车穿越他画笔下的四季
  • 扎克伯格怕“错过风口”?Meta AI数字伴侣被允许与未成年人讨论不当话题
  • 人民日报社论:做新时代挺膺担当的奋斗者