模型消耗token数量的估算

计算模型消耗的提示词与输出的 token 数量,涉及以下关键步骤:

  1. 输入的提示词(Prompt)的 Token 数计算

    • 基于输入的文本,按照模型使用的分词器(Tokenizer)将文本分割为单独的 tokens。每个 token 通常是一个单词、标点符号或单词的部分。
    • 例如,GPT 模型使用 Byte Pair Encoding (BPE) 或类似的分词算法。
  2. 输出的 Token 数估算

    • 输出 token 的数量由输入的提示词、模型的最大生成长度设置,以及生成任务的复杂性决定。
    • 用户设置的最大生成 token 长度限制(max_lengthmax_new_tokens)直接影响输出的 token 数。
  3. 计算提示词与输出总 token 数

    • 总 token 数 = 输入 token 数(Prompt Tokens)+ 输出 token 数(Generated Tokens)。

以下是详细推导和实例说明:


1. 输入的提示词 Token 数计算

1.1 分词器的作用
  • 模型的分词器将输入文本分割为小单位(Token)。
  • 不同语言和模型使用的分词器可能不同。例如:
    • 英文:一个单词通常是一个 token(hello -> hello)。
    • 中文:一个汉字可能是一个 token(你好 -> , )。
    • 复杂语言结构或长单词可能分为多个 token(unbelievable -> un, believe, able)。
1.2 输入文本的 token 化

分词器将输入文本转化为 token 列表。例如:

  • 输入文本:“Hello, world!”
  • 分词结果(基于 GPT-3 分词器):["Hello", ",", "world", "!"]
  • Token 数:4。

2. 输出 Token 数的估算

2.1 模型生成策略

输出 token 数取决于:

  • 模型的最大生成长度设置(例如 max_length=50)。
  • 任务类型:回答生成型(短文本) vs 故事生成型(长文本)。
  • 输入与输出之间的关联性:部分任务(如摘要或翻译)会生成与输入长度相关的输出。
2.2 估算方法
  • 假设任务为生成自然语言,输出 token 数约占输入 token 数的 (0.5) 至 (1.5) 倍:
    • 简单任务(如短回答)输出 token 数较少。
    • 复杂任务(如长文本生成)输出 token 数较多。

3. 示例计算

示例 1:问答型任务
  • 输入文本
    "What is the capital of France?"
    
  • 分词结果
    ["What", "is", "the", "capital", "of", "France", "?"]
    • 输入 token 数:7。
  • 生成输出
    "The capital of France is Paris."
    
  • 分词结果
    ["The", "capital", "of", "France", "is", "Paris", "."]
    • 输出 token 数:7。
  • 总 token 数
    总 token 数 = 输入 token 数 + 输出 token 数 = 7 + 7 = 14 。 \text{总 token 数} = \text{输入 token 数} + \text{输出 token 数} = 7 + 7 = 14。  token =输入 token +输出 token =7+7=14
示例 2:长文本生成
  • 输入文本
    "Write a story about a hero who saves the world."
    
  • 分词结果
    ["Write", "a", "story", "about", "a", "hero", "who", "saves", "the", "world", "."]
    • 输入 token 数:11。
  • 生成输出(假设 max_length=50)
    "Once upon a time, in a small village, there was a young hero named Leo. One day, an evil force threatened the peace of the world. Leo gathered his courage and..."
    
  • 分词结果
    生成 50 个 token。
  • 总 token 数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

由数入道

滴水助江海,心灯渡万世。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值