首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >中文版大模型 Token 成本计算器

中文版大模型 Token 成本计算器

原创
作者头像
soulteary
发布于 2023-12-28 12:33:05
发布于 2023-12-28 12:33:05
1.6K0
举报

分享一个轻量的小工具,10MB 左右,能够帮助你直观的了解大模型 Token 的计算方法。

希望能够帮助到想了解或者正在规划模型 API 使用成本的你。

写在前面

之所以折腾这个小工具,是因为有朋友和我提问,大模型 API 的 Token 到底是怎么计算的。

好像是中文字符占 Token 占的多,英文占的少,有没有直观一些的工具,或者更详细一些的资料。

所以,我将 OpenAI 官方的 “tokenizer” 页面进行了汉化,并封装成了可独立运行的小工具(~10MB),让你可以更快速、方便的使用这个工具来“计算 Token”。

虽然主要是计算 GPT 3.5/4 以及之前的古老模型的,但是在 OpenAI 产品成为事实标准的现在,差不多是通用计算方案了。

汉化过的软件界面
汉化过的软件界面

我将项目开源在了 GitHub,有需要可以自取:

https://github.com/soulteary/ai-token-calculator

如果你觉得项目不错,别忘记一键三连 🌟。

工具使用

这里介绍两种使用方式,先来聊聊常规使用。

直接执行可执行文件

第一种使用方法,是从 GitHub 的发布页面 下载适合你操作系统的可执行文件,然后解压缩执行。

GitHub 自动构建好的执行程序
GitHub 自动构建好的执行程序

当我们解压缩压缩包之后,会得到 token-calc 文件。我们执行它就行 ./token-calc,默认情况下,程序会输出类似下面的日志:

代码语言:bash
AI代码解释
复制
2023/12/28 11:22:15 The PORT environment variable is empty, using the default port: 8080
2023/12/28 11:22:15 github.com/soulteary/ai-token-calculator has started 🚀

当看到类似上面的日志输出时,我们打开浏览器,访问 http://localhost:8080 ,就能够直接看到结果啦。

默认的界面
默认的界面

如果你本地的 8080 端口被占用,我们可以启动的时候在 PORT 环境变量中指定一个新的端口,比如 PORT=8090 ./token-calc

然后,再次执行程序,程序的端口就切换成了 8090 啦,将浏览器中的访问地址修改为 http://localhost:8090 即可。

使用 Docker 运行程序

我们也可以通过 Docker 来运行这个程序,相比较直接下载程序,镜像只比原始之心程序最多大 3MB,镜像整体在 10MB 尺寸。

GitHub 自动构建好的 Docker 镜像
GitHub 自动构建好的 Docker 镜像

我们可以使用下面的方式,来快速下载程序镜像:

代码语言:bash
AI代码解释
复制
docker pull soulteary/ai-token-calculator:v1.0.0

接着,执行下面的命令,就能够临时性的启动一个监听 8080 端口的服务啦:

代码语言:bash
AI代码解释
复制
docker run -p 8080:8080 soulteary/ai-token-calculator:v1.0.0

如果你想调整端口,可以修改命令中的端口,比如还是将本地的端口改为 8090

代码语言:bash
AI代码解释
复制
docker run -p 8090:8080 soulteary/ai-token-calculator:v1.0.0

如果你想持久的在系统后台运行这个服务,可以运行下面的命令:

代码语言:bash
AI代码解释
复制
docker run -d -p 8090:8080 --restart=always --name=token-calc soulteary/ai-token-calculator:v1.0.0

当你想关闭这个服务,也只需执行下面的命令就好啦:

代码语言:bash
AI代码解释
复制
docker stop token-calc

Docker Compose

相比使用命令,如果你更喜欢使用配置,可以使用下面的 docker-compose.yml 配置文件:

代码语言:yaml
AI代码解释
复制
version: "3"

services:
  web:
    image: soulteary/ai-token-calculator:v1.0.0
    ports:
      - "8080:8080"

将上面的内容保存为 docker-compose.yml,然后执行 docker compose up,不出意外,你也将看到下面的输出内容:

代码语言:yaml
AI代码解释
复制
# docker compose up     
[+] Building 0.0s (0/0)                                                                                            docker:desktop-linux
[+] Running 1/0
 ✔ Container ai-token-calculator-web-1  Recreated                                                                                  0.0s 
Attaching to ai-token-calculator-web-1
ai-token-calculator-web-1  | 2023/12/28 11:55:12 The PORT environment variable is empty, using the default port: 8080
ai-token-calculator-web-1  | 2023/12/28 11:55:12 github.com/soulteary/ai-token-calculator has started 🚀

接着,访问浏览器中的地址就可以使用啦。

关于模型 Token 的计算方式

关于 Token,虽然不同的模型有不同的计算(计费)方式,但常见的终归是这么四种:gpt2p50k_basep50k_editr50k_basecl100k_base

在 OpenAI 官方的项目 openai/tiktoken 中,我们能够找到官方是如何使用 Rust 来快速计算文本包含 Token 数量的。不过,如果你想了解具体哪些模型用上述的具体算法来进行计算,我更推荐阅读社区项目 dqbd/tiktoken的代码(dqbd/tiktoken/js/src/core.ts

代码语言:js
AI代码解释
复制
export function getEncodingNameForModel(model: TiktokenModel) {
  switch (model) {
    case "gpt2": {
      return "gpt2";
    }
    case "code-cushman-001":
    case "code-cushman-002":
    case "code-davinci-001":
    case "code-davinci-002":
    case "cushman-codex":
    case "davinci-codex":
    case "davinci-002":
    case "text-davinci-002":
    case "text-davinci-003": {
      return "p50k_base";
    }
    case "code-davinci-edit-001":
    case "text-davinci-edit-001": {
      return "p50k_edit";
    }
    case "ada":
    case "babbage":
    case "babbage-002":
    case "code-search-ada-code-001":
    case "code-search-babbage-code-001":
    case "curie":
    case "davinci":
    case "text-ada-001":
    case "text-babbage-001":
    case "text-curie-001":
    case "text-davinci-001":
    case "text-search-ada-doc-001":
    case "text-search-babbage-doc-001":
    case "text-search-curie-doc-001":
    case "text-search-davinci-doc-001":
    case "text-similarity-ada-001":
    case "text-similarity-babbage-001":
    case "text-similarity-curie-001":
    case "text-similarity-davinci-001": {
      return "r50k_base";
    }
    case "gpt-3.5-turbo-16k-0613":
    case "gpt-3.5-turbo-16k":
    case "gpt-3.5-turbo-0613":
    case "gpt-3.5-turbo-0301":
    case "gpt-3.5-turbo":
    case "gpt-4-32k-0613":
    case "gpt-4-32k-0314":
    case "gpt-4-32k":
    case "gpt-4-0613":
    case "gpt-4-0314":
    case "gpt-4":
    case "gpt-3.5-turbo-1106":
    case "gpt-35-turbo":
    case "gpt-4-1106-preview":
    case "gpt-4-vision-preview":
    case "text-embedding-ada-002": {
      return "cl100k_base";
    }
    default:
      never(model);
      throw new Error("Unknown model");
  }
}

上面的配置就是实际我们在使用各种模型时候,Token 的计算方式了,某种程度上来看,也是我们的模型 API 使用成本的计算方式。

当然,实际使用的时候,各种程序或多或少还会按照自己的习惯添加几个字符,所以如果我们的模型有一个具体的字符限制,建议稍微留有 10~20 字符的余量,避免程序出错。

最后

这篇文章,就先写到这里吧。

--EOF


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2023年12月28日

统计字数: 4418字

阅读时间: 9分钟阅读

本文链接: https://soulteary.com/2023/12/28/chinese-version-of-large-model-token-cost-calculator.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI大模型全栈工程师课程笔记 - 提示词工程
课程学习自 知乎知学堂 https://www.zhihu.com/education/learning
Michael阿明
2023/11/18
5150
AI大模型全栈工程师课程笔记 - 提示词工程
OpenAI突发更新!GPT-3.5正式开放「微调」,人人可打造专属ChatGPT|附最全官方指南
刚刚,OpenAI正式宣布,所有开发者都可以对GPT-3.5 Turbo进行微调。
新智元
2023/09/09
1.5K0
OpenAI突发更新!GPT-3.5正式开放「微调」,人人可打造专属ChatGPT|附最全官方指南
如何构建Embedding?如何构建一个智能文档查询助手?
嵌入(embedding)是指将高维数据映射为低维表示的过程。在机器学习和自然语言处理中,嵌入通常用于将离散的符号或对象表示为连续的向量空间中的点。
山行AI
2023/08/10
1.1K0
如何构建Embedding?如何构建一个智能文档查询助手?
[AI OpenAI-doc] 弃用
随着我们推出更安全、更功能强大的模型,我们定期淘汰旧模型。依赖OpenAI模型的软件可能需要偶尔更新以保持正常工作。受影响的客户将始终通过电子邮件和我们的文档以及博客文章(针对较大的更改)收到通知。
从零开始学AI
2024/05/20
2040
[AI OpenAI-doc] 弃用
基于GPT搭建私有知识库聊天机器人(一)实现原理
本系列代码已上传至github:https://github.com/sslovett/llm-application.git
夕阳也是醉了
2023/10/16
2.1K1
基于GPT搭建私有知识库聊天机器人(一)实现原理
研究人员模型索引-OpenAI API系统快速入门
模型一般用于研究目的和生产中的开发人员使用。研究人员经常从已发表的论文中了解OpenAI的模型,但OpenAI API中可用的内容与论文中发表的内容之间通常没有完全匹配。
jack.yang
2025/04/05
740
OpenAI王炸!「代码解释器」下周正式上线,GPT-4 API全面开放
从今年3月份开始,数以百万计的开发者都向OpenAI提出了申请,想要访问GPT-4的API。
新智元
2023/08/07
3150
OpenAI王炸!「代码解释器」下周正式上线,GPT-4 API全面开放
使用本地大模型调用代码,根本就是一场骗局!
通过大模型调用其他工具到底可不可行?ChatGPT 或许能轻松搞定一切,但同样的需求落在本地大模型上,恐怕就要打个问号了。 法国开发工程师 Emilien Lancelot 尝试了多款号称具备工具调用功能的 agent 框架,来看看本地大模型到底能不能完成任务,但结果就像他总结的“一无所获”。是什么让这位工程师失望了?
深度学习与Python
2024/06/17
8530
使用本地大模型调用代码,根本就是一场骗局!
干货!什么是微调(fine-tuning)? 如何微调GPT-3.5 模型?
Fine-tuning (微调) 是一个可以有效让ChatGPT 输出符合我们预期的方法。最近OpenAI 发表了GPT-3.5 模型的微调功能。在这一篇介绍文中,我们会先介绍微调的概念,接着讲解OpenAI 的Fine-tuning API 如何使用,最后会有实际的范例来讲解可以如何做好微调这件事。
一个正经的AI
2024/01/22
3.6K0
干货!什么是微调(fine-tuning)? 如何微调GPT-3.5 模型?
OpenAI模型微调快速入门
官方文档:https://platform.openai.com/docs/guides/fine-tuning
码之有理
2023/12/11
1.2K0
chatgpt api基础使用示例
url: POST https://api.openai.com/v1/completions
Alan_1
2023/05/05
6610
实测 | GPT 3.5系列模型选择指南:面试、英文邮件、直播、周报、简历5个场景下性价比如何?
 机器之心专栏 本专栏由机器之心「SOTA!模型」资源站出品 GPT 3.5 系列中哪个模型表现最好? GPT 3.5 系列在常见应用任务中实际表现如何?  GPT 3.5 模型回答不同的问题一般都需要多少成本? 本期「SOTA!实测」我们使用 OpenAI 提供的 API,在面试、邮件、直播、周报、简历等五个场景下的一系列应用任务上,对 GPT-3.5 系列的gpt-3.5-turbo,text-davinci-003及text-davinci-002这三个不同模型的推理消耗、及推理效果两个维度进行对比实
机器之心
2023/05/09
8350
实测 | GPT 3.5系列模型选择指南:面试、英文邮件、直播、周报、简历5个场景下性价比如何?
[AI OpenAI-doc] 微调
OpenAI 的文本生成模型已经在大量文本上进行了预训练。为了有效地使用这些模型,我们在提示中包含了说明和有时几个示例。使用示例来展示如何执行任务通常被称为 "少样本学习"。
从零开始学AI
2024/04/20
3040
[AI OpenAI-doc] 微调
字节“开盒”OpenAI所有大模型,揭秘GPT-3到GPT-4进化路径!把李沐都炸出来了
创业后忙得不可开交的AI大牛李沐看完,也久违地出现在公众视野,并给这项研究点了个赞。
量子位
2023/11/07
4820
字节“开盒”OpenAI所有大模型,揭秘GPT-3到GPT-4进化路径!把李沐都炸出来了
开发自己私有chatGPT(五)训练微调openai模型
GPT-3 已经对来自开放互联网的大量文本进行了预训练。当给出一个只有几个例子的提示时,它通常可以直观地判断你正在尝试执行什么任务并生成一个合理的完成。这通常被称为“少镜头学习”。
唯一Chat
2023/02/28
5.2K1
刚刚!OpenAI 开放 GPT-3.5 微调 API,手把手教你打造专属 ChatGPT
换句话说,之前用户在结合业务用例构建专属ChatGPT时候,需要使用大量的Propmt调教模型进行上下文学习。现在只需要四步即可打造自己的专属模型:准备数据→上传文件→创建微调工作→使用微调模型。
大数据文摘
2023/09/06
2.5K0
刚刚!OpenAI 开放 GPT-3.5 微调 API,手把手教你打造专属 ChatGPT
3分钟快速构建大语言模型AI知识库
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
Tinywan
2023/11/27
1.7K1
3分钟快速构建大语言模型AI知识库
OpenAI 开放 GPT-3.5 Turbo 微调,网友:将prompt减少90%才实惠
当地时间 8 月 22 日,OpenAI 宣布企业现在可以使用自己的数据对 GPT-3.5 Turbo 进行微调,OpenAI 声称最终的定制模型可以赶上甚至超过 GPT-4 执行某些任务的能力。今年秋天 OpenAI 将开放更先进的 GPT-4。
深度学习与Python
2023/09/08
6760
OpenAI 开放 GPT-3.5 Turbo 微调,网友:将prompt减少90%才实惠
ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!
机器之心发布 作者:符尧、彭昊、Tushar Khot、郭志江等 符尧(yao.fu@ed.ac.uk),爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学。他与彭昊、Tushar Khot在艾伦人工智能研究院 (Allen Institute for AI) 共同完成英文原稿,与剑桥大学郭志江共同翻译为中文。 感谢上海交通大学何俊贤,加州大学洛杉矶分校鲁盼,达特茅斯学院刘睿博对初稿的讨论与建议。感谢 Raj Ammanabrolu (Allen Institute
机器之心
2023/03/29
7460
ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!
OpenAI开放大模型微调功能!上传自己数据就可定制GPT-3.5Turbo,开发者狂喜
早期测试表明,经过微调的GPT-3.5 Turbo版本在某些任务中甚至可以超越GPT-4。
量子位
2023/09/08
5720
OpenAI开放大模型微调功能!上传自己数据就可定制GPT-3.5Turbo,开发者狂喜
推荐阅读
相关推荐
AI大模型全栈工程师课程笔记 - 提示词工程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档