0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

各種LLM APIの負荷試験してみた ― OpenAI / Azure OpenAI / Groq 比較

0
Last updated at Posted at 2026-05-03

はじめに

LLMをプロダクションで使う際、「このAPIは高負荷でどれくらい耐えられるのか?」「レイテンシはどう変わるのか?」を事前に把握しておくことは非常に重要です。

本記事では、オープンソースの負荷試験ツール k6 を使って、以下3プロバイダー・8モデルに対してストレステストを実施し、結果を比較します。

📊 テスト結果の詳細は下記のダッシュボードでも確認できます。
👉 https://llm-performance-check.web.app

プロバイダー モデル
OpenAI gpt-5.4, gpt-5.4-mini, gpt-5.4-nano
Azure OpenAI gpt-5.4, gpt-5.4-mini, gpt-5.4-nano
Groq gpt-oss-120b, gpt-oss-20b

テスト環境・構成

使用ツール

  • k6 : GoベースのOSSパフォーマンステストツール
  • Node.js : スクリプト補助

テスト設定

  • 最大同時ユーザー数(VU): 20
  • テスト種別: ストレステスト(段階的に負荷を増加)
  • チェック項目: ステータスコード 200 / choices フィールドの存在確認
  • エラー率閾値: rate < 0.05(5%未満)

スクリプト構成

scripts/
├── per-model/
│   ├── openai-gpt-5-4.js
│   ├── openai-gpt-5-4-mini.js
│   ├── openai-gpt-5-4-nano.js
│   ├── azure-gpt-5-4.js
│   ├── azure-gpt-5-4-mini.js
│   ├── azure-gpt-5-4-nano.js
│   ├── groq-gpt-oss-120b.js
│   └── groq-gpt-oss-20b.js
└── run-all-models.sh   # 全モデル一括実行

モデルごとにスクリプトを分離し、シェルスクリプトで一括実行できる構成にしました。


テスト結果

主要メトリクス一覧

モデル 平均レイテンシ (avg) p90 p95 最大 リクエスト数 スループット (req/s) エラー率
Groq OSS 20B 218 ms 247 ms 253 ms 537 ms 1,978 13.1 0% ✅
Groq OSS 120B 275 ms 281 ms 295 ms 749 ms 1,884 12.4 0% ✅
OpenAI gpt-5.4-mini 1,089 ms 1,356 ms 2,025 ms 3,181 ms 1,155 7.6 0% ✅
OpenAI gpt-5.4-nano 1,198 ms 1,526 ms 2,124 ms 2,569 ms 1,099 7.2 0.18% ✅
OpenAI gpt-5.4 1,959 ms 2,468 ms 2,692 ms 4,599 ms 823 5.3 0.12% ✅
Azure gpt-5.4-nano 1,199 ms ※成功のみ 1,347 ms 1,389 ms 2,176 ms 1,389 9.1 41%
Azure gpt-5.4 3,431 ms 6,274 ms 7,454 ms 11,871 ms 555 3.7 0% ✅
Azure gpt-5.4-mini 472 ms ※成功のみ 1,479 ms 1,599 ms 2,099 ms 1,646 10.9 69%

考察

1. Groq が圧倒的に速い

Groq の OSS モデルは、平均レイテンシが 200〜275ms と群を抜いて高速です。
p95 でも 300ms以下 を維持しており、20 VU のストレス環境でもエラー率 0% を達成しています。

これは Groq が独自開発した LPU(Language Processing Unit) によるもので、推論に特化したハードウェアアーキテクチャが効いています。

2. OpenAI は安定しているがレイテンシは高め

OpenAI の 3 モデルは概ねエラー率が低く安定していますが、レイテンシは Groq の 4〜7倍程度です。

  • gpt-5.4-mini が最もバランスが良く、平均約 1秒 で安定
  • gpt-5.4(フルサイズ)は p95 が 2.7秒 と重め

3. Azure OpenAI は高負荷時のエラーが課題

Azure OpenAI は今回のストレステストで gpt-5.4-minigpt-5.4-nano のエラー率が非常に高い結果となりました。

モデル エラー率
gpt-5.4-mini 69%
gpt-5.4-nano 41%
gpt-5.4 0%

gpt-5.4(フルサイズ)はエラー率 0% ですが、p95 が 7.5秒 とかなり遅いです。
エラーの原因は TPM(Tokens Per Minute)や RPM(Requests Per Minute)のクォータ制限の可能性が高く、Azure のデプロイ設定やスケールユニットを調整することで改善できる可能性があります。


レイテンシ分布の比較

平均レイテンシ(低いほど良い)

Groq OSS 20B    ████ 218ms
Groq OSS 120B   █████ 275ms
OAI gpt-5.4-mini ██████████████████████ 1,089ms
OAI gpt-5.4-nano ████████████████████████ 1,198ms
OAI gpt-5.4      ███████████████████████████████████████ 1,959ms
Azure gpt-5.4    ████████████████████████████████████████████████████████████████████ 3,431ms

スループット比較(リクエスト/秒)

スループット(高いほど良い)

Groq OSS 20B     █████████████ 13.1 req/s
Groq OSS 120B    ████████████ 12.4 req/s
Azure gpt-5.4-mini ██████████ 10.9 req/s ※エラー多
Azure gpt-5.4-nano ████████ 9.1 req/s ※エラー多
OAI gpt-5.4-mini ███████ 7.6 req/s
OAI gpt-5.4-nano ███████ 7.2 req/s
OAI gpt-5.4      █████ 5.3 req/s
Azure gpt-5.4    ████ 3.7 req/s

実装のポイント

モデルごとのスクリプト分離

各モデルで実行条件(エンドポイント、モデル名、閾値)が異なるため、per-model/ ディレクトリにスクリプトを分離しました。

// per-model/groq-gpt-oss-120b.js の例
import http from 'k6/http';
import { check, sleep } from 'k6';
import { Trend, Counter } from 'k6/metrics';

const durationTrend = new Trend('duration_groq_gpt_oss_120b', true);

export const options = {
  scenarios: {
    groq_gpt_oss_120b: {
      executor: 'ramping-vus',
      startVUs: 0,
      stages: [
        { duration: '30s', target: 5 },
        { duration: '1m', target: 10 },
        { duration: '2m', target: 20 },
        { duration: '30s', target: 0 },
      ],
    },
  },
  thresholds: {
    'duration_groq_gpt_oss_120b': ['p(95)<30000'],
    'http_req_failed': ['rate<0.05'],
  },
};

一括実行シェルスクリプト

#!/bin/bash
# run-all-models.sh

TIMESTAMP=$(date +%Y%m%d_%H%M%S)
RESULTS_DIR="results/${TIMESTAMP}"
mkdir -p "$RESULTS_DIR"

MODELS=(
  "openai-gpt-5-4"
  "openai-gpt-5-4-mini"
  "openai-gpt-5-4-nano"
  "azure-gpt-5-4"
  "azure-gpt-5-4-mini"
  "azure-gpt-5-4-nano"
  "groq-gpt-oss-120b"
  "groq-gpt-oss-20b"
)

for model in "${MODELS[@]}"; do
  echo "Testing: $model"
  k6 run \
    --out json="${RESULTS_DIR}/${model}-summary.json" \
    "scripts/per-model/${model}.js"
done

結果の可視化(ダッシュボード)

各モデルの summary.json を読み込み、HTML ダッシュボードとして可視化するスクリプトも作成しました。比較表・グラフが自動生成されます。


まとめ

観点 おすすめ
最速レスポンス Groq OSS 20B / 120B
安定性重視 OpenAI gpt-5.4-mini
大規模モデルの安定利用 OpenAI gpt-5.4
コスト最適化 OpenAI gpt-5.4-nano(低エラー率)
Azure高負荷利用 gpt-5.4(mini/nanoはクォータ調整が必要)

リアルタイム性が重要なアプリ(チャットUIなど)では Groq が圧倒的に有利です。
一方、精度や機能の豊富さを求めるなら OpenAI / Azure の上位モデルも選択肢に入ります。

プロダクション投入前に、今回のような負荷試験で自分たちのユースケースに合ったプロバイダー・モデルを選定することを強くおすすめします。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?