Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

什么是 tokens,ChatGPT里面的Tokens如何计数?

什么是 tokens?

Tokens 可以被认为是词语的片段。在 API 处理提示之前,输入会被分解成 tokens。这些 tokens 并不会精确地在单词的开始或结束处切分 - tokens 可以包含尾随的空格甚至子词。以下是一些帮助理解 tokens 长度的经验法则:

1 token ~= 英文中的4个字符

1 token ~= ¾个单词

100 tokens ~= 75个单词

或者

1-2个句子 ~= 30个tokens

1段落 ~= 100个tokens

1,500个单词 ~= 2048个tokens

为了获取更多关于tokens如何叠加的上下文,可以考虑以下例子:

  • 韦恩·格雷茨基的名言 "You miss 100% of the shots you don't take" 包含11个tokens。

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

单词如何被分割成 tokens 也取决于语言。例如,'Cómo estás'(西班牙语中的'你好吗')包含5个 tokens(对应10个字符)。较高的 token 到字符比率可能使得对英语以外的语言实现 API 更加昂贵

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

  • 我名字拼音+空格+wetchat+我的微信号"liyuechun wetchat liyc1215" 包含13个tokens。

飞书、钉钉、企微GPT能力嫁接和AIGC企业培训,联系我:liyc1215

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

  • ”黎跃春“三个字包含8个tokens
    Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

  • "付金亮"三个字包含6个tokens
    Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

如果你想进一步探索分词,你可以使用我们的交互式 Tokenizer 工具,它可以让你计算 token 的数量,并查看文本如何被分割成 tokens。或者,如果你想通过编程方式进行分词,可以使用 Tiktoken,这是一个专为 OpenAI 模型设计的快速 BPE 分词器。你也可以尝试探索其他库,例如 Python 的 transformers 包,或者 node.js 的 gpt-3-encoder 包。

Token 限制

根据使用的模型不同,请求中的prompt和completion之间最多可以使用4097个tokens。如果你的prompt是4000个tokens,那么你的completion最多可以是97个tokens。

这个限制目前是一个技术限制,但通常有许多创新的方法可以在这个限制内解决问题,例如压缩你的prompt,将文本分解成较小的部分等。

Token 定价

API 提供多种不同价格点的模型类型。每种模型都有一系列的能力,其中davinci是最强大的,ada是最快的。对这些不同模型的请求定价不同。你可以在这里找到关于token定价的详细信息。

探索 tokens

API会根据语料库数据中的上下文来处理单词。GPT-3接受prompt,将输入转换成一系列的tokens,处理prompt,并将预测的tokens转换回我们在响应中看到的单词。

在我们看来可能是两个相同的单词,可能会根据它们在文本中的结构生成不同的tokens。考虑一下API如何根据文本中的上下文为单词'red'生成token值:

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

在上面的第一个例子中,‘ red’的token "2266"包含一个尾随的空格。

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

带有前导空格并以大写字母开头的‘ Red’的token "2297"与以小写字母开头的‘ red’的token "2266"不同。

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

当 'Red' 在句子开头时,生成的token不包含前导空格。token "7738"与前两个单词的例子不同。

观察:

token越可能/频繁,分配给它的token号就越低:

  • 在所有3个句子中为句号生成的token是相同的("13")。这是因为,在语境上,句号在语料库数据中的使用相当类似。

  • 根据'red'在句子中的位置,生成的token会有所不同:

    • 在句子中间的小写:‘ red’ - (token: "2266")

    • 在句子中间的大写:‘ Red’ - (token: "2297")

    • 在句子开头的大写:‘Red’ - (token: "7738")

既然我们知道tokens可以包含尾随的空格字符,那么记住以空格字符结束的prompts可能会导致输出质量较低是有帮助的。这是因为API已经在它的tokens字典中包含了尾随的空格。

使用 logit_bias 参数

可以在 logit_bias 参数中为特定的 tokens 设置偏差,以修改指定 tokens 出现在补全中的可能性。比如,我们正在构建一个对用户鸡蛋过敏问题敏感的 AI 烘焙助手。

当我们使用提示 'The ingredients for banana bread are' 运行 API 时,回应将以26.8%的概率将 'eggs' 包含为第二种原料。

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

注意:要在 Playground 中查看补全概率,请从 Show Probabilities 下拉菜单中选择 Full Spectrum。

由于我们的 AI 烘焙助手对鸡蛋过敏问题很敏感,我们可以利用我们对 tokens 的了解,在 logit_bias 参数中设置偏差,以阻止模型生成包含任何 'egg' 变体的响应。

首先,使用这个分词器工具来确定我们需要为哪些 tokens 设置偏差。

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

Tokens:

  • 尾随空格的单数形式:‘ egg’ - “5935”

  • 尾随空格的复数形式:‘ eggs’ - “9653”

  • 为‘Egg’或‘Eggs’生成的子词token - ‘gg’:“1130”

logit_bias 参数接受的偏差值范围是 -100 到 +100,极值结果导致相关 token 的禁止(-100)或独占选择(100)。

将 logit 偏差加到 prompt 中将修改 'egg'(及其变体)包含在我们的香蕉面包提示的响应中的可能性。上述提示生成了一个不包含任何鸡蛋的响应!

虽然我们不能保证它会生成最好的无鸡蛋香蕉面包配方,但 AI 烘焙助手满足了对用户鸡蛋过敏问题的考虑需求。

总结

  1. 使用英文对话比较划算,其他语言包括中文计算Token时比较昂贵
  2. 英文字母大概四个字母平均下来等于一个token
  3. 中文汉字,大概一个汉字平均下来两个token
  4. 我昨天用GPT写了7篇高考作文,总字数为10397,Tokens 为21,008个。

Tokens揭秘:理解ChatGPT中的计数原则,优化AI体验

计算了一下:如果使用GPT3.5的API访问的话,整个输入和输出总共:21,008 个token,GPT3.5 的单价为$0.002/1000tokens,那么这7篇作文的整个对话花费折算成人民币的价格为:21008/1000*(0.0027) = 0.294112元人民币,GPT4是GPT3.5的60倍价格,如果使用GPT4的话,此次消费为:0.294112 60 = 17.64672元。

最后总结: 目前使用GPT3.5的价格还是很亲民划算的,等待未来算力足够的时候,我相信GPT4.0也不会贵。

其他资料

发布者:黎跃春,转转请注明出处:https://liyuechun.com/2023/06/26/chatgpt-tokens/

(0)
上一篇 2023年6月28日 上午12:10
下一篇 2023年6月26日 下午10:23

相关推荐

  • 解析AIGC:深入理解其定义及影响

    什么是 AIGC? AIGC,即AI-generated Content,是一种利用人工智能进行内容创作的方式,被认为是继PGC(Professionally-generated Content)和UGC(User-generated Content)之后的一种新型内容创作方式。 AIGC在文字、图片、音视频、软件开发等多个领域发展迅速,近几年也有很多专注于…

    2023年6月27日
    2.7K00
  • 互动秘籍:ChatGPT对话技巧及高效使用指南

    互动秘籍:ChatGPT对话技巧及高效使用指南 人工智能已经成为我们生活和商业的重要组成部分。过去的几个月里,我们见证了AIGC工具的快速崛起,ChatGPT对我们日常活动的影响不容忽视,学习ChatGPT对话技巧对我们也是至关重要。 从虚拟助手到聊天机器人,人工智能正在变得越来越智能,拥有比以前更多的功能。这项技术改变了我们与人和机器交互的方式。 随着这种…

    2023年6月28日
    5.8K00
  • OpenAI与ChatGPT:专有名词大全,驾驭AI的关键

    OpenAI & ChatGPT专有名词对照表 以下是一个常用于Azure OpenAI的专有名词对照表。在设置模型时,我们经常会遇到这些词汇。熟悉这些专有名词可以帮助我们更快地理解模型的运作原理,并使AI的回答更加符合我们的需求。 更加进阶的参数对照表可以参考官方的文件 Azure OpenAI 服务 REST API 参考。 英文 中文/全称 描…

    2023年6月26日
    4.9K00
  • AIGC提示工程深度指南:技术、应用和未来趋势

    探索提示工程:这是一篇深入介绍人工智能中提示工程的文章,包括其起源、技术、应用和未来趋势。我们将深入讨论GPT-2和GPT-3在提示工程中的作用,以及链式思维提示技术如何改善大型语言模型的推理能力。此外,我们还将分享如何学习和提升您的提示工程技能。

    2023年6月27日
    5.8K00
  • 全面解析AIGC提示词:定义、应用与其在AI领域的影响

    全面解析AIGC提示词:定义、应用与其在AI领域的影响 什么是AIGC提示词 在大型语言模型 (LLM) 或大型模型 (LM) 的上下文中,提示词是指生成文本或其他输出的起点。提示词可以像一个句子或一个单词一样简单,也可以是一段较长的文本或一组特定的说明。 AIGC提示词为什么如此重要? 提示词是决定模型生成的输出的质量和相关性的重要组成部分。提示词作为模型…

    2023年6月27日
    1.7K00

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

电话:153-2182-7737

邮件:liyuechun@cldy.org

工作时间:周一至周日,9:30-18:30,节假日无休息

关注微信
春哥AI街坊:只要您有故事,便能用AI将您的声音传遍世界。