さくらの AI Engine API の性能検証
gpt-oss-120b や Qwen3-Coder-480B など新しめのオープンウェイトLLMが国内サーバーで(無料枠内は)無料で使えます、ということなので試してみました。
利用手順
初めての利用なので、 https://www.sakura.ad.jp/aipf/ai-engine/ にしたがって会員登録し、プロジェクトを作成します。
コントロールパネルはこんな感じ。とりあえず基盤モデル無償プランを選びます。
「アカウントトークン」というメニューが現れるので、「アカウントトークンの作成」を選択。
「アカウントトークン名」を入力し、「作成する」を押すと、トークンが発行されます。ここで表示されるトークンはローカルに保存しておきます。
トークン発行画面を閉じると、次のような画面に遷移します。モデルごと・トークンごとに利用量がグラフで確認できるようです。
こんな感じで API をたたいてみます。
# export API_KEY=(先ほど発行されたトークン)
curl https://api.ai.sakura.ad.jp/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${API_KEY}" \
-d '{"model": "gpt-oss-120b","messages": [{"role": "user", "content": "素数を列挙するアルゴリズムを説明して"}]}'
下記のような json が返ってきました。正しく動作していそうなのがわかります。
{
"id": "chatcmpl-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "chat.completion",
"created": xxxxxxxxxxxxx,
"model": "gpt-oss-120b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "## 素数を列挙する代表的なアルゴリズム\n\n...",
"refusal": null,
"annotations": null,
"audio": null,
"function_call": null,
"tool_calls": [],
"reasoning_content": "The user asks in Japanese: ..."
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null,
"token_ids": null
}
],
"service_tier": null,
"system_fingerprint": null,
"usage": {
"prompt_tokens": 84,
"total_tokens": 3562,
"completion_tokens": 3478,
"prompt_tokens_details": null
},
"prompt_logprobs": null,
"prompt_token_ids": null,
"kv_transfer_params": null
}
グラフもきちんと伸びていることがわかります。(図は4回利用した後)
性能
モデルの賢さについては https://artificialanalysis.ai/ 等に出ている通り(のはず)なので、ここでは API としての性能を確認してみます。
コストパフォーマンス
同様の API を提供しているプロバイダは https://openrouter.ai/ で比較されているので、こちらのデータとコストパフォーマンスを比較します。
openrouter から取得したコストパフォーマンスと、さくらの AI Engine のコスト、今回測定したスループットをまとめると下記のグラフのようになります。
(さくらの AI Engine を赤点、他社を青点で示しています。左に行くほど安く、上に行くほど速いので、左上にあるとコスパが良い、というグラフです)
このグラフから、速度・価格帯いずれも他のプロバイダと近く、大きな有利・不利はないように見えます。やり取りするデータが国内に閉じておりモデル学習等に利用されないことと、円建てで支払いできることを考えると悪くない選択肢なのではと思います。
コンテキスト長
gpt-oss-120b は 128K token, Qwen3-Coder-480B は 256K token の長さの入出力がサポートされていますが、プロバイダによってはコンテキスト長に(モデル側の制限より厳しい)制限を加えているところがあります。
さくらの AI Engine のドキュメントには、コンテキスト長が記載されていないようだったので、実際に長い文章を入力して確認してみます。
Qwen3-Coder-480B は、128K token に制限がされていました。128K token を超える入力のときはエラーが発生します。
$ echo "{\"model\": \"Qwen3-Coder-480B-A35B-Instruct-FP8\",\"messages\": [{\"role\": \"user\", \"content\": \"$(python prime.py 400000)\"}]}" | curl https://api.ai.sakura.ad.jp/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer ${API_KEY}" -d @-
{"error":{"message":"This model's maximum context length is 131072 tokens. However, your request has 226009 input tokens. Please reduce the length of the input messages. None","type":"BadRequestError","param":null,"code":400},"model":"Qwen3-Coder-480B-A35B-Instruct-FP8"}
一方で、 gpt-oss-120b はモデル側の 128K token 制限いっぱいまでサポートされていました。(ただし、 128K token を超える入力をしたときは上記と異なるエラーになります)
$ time echo "{\"model\": \"gpt-oss-120b\",\"messages\": [{\"role\": \"user\", \"content\": \"$(python prime.py 800000)\"}]}" | curl https://api.ai.sakura.ad.jp/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer ${API_KEY}" -d @-
{"error":{"message":"max_tokens must be at least 1, got -60681.","type":"BadRequestError","param":null,"code":400},"model":"gpt-oss-120b"}
まとめ・感想
- ドキュメントに従って問題なく利用開始できた
- ただし、会員ID, プロジェクト作成はもう少しスムーズにできると良かった
- スループット、価格、コンテキスト長ともに標準的な設定
- 同じモデルの API を利用しているなら置き換えは簡単そう
- 月に 3000 リクエストの無料枠はお試しとしては十分
- 無償プランは申し込み数に上限あり、とのことなので早めに申し込むのがよさそう
- 新しいモデルが出たときの対応速度や、他のモーダルへの対応とかが気になる
- Qwen シリーズも Qwen3-VL, Qwen3-Omni, Qwen3-Next など新しいモデルが出ている
- 画像生成 (FLUX.1-schnell) ・動画生成 (Wan2.2) なども対応されるとうれしい
Discussion