ChatGPT 的 Tokens 是怎么计算的?

2023 年 4 月 14 日
 dier

我的账号因为没有试用金,所以不能测试。希望有用地的帮忙解答一下

我想了解一下这个 tokens 的计算是统计的我提问时提交内容折算成 tokens 还是 ChatGPT 生成的内容折算成 tokens 。

我开始以为是根据我提问的内容计算 tokens ,但是今天一想感觉好像不太对?因为大部分情况下提问的内容是很少的,那如果只是提问、对话,1000 个 tokens 岂不是可以提问好多内容?

如果是按回复的内容算 tokens ,那它讲废话也是挺合理的了,毕竟说得越多,收费越贵🐶

我搜了一下,没有比较明确的说明。另外,还看到说好像上下文也会每次算在提交的 tokens 中。

6034 次点击
所在节点    OpenAI
15 条回复
airyland
2023 年 4 月 14 日
input + output
dier
2023 年 4 月 14 日
@airyland 那上下文的内容也会反复计算在内吗
vbe
2023 年 4 月 14 日
@dier 不会
zapper
2023 年 4 月 14 日
https://platform.openai.com/tokenizer
1,000 tokens is about 750 (英文) words

[上文] + 输入+输出,GPT3.5 最大就是 4096 tokens ,这也解释了为什么他说着说着就会忘记前面的事情
cs3230524
2023 年 4 月 14 日
@dier 会啊。
第一轮:Q1A1
第二轮:Q1A1+Q2A2
第三轮:Q1A1+Q2A3+Q3A3
......

最长的 token 有限制,超过了你要自己选择携带的会话请求。相关的 token 拆分算法官方文档已经写得很清楚了。
abelyao
2023 年 4 月 14 日
#5 @cs3230524 说的才是正常的,上下文是算字数的
hahastudio
2023 年 4 月 14 日
@zapper 不是的吧,如果你 API 前面给的 context 太长,它最后回复的就很短,context + response = 4096 token
Yeen
2023 年 4 月 14 日
官方有文档,直接给官方结论(英文文本):正常文本统计来说,单词数大约相当于 token 数的 75%。
也就是 1000 个 token 大约有效单词是 750 个。
pkoukk
2023 年 4 月 14 日
官方提供的 token 序列化算法,可以计算实际消耗 token 。
官方提供了 python 和 c#两个语言的版本,其他语言的实现可以在 github 上找。
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb

你说的上下文问题和 token 没关系,属于你自己的 api 封装策略。
在 chat 这个模式下,你向 API 发起的请求模式是 [Q1 ,A1 ,Q2 ,A2 ,Q3 ,A3 ,Q4],等待 API 返回 A4
这种模式带有越多的之前的 QA ,上下文效果越好,但是单次请求消耗的 token 越多
如果你想少用点 token ,可以对之前的 QA 做出裁剪,比如只发起[Q2 ,A2 ,Q3 ,A3 ,Q4]
我自己写来玩的 cli 实现了根据 token 限制动态裁剪对话,你可以参考
https://github.com/pkoukk/chatgpt-cli/blob/main/gpt/conversion.go
BrandonNg
2023 年 4 月 14 日
evil0harry
2023 年 4 月 14 日
go 版本可以使用这个 https://github.com/pkoukk/tiktoken-go
rwecho
2023 年 4 月 14 日
如果是 stream 模式, 那它的回复只算最终的吧, stream 的中间文本会产生吗?
xqdoo00o
2023 年 4 月 14 日
@rwecho stream 模式,一条 data 算一个 token
Biluesgakki
2023 年 4 月 14 日
反正问一个问题大概在几百到几千不等 ,不要带太多的上下文 ,token 会吃得很快
waliwaliCrazy
2024 年 9 月 2 日
vue 的版本有吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/932406

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX