大模型token相关分析

458 阅读3分钟

(1) token简介

  • token 是自然语言处理的最小单位,也叫 "令牌",简单理解,gpt输入和输出都是一个个的token
  • 一个token可能代表一个汉字、一个英文单词、或者一个字符,不同的厂商采用不同的方式来定义和计算token,一般来说,100 tokens ~= 75 words
  • 服务商以千 Tokens(1K Tokens)为单位进行计费

(2) token计算

输入单价输出单价
GPT3.5-Turbo0.001/k (token)0.002/k (token)
GPT4-Turbo0.01/k (token)0.03/k (token)

1美元 = 7.19人民币

最大允许输入最大允许输出
token数量1280004096
单价0.01/k (token)0.03/k (token)
最大输入花费1.28(美元) / 9.2(元)0.12(美元) / 0.86(元)
  • 字符串计算:提示词2626,告警数据506条52057, 总共54684;
  • Token 计算: 提示词 2047,告警数据506条31465, 总共33512;
  • 花费:token=33512,调用GPT4-Turbo 花费1.00536($),折合人民币7.54020(¥)
  • GPT4-Turbo(允许128000 token),平均每条告警62token,理论上一次性能处理2064条告警

(3) 极限测试

  • 理论上一次性可以输入2064条告警,可是实际上网页版行不通,递减的输入,最多能一次性处理300条告警。(具体原因:网页版有自己额外的限制来确保用户体验,这个限制远小于128000)

  • API的方式:允许一次性输入全部506条告警并输出标签

  • 分析:超长上下文背后可能的大规模数据传输、API 调用、网络协议等等“基础设施”都有可能影响。

(4) 针对gpt4-turbo的压力测试报告分析

说明: 推特大佬 Greg Kamradt 针对 GPT-4 Turbo 进行了一场压力测试,将 218 篇文章(长度超过 128k)输入 GPT-4 Turbo,在总体输入的不同长度的段落随机植入下面这段话:

The best thing to do in San Francisco is eat a sandwich and sit in Dolores Park on a sunny day

然后再去问 GPT-4 Turbo “在旧金山最美好的事情是什么?”,并且要求模型只根据上下文回答此问题,同时使用另一个模型(GPT-4)评估答案的质量

image.png

实验现象:

  • 图的横坐标是文档的长度,纵坐标是插入的文本在文档的位置。可以看到,在右上角区域模型表现效果很差,这些基本都是文档上半段,然后开始位置之后(7%位置之后)。但是如果这句话在文档下半段效果反而还可以

实验结论:

  • 准确性在输入超过73K tokens之后下降明显,这意味着,如果你的文档超过了50万单词之后可能GPT-4并不能准确找到你问题的答案位置;
  • 如果答案恰巧在文档7%-50%的位置,那么GPT-4能找到的概率最低,而50%的位置正好是文档中间。这也侧面验证了此前大模型的Lost in Middles特点
  • 如果插入位置在文档开头或结尾,无论上下文长度如何,总能找到答案。这可能意味着GPT-4 Turbo 还是偏好于在文档的开头与结尾寻找答案
  • 更少的上下文长度=更好的准确性

参考:

Token: blog.csdn.net/qq_45476428…
GPT4极限测评:zhuanlan.zhihu.com/p/666363391
token计算[platform.openai.com/tokenizer]