我的账号因为没有试用金,所以不能测试。希望有用地的帮忙解答一下
我想了解一下这个 tokens 的计算是统计的我提问时提交内容折算成 tokens 还是 ChatGPT 生成的内容折算成 tokens 。
我开始以为是根据我提问的内容计算 tokens ,但是今天一想感觉好像不太对?因为大部分情况下提问的内容是很少的,那如果只是提问、对话,1000 个 tokens 岂不是可以提问好多内容?
如果是按回复的内容算 tokens ,那它讲废话也是挺合理的了,毕竟说得越多,收费越贵🐶
我搜了一下,没有比较明确的说明。另外,还看到说好像上下文也会每次算在提交的 tokens 中。
1
airyland 2023-04-14 09:22:37 +08:00 1
input + output
|
4
zapper 2023-04-14 09:28:14 +08:00 1
https://platform.openai.com/tokenizer
1,000 tokens is about 750 (英文) words [上文] + 输入+输出,GPT3.5 最大就是 4096 tokens ,这也解释了为什么他说着说着就会忘记前面的事情 |
5
cs3230524 2023-04-14 09:43:24 +08:00 2
@dier 会啊。
第一轮:Q1A1 第二轮:Q1A1+Q2A2 第三轮:Q1A1+Q2A3+Q3A3 ...... 最长的 token 有限制,超过了你要自己选择携带的会话请求。相关的 token 拆分算法官方文档已经写得很清楚了。 |
7
hahastudio 2023-04-14 09:52:28 +08:00
@zapper 不是的吧,如果你 API 前面给的 context 太长,它最后回复的就很短,context + response = 4096 token
|
8
Yeen 2023-04-14 09:56:11 +08:00
官方有文档,直接给官方结论(英文文本):正常文本统计来说,单词数大约相当于 token 数的 75%。
也就是 1000 个 token 大约有效单词是 750 个。 |
9
pkoukk 2023-04-14 10:03:04 +08:00 2
官方提供的 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 |
10
BrandonNg 2023-04-14 10:16:08 +08:00
|
11
evil0harry 2023-04-14 10:33:10 +08:00
go 版本可以使用这个 https://github.com/pkoukk/tiktoken-go
|
12
rwecho 2023-04-14 10:45:24 +08:00
如果是 stream 模式, 那它的回复只算最终的吧, stream 的中间文本会产生吗?
|
14
Biluesgakki 2023-04-14 13:11:45 +08:00 1
反正问一个问题大概在几百到几千不等 ,不要带太多的上下文 ,token 会吃得很快
|
15
waliwaliCrazy 89 天前
vue 的版本有吗
|