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
Prompt | Completion | |
---|---|---|
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
Prompt | Completion | |
---|---|---|
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 數。
Prompt | Completion | |
---|---|---|
8K 內容 | $0.03 / 1K Tokens | $0.06 / 1K Tokens |
32K 內容 | $0.06 / 1K Tokens | $0.12 / 1K Tokens |
GPT-4 Turbo
兩邊模型的價錢都一樣。
Prompt | Completion | |
---|---|---|
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
Model | Quality | Resolution | Price (每 100 張圖片) |
---|---|---|---|
DALL·E 3 | Standard | 1024×1024 | $4 |
DALL·E 3 | Standard | 1024×1792, 1792×1024 | $8 |
DALL·E 3 | HD | 1024×1024 | $8 |
DALL·E 3 | HD | 1024×1792, 1792×1024 | $12 |
DALL·E 2 | Standard | 1024×1024 | $2 |
OpenAI
Model | Quality | Resolution | Price |
---|---|---|---|
DALL·E 3 | Standard | 1024×1024 | $0.040 / image |
DALL·E 3 | Standard | 1024×1792, 1792×1024 | $0.080 / image |
DALL·E 3 | HD | 1024×1024 | $0.080 / image |
DALL·E 3 | HD | 1024×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 v2 | text-embedding-3-small | text-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-002 | Babbage-002 | |
---|---|---|---|---|
訓練 (每計算時數) | $45 | $68 | N/A | N/A |
託管 (每小時) | $3 | $3 | N/A | N/A |
輸入 (1K Tokens) | $0.0015 | $0.003 | N/A | N/A |
輸出 (1K Tokens) | $0.002 | $0.004 | N/A | N/A |
OpenAI
gpt-3.5-turbo | davinci-002 | babbage-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 就得根據使用情境和企業內部規定來選擇了。