使用Azure OpenAI模型与您自己的数据时,prompt_token的使用是否会影响我的账单?

我已经设置了Azure OpenAI on my data,并使用Chat with Azure OpenAI models using your own data。我的目标是减少每次请求中的token使用量。

然而,我注意到即使我在没有发送任何提示的情况下发送用户内容时,也会出现额外的prompt_token使用。例如,如果我只发送文本hello there,结果总共使用了2628个tokens,而实际上应该只有24个。如果提供更长的文本(7个单词)且没有提示,结果总共约为3.4k个tokens。

示例:

[{'role': 'system', 'content': ''}, {'role': 'user', 'content': 'hello there'}]total_tokens: {'completion_tokens': 24, 'prompt_tokens': 2604, 'total_tokens': 2628}----------------------------------------------------[{'role': 'system', 'content': ''},{'role': 'user', 'content': 'I worked overtime what should I do?'}]total_tokens: {'completion_tokens': 52, 'prompt_tokens': 3334, 'total_tokens': 3386}

如您所见,在总token下,我看到prompt_token的使用接近3.5k。既然我没有提供任何提示或系统消息,prompt_token的使用从何而来?使用Azure OpenAI模型与您自己的数据的整个目的是不是为了减少token的使用?每次请求额外的3.5k token非常昂贵。这会影响我的账单吗?prompt_token会被视为输入tokens的一部分吗?


Pricing/details/cognitive-services/openai-service/指出,Input (Per 1,000 tokens)的费用为$0.0025,那么我理解为4,000 tokens的费用应为$0.01


回答:

当他们“使用你的数据”时,确实有一些神奇的事情在发生;这基本上是检索增强生成(Retrieval Augmented Generation,简称RAG)。基本上,除了你的提示文本之外,还有几个额外的步骤。

他们在这里解释得很清楚

总共,对模型进行了两次调用:

用于处理意图:意图提示的token估计包括用户问题、对话历史以及发送给模型用于生成意图的指令的token。

用于生成响应:生成提示的token估计包括用户问题、对话历史、检索到的文档块列表、角色信息以及发送给模型用于生成的指令的token。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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