尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

一文带大家理解大语言模型的Token是什么东东以及测试方法

一文带大家理解大语言模型的Token是什么东东以及测试方法 Token的定义Token 是大语言模型LLM处理和理解文本时的最小基本单位Basic Unit。它不是简单的“字符”或“单词”而是模型词汇表中一个唯一的数字 ID。为了让你更透彻地理解这个定义我们需要把它拆解为三个层面的含义1. 它是“最小处理单元” (The Basic Unit)模型无法直接理解人类的自然语言文字如 Hello 或 你好。定义视角Token 是模型“看得懂”的最小语义或字符片段。例子在英文中一个单词apple可能是一个 Token但一个长单词unbelievable可能会被拆分为三个 Tokenun、believ、able。在中文中通常一个汉字是一个 Token但有时两个字的词如“人工智能”如果在训练数据中高频出现也可能被合并为一个 Token。2. 它是“数字 ID” (The Numerical ID)这是最本质的定义。根据 OpenAI 的技术逻辑模型内部其实是一个巨大的数学计算引擎它只认数字。定义视角Token 是文本字符与模型内部数字向量之间的映射桥梁。过程文本你好分词 (Tokenization)拆分为[你, 好]编号 (Token ID)映射为数字 假设值向量 (Embedding)模型读取 ID 对应的向量进行计算。3. 它是“计费与限制单位” (The Unit of Measure)在商业应用中如 OpenAI APIToken 是衡量资源消耗的“货币”。定义视角它是计算模型输入输出长度、显存占用和成本的基准单位。官方口径OpenAI 官方文档指出“Token 是衡量你使用了多少计算资源的单位。你的文本输入和模型的输出都会被转换为 Token 进行计费。”Token和字符的关系字符Character与 Token 的关系是“积木”与“预制件”的关系我们不能绝对地认为“1 字符 1 Token”但可以认为“Token 数量与字符数量成正比”。大模型在处理文本时会使用一种叫做分词器Tokenizer的工具把文本切分成更小的单元Token。这个切分逻辑在中英文之间差异很大对于中文通常情况1 个汉字 ≈≈ 1 个 Token。例如“你好”通常会被切分为[你, 好]也就是 2 个 Token。特殊情况如果是一些非常生僻的字或者特殊的符号、表情可能会被切得更碎1 个字变成 2-3 个 Token但这种情况较少。对于英文通常情况1 个单词 ≈≈ 1-2 个 Token。英文不是按字母算的。常见词如 ChatGPT 可能是一个 Token但如果是 Transformers 这种长词可能会被拆成[Trans, former, s]三个 Token。估算公式通常 100 个英文单词大约对应 130 个 Token 左右。Token 延迟 (Latency)反应速度通俗理解用户问一个问题模型“打字”回复的速度。通常分为两个阶段首 Token 延迟 (Time to First Token, TTFT)用户按下回车到屏幕上出现第一个字的时间。这决定了用户感觉系统“卡不卡”。Token 生成间隔 (Inter-Token Latency)第一个字出来后后续每个字之间的间隔时间。这决定了阅读的流畅度。在大模型内部延迟对应什么这对应了模型进行数学计算所花费的时间。计算过程模型接收到你的输入Prompt后需要进行复杂的矩阵运算主要是矩阵乘法来预测下一个字Token。这是一个串行过程模型必须算出第一个字才能基于第一个字去算第二个字以此类推。资源对应测试视角的映射GPU 算力 (Compute)这是最主要的瓶颈。模型参数越大如 70B vs 7B需要的计算量FLOPs就越大GPU 的计算单元CUDA 核心就需要忙更久。显存带宽 (Memory Bandwidth)GPU 计算时需要频繁地从显存VRAM中读取模型权重和中间结果。如果显存带宽不够比如用消费级显卡跑大模型计算单元就会“饿死”——算得快但数据喂不进来导致延迟飙升。网络延迟如果是调用云端 API还包括数据在网络上传输的时间。测试类比这就像是测试一个 Web 接口的 响应时间 (Response Time)。TTFT 就像 TTFB而生成间隔就像数据流的传输速率。Token 消耗 (Consumption/Cost)资源开销通俗理解运行一次对话系统“烧”了多少钱或者占用了多少硬件资源。在大模型内部消耗对应什么这对应了模型运行时的内存占用和计算量。显存占用 (Memory/VRAM)模型权重这是最大的开销。一个 FP16 精度的 7B 模型光权重就占约 14GB 显存。KV Cache (关键)这是 RAG/LLM 特有的开销。为了保证上下文连贯模型必须把之前所有对话的“注意力键值”缓存在显存里。公式KV Cache 显存 ≈ 2 * 层数 * 头维度 * 序列长度 * 精度。结论上下文越长长文档 RAG显存占用越高且是线性增长。计算量 (Compute)每生成一个 Token都需要进行一次完整的前向传播计算。消耗 输入 Token 数 输出 Token 数。输入 Token 决定了“预填充Prefill”阶段的计算量输出 Token 决定了“解码Decoding”阶段的计算量。资源对应钱/成本在商业云服务中如 OpenAI, AzureToken 消耗直接等于金钱。输入 Token通常较便宜读你的文档。输出 Token通常较贵模型生成回答。在自建服务中你的 DevOps 场景Token 消耗对应硬件成本GPU 卡数显存不够就得用更多卡做模型并行。电力与散热GPU 满载运行的电费。总结一张表看懂 Token 与资源的映射指标大模型内部含义对应的服务器资源优化手段 (结合你学的知识)Token 延迟计算时间GPU 算力 (主)、显存带宽量化 (LoRA/INT8)减少计算量推测解码一次算多个 Token。Token 消耗资源占用GPU 显存 (主)、计算时长KV Cache 优化减少内存碎片模型剪枝减小模型体积。上下文长度记忆长度显存带宽 (瓶颈)PagedAttention像操作系统管理内存一样管理显存。给测试工程师的建议概要总结我们可以把 Token 理解为大模型世界的“资源代币”。Token 延迟就是 GPU 的计算时间Token 消耗就是 GPU 显存和算力的占用量。它们就是服务器资源在大模型世界里的具体表现形式。在做测试或估算成本时针对中文系统完全可以把“字数”直接等同于“Token 数”来估算资源消耗这会非常接近真实值。压测大模型策略可以从以下几个维度去“压测”一个大模型服务显存泄漏测试模拟超长对话几千 Token观察 KV Cache 是否被正确释放。如果显存占用一直涨不降那就是内存泄漏。吞吐量测试 (Throughput)输入密集型发很长的文档让模型总结考验 Prefill 阶段的显存带宽。输出密集型让模型写几千字的小说考验 Decoding 阶段的计算速度。成本测试监控 Token 消耗。如果一个简单的问答消耗了巨大的 Token 数说明模型的提示词Prompt设计有问题或者检索Retrieval回来的上下文太冗余。一定记住下面八条1 个中文字符 ≈≈ 1 个 Token估算时非常准确。Token 越多 →→ 模型“脑容量”占用越高显存。Token 越多 →→ 模型“思考”越慢计算延迟。Token 越多 →→ 传输流量越大带宽。内存占用Memory / VRAM随 Token 线性增长。CPU/GPU 计算量Compute随 Token 平方级增长在长文本时也就是说当文本长度从 1000 Token 变成 2000 Token 时计算量可能不是翻倍而是变成 4 倍。带宽Bandwidth随 Token 线性增长延迟Latency生成的字符越多用户等待的时间首 Token 延迟和生成间隔就越长。
返回列表