我试图了解如何使用
dbrx-instruct
估计 Databricks 中的令牌消耗和响应令牌计数。我想创建一个函数,可以根据我的查询以及我将收到响应的令牌数量来预测我将请求的令牌数量。此信息对于估算所产生的成本至关重要。
这是我的具体问题:
dbrx-instruct
如何估计发送和接收的代币?任何见解或例子将不胜感激。谢谢!
如官方 Databricks 博客文章中所述:
DBRX 是一种基于 Transformer 的仅解码器大语言模型 (LLM),使用下一个令牌预测进行训练。 /.../ 它使用 tiktoken 中提供的 GPT-4 标记生成器 存储库。 /.../
后来又提到了GPT-4 tokenizer:
除了更好的数据质量之外,另一个 GPT-4 可能是这种代币效率的重要贡献者 tokenizer,其词汇量很大,被认为是 特别是代币效率。
DBRX 模型(
dbrx-instruct
所属)使用 GPT-4 分词器。如果您查看如何使用 tiktoken 计算代币上的 OpenAI 食谱示例,您可以看到 GPT-4 模型使用 cl100k_base
编码。
因此,据我了解,标记化与 GPT-4 模型相同,这意味着你有两个选择:
这是对文本进行标记化的编程方式。
如果运行
get_tokens.py
,您将得到以下输出:
9
get_tokens.py
import tiktoken
def num_tokens_from_string(string: str, encoding_name: str) -> int:
encoding = tiktoken.get_encoding(encoding_name)
num_tokens = len(encoding.encode(string))
return num_tokens
print(num_tokens_from_string("Hello world, let's test tiktoken.", "cl100k_base"))
这是标记文本最快、最简单的方法。