使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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