nlp - OpenAI GPT-3 API : How does it count tokens for different languages?

标签 nlp tokenize openai-api gpt-3

我们都知道GPT-3模型可以接受和产生英语、法语、中文、日语等各种语言。

在传统的NLP中,不同的语言有不同的token制作方法。

  • 对于像英语这样的字母语言,Bert使用BPE方法来制作如下的token:
Insomnia caused much frustration.
==>
In-, som-, nia, caus-, ed, much, frus-, tra-, tion, .,
  • 对于中文、日文等具有特征性的语言,只需使用字符本身作为标记即可,如下所示。
東京メトロは心に寄り添う
==>
東, 京, メ, ト, ロ, は, 心, に, 寄, り, 添, う,
我说你倒是快点啊!!!
==>
我, 说, 你, 倒, 是, 快, 点, 啊, !, !, !, 

但是对于GPT-3来说,它是由不同的语言组成的,并且可以在一句话中产生中文和英文。所以我很好奇这个模型是怎么制作token的。

最佳答案

使用 Tokenizer了解一段文本将如何被 OpenAI API 标记化。

例如,Insomnia caused much frustry. 将被标记为 6 个标记。

Example 1

然而,我说你倒是快点啊!!! 将被标记为 27 个标记,底部有一个小注释:

Note: Your input contained one or more unicode characters that map to multiple tokens. The output visualization may display the bytes in each token in a non-standard way.

Example 2

关于nlp - OpenAI GPT-3 API : How does it count tokens for different languages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75454722/

相关文章:

java - HTML 中的句子边界检测

java - HashMap 作为唯一值存储/实例计数器。 java

python - 如何在 python 中将字符串拆分为列表并将两个已知标记合并为一个?

ruby - 使用 Ruby 将单词分解为字母

c++标记器错误 ''变量 'std::stringstream mystream'具有初始化程序但类型不完整''

python - Gensim.Similarity 添加文档或实时培训

python 数据挖掘

json - 我可以为 OpenAI API Codex 模型创建微调模型吗?

javascript - azure gpt api流响应

python - openai Codex 中的后缀和前缀提示是什么?