LLMを使った機能を本番に出す前に、同じ入力で effort だけ変えて測りました。
結果として medium を採用したので、数字を残します。
測ったもの
同じ記事・同じプロンプトで、effort だけを変えて比較しました。
| effort | 出力トークン | 原価 | 所要 |
|---|---|---|---|
| high(既定) | 4,948 | 21.6円 | 70秒 |
| medium | 1,814 | 9.8円 | 31秒 |
55%安く、56%速い。 そして質は落ちませんでした。
出力を並べて読み比べたのですが、対象読者の絞り方はむしろ medium のほうが鋭かったです。
high は同じことを長く書いている部分がありました。
low も測りましたが、出力に英単語が混入したり表記が崩れたりしたので不採用にしました。
価格差も medium から数円で、リスクに見合いませんでした。
「既定のまま」が一番高い
言いたいのはこれです。effort は既定が最重量です。
何も指定しなければ high 相当で動き、原価も所要時間も倍になります。
個人開発だと1本あたりの原価がそのまま採算に効きます。
このツールは980円の買い切りで9本生成するので、1本21.6円だと原価194円、
16.8円なら151円。同じ売価で粗利が43円変わります。
出力量を増やしたら戻った
その後、機能を足したら出力が倍になりました。
| medium の構成 | 出力トークン | 原価 | 所要 |
|---|---|---|---|
| 項目が少なかった頃 | 1,814 | 9.8円 | 31秒 |
| 項目を足したあと | 3,503 | 16.8円 | 66秒 |
effort を下げても、出させる項目を増やせば戻ります。 当たり前ですが、
一度測って安心すると気づきません。項目を足したら測り直すのを手順に入れました。
max_tokens を下げてはいけなかった
コスト削減のつもりで max_tokens を絞ると、構造化出力が途中で切れて生成そのものが失敗します。
実測の出力が3,503トークンなので、上限は5,000にしています。
監査で3,000への引き下げを勧められましたが、従いませんでした。
max_tokens は上限であって課金額ではないので、下げても安くはなりません。
失敗して再生成するほうが高くつきます。
66秒はホスティングの制限に当たる
最後に運用の話です。66秒はVercelのHobbyプランの60秒上限を超えます。
Proにして maxDuration = 300 を明示することで通していますが、
「速さ」はコストだけでなくデプロイ先の制約にも効いてきます。
effort を測るときは、所要時間も一緒に見ておくと後で困りません。
測ったのは リライトレーダー というツールの実装中です。