(1) token简介
- token 是自然语言处理的最小单位,也叫 "令牌",简单理解,gpt输入和输出都是一个个的token
- 一个token可能代表一个汉字、一个英文单词、或者一个字符,不同的厂商采用不同的方式来定义和计算token,一般来说,100 tokens ~= 75 words
- 服务商以千 Tokens(1K Tokens)为单位进行计费
(2) token计算
| 输入单价 | 输出单价 | |
| GPT3.5-Turbo | 0.001/k (token) | 0.002/k (token) |
| GPT4-Turbo | 0.01/k (token) | 0.03/k (token) |
1美元 = 7.19人民币
| 最大允许输入 | 最大允许输出 | |
| token数量 | 128000 | 4096 |
| 单价 | 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)评估答案的质量
实验现象:
- 图的横坐标是文档的长度,纵坐标是插入的文本在文档的位置。可以看到,在右上角区域模型表现效果很差,这些基本都是文档上半段,然后开始位置之后(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]