2026年5月3日 星期日

氣泡圖挑選性價比最佳的租賃 LLM

AWS BedRock 眾模型性價比 你挑了一個 LLM 租賃服務, 它提供很多模型。 該怎麼選? 我就拿 aws 的 bedrock 為例來解說資料視覺化 (散點圖/氣泡圖) 如何幫我們挑選性價比最佳的 LLM。 這些步驟應該也大致適用於比較整理其他 (來自同一家) 供應商的模型清單 - 只要你可以先建立一個 csv 檔列出該廠商提供的所有選項, 類似 我為 bedrock 建立的 bedrock-pricing.csv

首先根據模型名稱排序一下, 觀察同一模型 (例如 gpt-oss-20b) 的諸多不同選項:

...
OpenAI,gpt-oss-20b,,0.0002000000,EUC1-gpt-oss-20b-output-tokens-flex
OpenAI,gpt-oss-20b,,0.0002000000,EUS1-gpt-oss-20b-output-tokens-batch
OpenAI,gpt-oss-20b,,0.0002000000,EUS1-gpt-oss-20b-output-tokens-flex
OpenAI,gpt-oss-20b,,0.0002300000,EUW2-gpt-oss-20b-output-tokens-batch
OpenAI,gpt-oss-20b,,0.0002350000,EUW2-gpt-oss-20b-output-tokens-flex
OpenAI,gpt-oss-20b,,0.0003000000,EUN1-gpt-oss-20b-output-tokens
OpenAI,gpt-oss-20b,,0.0003000000,USE1-gpt-oss-20b-output-tokens
OpenAI,gpt-oss-20b,,0.0003000000,USE2-gpt-oss-20b-output-tokens
OpenAI,gpt-oss-20b,,0.0003000000,USW2-gpt-oss-20b-output-tokens
...

以 aws 的收費方式還有我的初學者情境來說, 要挑的就是最便宜的 "flex"。 實際使用時要考慮 ouput 及 input, 不過我就偷懶假設兩者大致等比例連動。 那就以價格較高的 ouput 為主好了。 grep 'output.*flex' bedrock-pricing.csv > output-flex.csv 資料量從一萬多列降到一千多列。 再用 grep gpt-oss-20b output-flex.csv 查看, 發現造成重複的變數現在只剩: 各區伺服器有不同的定價。

...
OpenAI,gpt-oss-20b,flex,0.0001545000,APS2-openai.gpt-oss-20b-mantle-output-tokens-flex
OpenAI,gpt-oss-20b,flex,0.0001800000,APN1-openai.gpt-oss-20b-mantle-output-tokens-flex
OpenAI,gpt-oss-20b,,0.0001550000,APS4-gpt-oss-20b-output-tokens-flex
OpenAI,gpt-oss-20b,flex,0.0001500000,USW2-openai.gpt-oss-20b-mantle-output-tokens-flex
OpenAI,gpt-oss-20b,,0.0002000000,EUC1-gpt-oss-20b-output-tokens-flex
...

於是我截取部分的資料丟給 AI 看, 叫它寫一個 python 程式, 按照模型名稱 (第二欄) 分組, 並且以每一組的 P25 (第25百分位數, 也就是每一組的較便宜那一半的中位數) 作為該組的價格。 輸出時, 每一組印一列, 包含供應商、模型名稱、價格*1e6、該組資料共幾筆。 現在只剩 44 列, 像這樣:

Provider,Model,Price,count
Amazon,Nova 2.0 Lite,1360,39
Amazon,Nova 2.0 Omni,1400,66
Amazon,Nova 2.0 Pro,5420,31
Amazon,Nova Premier,6250,3
Amazon,Nova Pro,1680,24
DeepSeek,DeepSeek V3.1,840,20
DeepSeek,DeepSeek v3.2,955,26
Google,Gemma 3 12B,150,22
Google,Gemma 3 27B,190,22
...

這樣的資料已經少到可以直接餵給 AI。 叫它新增一個 suitability 欄位, 為每個模型打一個 (AI 自己想的) 0-100 分之間的主觀分數, 評斷依據是我所需要的應用面向。 (寫程式/部落格編輯/投資分析師之類的) 成果: br26.csv + 互動散點圖。 (可以選取一小塊區域以便放大) 橫軸是價格的對數; 縱軸是適用度 (性能); 圈圈大小是有多少個區域提供此模型。 性價比最理想的是左上角的圈圈。 最後這個動作我叫 gemini 重做了好幾次, 每次出來的結果差不多。 以我目前做實驗的等級來看, 大約選 Nemotron Nano 3 30B、 gpt-oss-20b 或 Gemma 3 12B 就可以了。

註: 科技報導/科學月刊這篇 「多快好省」的大型語言模型? DeepSeek的優勢、 爭議與國安隱憂 裡面的插圖 (互動版) 就是採用類似的設定畫出來的。

最後再回到原始的價格清單 bedrock-pricing.csv、 撈出想要的模型約二十幾筆資料、 按價格排序, 挑出有提供此模型的最便宜區域, 像這樣: (head -n 1 bedrock-pricing.csv ; perl -ne 's#\b(0.00\d+)\b#$1*1e6#e; print if /nemotron-nano-3-30b.*-output.*flex/i' bedrock-pricing.csv | sort -t, -nk 4) > nemotron-nano-3-30b.csv

然後啊, 因為 我對 gemini 的設定 裡面要求它輸出時盡量用學術關鍵詞/術語, 所以也順便學到一個名詞 "Pareto Frontier", 也就是我的圖中左上方那一排模型: 「都是算最佳解, 各有不同的取捨」。 再次證明: 有些觀念/想法是很自然的、 很多人都有可能在不知道彼此的狀況下, 各自 "重新發明"。

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。