在人工智能的世界里,大模型正以惊人的速度改变着我们的生活。在使用 LLM 大模型时,我们经常会遇到一个关键词,叫:Token。
比如:
最新版 GPT-4 Turbo 模型最高支持 128k token 上下文;
曾经 GPT 最强对手 Claude-2.1 支持最高 200K token 上下文;
在 GPT 商店创建角色时,核心 Prompt 最高支持 8000 token。
GPT 不是直接做的“字符”的计算,而是将字符变成一个数字,也就是变成了 token 来处理。大语言模型的运作本质上是对输入和输出文本进行处理,而文本会被拆分为更小的单元,即“Token”。一个Token通常是一个单词、标点符号,或者是一个子词(subword)。
Token是大模型处理文本的基本单位,是模型理解语言的“最小砖块”。无论是中文的单个汉字,还是英文的单词、子词,甚至是标点符号,都可以被视为Token。例如,“你好,世界!”这句话在中文中会被拆分成6个Token,而在英文中,“Hello, world!”会被拆分成4个Token。
为什么在大模型出来之前的API,都是按调用次数收费,
LLM的API为什么要按Token收费?
因为,Token的数量直接影响模型的计算成本。
一个模型的上下文窗口越大,Token数量就越多,计算资源的消耗也就越大。因此,为了更公平地计量资源使用,大模型通常会以Token为单位进行收费。所以,Token就成为行走在大模型行业的“代币”,是大模型的工作量单位,与流量无关,只与模型干了多少活有关,因此,Token就成为大模型计费计量的方法和依据。
下面来详细聊聊LLM中的Token:
Token,在自然语言处理(NLP)中,是指一组相关的字符和序列,它可以是是一个单词、一个标点符号,甚至是更复杂的短语或句子片段,在中文中可以翻译成“词元”。在大模型(LLM)的世界里,Token是信息处理的最小语义单元,是模型将信息转换为机器可处理形式的基础单位,可以是字、词、子词(subword)、图像中的像素块、音频中的一帧片段等。
想象一下,你写了一封信,但不是给人类看,而是给一台机器。机器怎么理解你写的每一个字呢?这就是 Token 的作用,可以帮助我们把文本分解成更容易处理和分析的部分。Token 代表常见的字符序列。例如,单个汉字"夔"可能会被分解为若干 Token 的组合,而像"中国"这样短且常见的短语则可能会使用单个 Token。
Token 是怎么工作的?
把文字拆成 Token 的过程就像是把一本书拆成一页一页。
不同的机器可能会用不同的方法来拆书:
综上,Token的数量取决于文本的长度和所使用的分词策略:
在中文场景下,常见的分词策略会将句子分成最小的语义片段。简单来说,当我们输入一段文字时,模型会通过分词器(Tokenizer)将这些文字拆分成一个个小单元,这些小单元就是Token。比如,英文句子“I love AI”会被拆分成多个Token,而中文句子“人工智能很强大”也会被拆分成若干个Token。不过,Token的长度并不固定,它取决于模型的分词规则。
Token 的数量有多重要?
Token 的数量就像是你写信时用的纸张数量。用多了可能浪费,用少了可能说不清楚。
三、Token的计算规则
多轮对话的上下文 Token 累积
假设每轮对话的输入和输出分别是 50 Token 和 100 Token:
第 1 轮:50(输入) + 100(输出) = 150 Token。
第 2 轮:50(新输入) + 100(新输出) + 150(历史上下文) = 300 Token。
第 3 轮:50(新输入) + 100(新输出) + 300(历史上下文) = 450 Token。
以此类推,Token 数随着对话轮数增加逐渐累积。
这就引发企业使用大模型在申请预算的问题:
随着大模型技术的不断发展,按Token收费已经成为一种主流的商业模式。未来,这种计费方式可能会更加灵活和个性化,以更好地满足用户的需求和预算限制。同时,用户也需要更好地理解Token的概念,以便更高效地使用大模型服务。
总之,按Token收费不仅是一种技术上的选择,更是一种商业上的智慧。它既保证了资源的合理利用,又为用户提供了公平、透明的计费方式。
Token和自然语言处理(NLP)中的一个关键步骤相关--词元化(tokenization),所以Token有时候也会被翻译为词元。 马建仓,Gitee大模型 API 计费怎么就那么别扭???
GPT token的计算包含两部分。 输入给GPT模型的token数和GPT模型生成文本的token数。 例如,你提问耗费了100 token,GPT根据你的输入,生成文本(也就是回答)了200 token,那么一共消费的token数就是300。 https://xie.infoq.cn/article/bb5ee93b86665a700bdfe76f7
Token数量对模型性能的影响 上下文窗口限制: 模型单次处理的Token数存在上限(如GPT-4为32K Token),超出后需分块处理,可能导致上下文遗忘[5]。 生成速度与成本: 速度:以TPS(每秒生成Token数)衡量,例如每秒输出40 Token需约30秒生成120字中文。 成本:API调用按Token计费,控制Prompt长度可降低费用(如精简提问)。 注意力计算瓶颈: Transformer的自注意力机制计算量随Token数呈平方级增长,处理长文本需优化算法(如分组计算)。 https://jishuzhan.net/article/1888824609579470850
参数的数量决定了模型的复杂度和性能。参数越多,模型能够表示更复杂的关系,从而在任务上取得更好的效果,但也需要更多的训练数据和计算资源。 用一个例子解释就是,假设一个LLM&模型包含1亿个参数,那么在训练过程中,模型需要调整1亿个可变值才能达到最佳性能。这需要大量的训练数据和计算资源。 上下文长度是AI模型一次能够处理的最大Token 数量。它决定了模型处理能力的上限。上下文长度越大,模型能够处理的数据量就越大。 例如ChatGPT3.5的上下文长度为4096个Token。这意味着ChatGPT3.5无法接受超过4096个Token的输入,也无法一次生成超过4096个Token的输出。 https://blog.csdn.net/weixin_49892805/article/details/144432578
对于transformer架构来说,最核心的self-attention要一次性处理很长的token序列所消耗的算力以及时间成本都很大,计算复杂度是O(N^2)。一个比较经济的办法就是用稀疏注意力机制:SparseAttention,所谓SparseAttention是相对原来的FullAttention来说的,FullAttention是每个token都要和所有tokens计算,而SparseAttention是只选择部分重要的tokens来计算。 知乎日报梁文锋参与发表的 DeepSeek 新论文,会带来哪些影响?
Token为什么重要? Token在大模型里的作用可大了: 理解上下文:就像你读信时能理解每句话的意思一样,机器通过Token能理解你写的文字。 处理复杂语言:比如“大美女”这个词,机器会把它拆成“大”和“美女”,这样它就能更好地理解这个词。 提高效率:就像你用电脑处理文件比手写快一样,机器通过Token化能更快地处理文字。 控制资源:就像你用手机时会注意流量一样,机器通过控制Token的数量来控制计算资源的使用。 https://blog.csdn.net/qq_27471405/article/details/140486945
token是模型用来表示自然语言文本的基本单位,也是我们的计费单元,可以直观的理解为“字”或“词”;通常1个中文词语、1个英文单词、1个数字或1个符号计为1个token。 一般情况下模型中token和字数的换算比例大致如下: 1个英文字符≈0.3个token。 1个中文字符≈0.6个token。 但因为不同模型的分词不同,所以换算比例也存在差异,每一次实际处理token数量以模型返回为准,您可以从返回结果的usage中查看。 离线计算Tokens用量 您可以通过如下压缩包中的代码来运行tokenizer,以离线计算一段文本的Token用量。 https://api-docs.deepseek.com/zh-cn/quick_start/token_usage
离线计算Token的代码地址:
https://cdn.deepseek.com/api-docs/deepseek_v3_tokenizer.zip
GPT官方token在线计算:https://platform.openai.com/tokenizer
分词方法:不同模型采用不同的分词策略,如BPE(字节对编码)、WordPiece、SentencePiece等。这些方法决定了如何将输入文本分割成Token。
最大Token数:这是模型在单次会话中能够处理的最大Token数量,包括输入和输出的Token总和。
在 DeepSeek-V3 的上下文中,“64KH 上下文”指的是模型能够处理的最大输入长度为 64K tokens。这里的“K”代表千(1024),因此 64K tokens 即 64×1024=65536 个 tokens。这意味着模型在一次处理中可以接收最多 65536 个 tokens 的输入内容。
对于中文内容,1个 token 通常对应 1 到 2 个字符,因此 64K tokens 大约对应 3 万到 6 万个中文字符。这种长上下文能力使得 DeepSeek-V3 能够处理较长的文本输入,例如长篇文章、报告或复杂的对话内容,而不会因输入长度受限而影响性能。