Azure OpenAI Service 06 - Open AI 費用說明和計算

OpenAI 可以讓我們很方便快速的串接跟做出一些相關的應用,用使用的很開心之餘,還是要面對一下費用,不然一不小心可能就讓費用超出預算太多了,比如前陣子一個熱門的專案 Auto-GPT 只需要給它初始的目標,它就會自動的對話然後產生出結果,因為它會自動的一直呼叫 API 來產生最後的結果,所以可能一次的結果就呼叫了很多次的 API 導致產生的費用超出想像,所以還是瞭解一下計算方式以及費用,就比較容易在成本和預算的考量下挑選出最適合的模型。

說明

以下表格 Azure Open AI Service 皆以 Azure 簡稱,OpenAI 則為 openai.com 提供的 API,費用皆以美金為主, Azure 則是美國東部資料中心 (目前有提服務的資料中心費用皆相同)

在我們呼叫 API 的結果通常都會包含 usage 的資料,而且也會分成 promot、completion、total,我們可以針對這些資料將使用的 Token 數記錄下來,方便事後驗算或是提供付費服務時候可以作為收費的參考依據。

{
    "usage": {
        "completion_tokens": 312,
        "prompt_tokens": 89,
        "total_tokens": 401
    }
}

一般模型

2023/07/22 更新價錢,目前皆只剩下 GPT-3.5 價錢,Azure 目前價錢還沒有把提示跟完成分開計費。

GPT-3.5 Turbo

Azure

 PromptCompletion
GPT-3.5-Turbo-Instruct$0.0015 / 1K Tokens$0.002 / 1K Tokens
GPT-3.5-Turbo-0125$0.003 / 1K Tokens$0.004 /1 K Tokens

OpenAI

 PromptCompletion
gpt-3.5-turbo-0125$0.50 / 1M tokens$1.50 / 1M tokens
gpt-3.5-turbo-instruct$1.50 / 1M tokens$2.00 / 1M tokens

GPT-4

GPT-4 則兩個服務費用都一致,但是和前面的費用計算上會把 Prompt 和 Completion 分開計算,所以前面提到的 usage 中也是有分別的 Token 數。

 PromptCompletion
8K 內容$0.03 / 1K Tokens$0.06 / 1K Tokens
32K 內容$0.06 / 1K Tokens$0.12 / 1K Tokens

GPT-4 Turbo

兩邊模型的價錢都一樣。

 PromptCompletion
GPT-4-Turbo$0.01 / 1K Tokens$0.03 / 1K Tokens
GPT-4-Turbo-Vision$0.01 / 1K Tokens$0.03 / 1K Tokens

影像模型

這邊的費用計算上略有不同, Azure 僅提供一個費用,且為每 100 張圖片來計費,換算下來和 OpenAI 是一致的,但是要注意的是 Azure 上面並非每一個資料中心都有支援該模型或解析度,需要自行針對需求去找適合的資料中心來使用模型。

Azure

ModelQualityResolutionPrice (每 100 張圖片)
DALL·E 3Standard1024×1024$4
DALL·E 3Standard1024×1792, 1792×1024$8
DALL·E 3HD1024×1024$8
DALL·E 3HD1024×1792, 1792×1024$12
DALL·E 2Standard1024×1024$2

OpenAI

ModelQualityResolutionPrice
DALL·E 3Standard1024×1024$0.040 / image
DALL·E 3Standard1024×1792, 1792×1024$0.080 / image
DALL·E 3HD1024×1024$0.080 / image
DALL·E 3HD1024×1792, 1792×1024$0.120 / image
DALL·E 2 1024×1024$0.020 / image
DALL·E 2 512×512$0.018 / image
DALL·E 2 256×256$0.016 / image

內嵌模型

目前在 OpenAI 費用頁面僅剩下 Ada 模型的費用,而不管在 Azure 或是 OpenAI 都建議使用新的 v2 版的內嵌模型 text-embedding-ada-002,結果會比 v1 的結果還好,也不像 v1 版還會按照功能分為相似度、文字搜尋、程式碼搜尋只需要使用同一個模型即可。

 Ada v2text-embedding-3-smalltext-embedding-3-large
Azure$0.0001 / 1K tokens$0.00002 / 1K tokens$0.00013 / 1K tokens
OpenAI$0.10 / 1M tokens$0.02 / 1M tokens$0.13 / 1M tokens

微調模型

在微調模型的計費上面兩個服務的計算上就差異比較多了, Azure 會將費用分為三個:呼叫、訓練、託管,而 OpenAI 則只有呼叫和訓練兩個費用。

呼叫

在呼叫的費用上面兩個服務的差距就比較大, OpenAI 在呼叫上費用會比較高,原因是把託管的費用也算進去了,而 Azure 就會相對比較便宜。

訓練

在訓練的費用計算上 OpenAI 使用的計費單位是 1K Tokens ,但 Azure 則是每小時,這邊就會比較難預估費用,因為會按照輸入的資料大小影響到訓練的時間,得訓練之後才有辦法得到訓練所花的時間,不像 OpenAI 用 Token 來計算,就會比較容易預先估算。

託管 (部署)

OpenAI 把託管的費用也算到呼叫的費用內,故沒有此費用產生。而 Azure 此費用的產生會在模型部署之後開始產生,我們在訓練完模型之後可以在要使用模型的時候再部署,就不會一直產生託管的費用,而在非使用中狀態連續 15 天 Azure 就會自動刪除部署,避免一直產生費用。

連續 15 天期間內未對自訂模型進行完成或聊天完成呼叫,則自訂模型的部署為「非作用中」

Azure

 GPT-3.5-Turbo (4K)GPT-3.5-Turbo (16K)Davinci-002Babbage-002
訓練 (每計算時數)$45$68N/AN/A
託管 (每小時)$3$3N/AN/A
輸入 (1K Tokens)$0.0015$0.003N/AN/A
輸出 (1K Tokens)$0.002$0.004N/AN/A

OpenAI

 gpt-3.5-turbodavinci-002babbage-002
訓練 (1K Tokens)$8.00 / 1M tokens$6.00 / 1M tokens$0.40 / 1M tokens
輸入 (1K Tokens)$3.00 / 1M tokens$12.00 / 1M tokens$1.60 / 1M tokens
輸出 (1K Tokens)$6.00 / 1M tokens$12.00 / 1M tokens$1.60 / 1M tokens

語音模型

  
Whisper每小時 $0.36 (Azure) / 每分鐘$0.006 / minute (OpenAI)
TTS (文字轉換語音)$15.00 / 1M characters
TTS HD$30.00 / 1M characters

察看使用量和費用

Azure

在 Azure 上可以透過計量的功能來察看呼叫的次數,在計量的度量維度上可以選擇 USAGE 裡面的項目來察看使用狀態,以下圖為例就是選擇了 Processed Prompt Tokens 和 Generated Completion Tokens 兩個項目。

而在費用上則可以使用成本分析來察看目前的費用狀況,因我的訂閱不會顯示費用,故無法展示成本分析裡面的話面呈現了。

OpenAI

OpenAI 在使用量和費用上可以在管理後台中的 Usage 察看目前的費用和 API 呼叫情形,也可以列出所有呼叫的 API 察看使用的 Token 數,會相對 Azure 上來的直觀。

結論

雖然 GPT-4 最為強大,結果也較佳,但是相對費用也會較高,所以在選擇模型跟成本間的考量就會很重要,不然可能就會產生過多不必要的費用,比如說做的服務非聊天機器人類型,那可能使用一般模型就足夠了,而針對使用情境來挑選模型可以參考之前的文章「Azure OpenAI Service 01 - Azure OpenAI 模型介紹」。

而在 Azure 和 OpenAI 的費用上大部分都是一致的,但是 Azure 對於企業使用上,在資安、高可用性、監控等機制上, Azure 就會相對 OpenAI 來的好,而如果想用最新的模型或功能,都會是 OpenAI 先推出,之後 Azure 才會推出,所以選擇哪一個服務來使用 OpenAI 就得根據使用情境和企業內部規定來選擇了。 

參考資料