見出し画像

ChatGPT API の速度をシュッと比較してみる

みなさんどうも!
今日もジピッて(ChatGPT を使って)ますか??(*´▽`*)


ChatGPT の API が公開されて早三カ月(まだ三カ月しか経っていないのか???( ゚д゚))



いろんなサービスが ChatGPT を組み込んでいますね!!


しかし ChatGPT は OpenAI の提供する API からしか利用できないわけではなく、Microsoft が提供する Azure でも API として利用することができるのです!!


ChatGPT の挙動としては同じなのですが、動作しているインフラが違うようなものですね。はい。


で、巷では Azure を使った方がレスポンスが速いらしいぞという噂をちらほら耳にするものの、実際に自分で試したことがないので今回やってみたぞ☆


という話。


検証内容

今回は単純に応答速度の比較をしたいだけなので、シンプルに以下のような条件で Do しました。

  • ChatGPT のモデルは 3.5-turbo を指定する

  • それぞれの API に対して 100 のリクエストをする

    • リクエストは直列で行う

  • 毎回同じテストデータを使用する

  • 各リクエスト開始から終了までの時間を計測する

  • 100 リクエストが終了したら以下で評価する

    • 平均値

    • 中央値

    • 95% タイル

gcping の結果的に Colab の実行環境リージョンは US ですね。

 1.  [us-west4]                 7.647654ms
 2.  [global]                   8.439134ms
 3.  [us-west2]                 12.822296ms
 4.  [us-west3]                 15.449089ms

ふわっとしたテストコードはこちら

num_requests = 100
for i in range(num_requests):
    start_time = time.time()
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=test_messages,
        stream=True
    )
    end_time = time.time()
    response_time = end_time - start_time

テスト用のリクエストデータはこちら

test_messages=[
    {"role": "system", "content": "あなたは有能なアシスタントです。"},
    {"role": "user", "content": "こんにちは、アシスタントさん。"},
    {"role": "assistant", "content": "こんにちは、何かお手伝いできることがありますか?"},
    {"role": "user", "content": "はい、量子コンピュータについて具体的かつ詳細な情報を事細かに教えてください。"}
]

でまぁ、これを愚直にグリングリン回すわけですよ。


シュッと結果発表

ではドキドキワクワクの結果発表としゃれ込みましょうか(*´▽`*)







OpenAI を直接


平均値(秒) 37.52808257341385
中央値(秒) 37.01288115978241
95% タイル(秒)48.54238655567169

Azure を利用

平均値(秒) 14.997162017822266
中央値(秒) 12.197254180908203
95% タイル(秒) 18.164984118938445


Azure の圧勝やんけ、、、 ( ゚д゚)





都市伝説

いやいや、とはいえですよ?
元祖の OpenAI さんもやりようによっては速くなるのでは???

都市伝説的に ChatGPT のレスポンスを Stream で返すと3倍ほどになるとかならないとか、、、


ならば検証いたそう!!


そして見せてもらおうか、、、赤い彗星張りの性能を、、、!!


シュッと結果発表その2

さてどんな変化があるかな(*´▽`*)






OpenAI を直接


平均値(秒) 38.92325872117346
中央値(秒) 38.02000117301941
95% タイル(秒)52.066638827323914

Azure を利用

平均値(秒) 12.452743916511535
中央値(秒) 12.358039021492004
95% タイル(秒)16.93775279521942


図ったな、、、シャアッ、、、、、、!!

はい。


というわけで Steam にしても 大して変化はございやせんでした。


ただまぁ、計測の都合上 Stream ではない場合よりも処理(具体的に言うと Stream が全て終わった際に文字列の結合をしている)が多いので直接ユーザーにレスポンスを届ける場合はもう少し速くなるのかなというところです。


検証日 2023/06/06


今回は超雑な検証だったので、もうちょい色んな評価指標とかローカル LLM とか含めて詳しくやったら会社の note で書こうかなと思ったり思わなかったり。


おしまい。


続編



この記事が気に入ったらサポートをしてみませんか?