什么是代币?
令牌可以被认为是单词的片段。在 API 处理提示之前,输入被分解为标记。这些标记并没有准确地在单词开始或结束的地方被分割——标记可以包含尾随空格甚至子词。以下是一些有助于理解令牌长度的经验法则:
-
1 个令牌 ~= 4 个英文字符
-
1 个令牌 ~= ¾ 字
-
100 个标记 ~= 75 个单词
或者
-
1-2 句话 ~= 30 个标记
-
1 段 ~= 100 个代币
-
1,500 个单词 ~= 2048 个标记
要获得有关令牌如何堆叠的更多上下文,请考虑以下内容:
单词如何拆分为标记也取决于语言。例如“Cómo estás”(西班牙语中的“你好吗”)包含 5 个标记(10 个字符)。较高的 token-to-char 比率会使为英语以外的语言实现 API 的成本更高。
要进一步探索标记化,您可以使用我们的交互式Tokenizer 工具,它允许您计算标记的数量并查看文本如何分解为标记。或者,如果您想以编程方式对文本进行标记化,您可以探索库,例如 Python 的transformers包或 node.js 的gpt-3-encoder包。
令牌限制
根据使用的模型,请求最多可以使用 4097 个在提示和完成之间共享的令牌。如果您的提示是 4000 个令牌,您的完成最多可以是 97 个令牌。
该限制目前是一种技术限制,但通常有创造性的方法可以在限制内解决问题,例如压缩您的提示,将文本分成更小的部分等。
代币定价
API 以不同的价位提供多种模型类型。每个模型都有一系列的功能,davinci是最有能力的,ada是最快的。对这些不同模型的请求定价不同。您可以在此处找到有关代币定价的详细信息。
探索代币
API 根据语料库数据中的上下文处理单词。GPT-3 接受提示,将输入转换为标记列表,处理提示,并将预测的标记转换回我们在响应中看到的单词。
对我们来说两个相同的词可能会生成不同的标记,具体取决于它们在文本中的结构。考虑 API 如何根据文本中的上下文为单词“ red ”生成标记值: