在自然语言处理中,token可以简单理解为一句话或一段文字被切分成的小“单元”。这些单元通常是词、子词、甚至单个字符。具体切分方式视情况而定,例如句子中的标点符号、空格、单词等都可能成为一个token。
打个比方:假设我们有一句话,“我喜欢编程”,用token化处理后可能会变成三个token: “我”、 “喜欢”、 “编程” 。
Token的切分是语言模型理解和处理文本的基础,因为模型会将每个token转化成数字向量,进而在向量空间中进行计算。模型对这些token的组合和顺序进行分析,从而“理解”句子的大意。这也是为什么token在模型处理文本时起着重要作用。
在coze的使用中,有用户疑问,为什么简单的一次对话,消耗了我这么多的tokens。
于是,带着这个疑问,我们点开了调试界面
好家伙,调试界面怎么还消耗了更多的tokens呢???
首先理解:输入与输出都是会消耗tokens的。
Coze的核心能力就是大模型,有很多中间环节的处理使用了大模型的能力,产生了消耗。
其中比较典型的场景就是使用知识库:
知识库会按照设置把相关的召回内容喂给大模型做参考来回复,这会让输入 tokens 明显增加。
因为我开启了自动调用知识库,所以我的每一个问题都会召回固定数量的知识库内容,但大模型判断这些内容与我的问题无关,最终没有采用。
除此以外:调用插件、工作流中使用llm模型节点、bot最后的回复总结,都会产生tokens消耗。
但,真正产生费用的消耗,只有您在方舟平台开通并且使用的模型,对应图中的
Doubao-pro-32k/functioncall-preview
调用 LLM_suggest 产生的 tokens 消耗,是不计费的。
这也是调试界面与对话界面 tokens 消耗不一致的原因,调试界面是累加了所有模型节点的 tokens 消耗
而您,只需要关注开通模型的消耗即可,也就是对话中的tokens消耗。