Gemini 1.5 FlashとGPT-4oを速さだけ比較してみた。

2024/05/22に公開されました。
2024/05/22に更新されました。

OpenAI Spring UpdateとGoogle I/O 2024で発表された最新のモデルを比較します。


author: Shintaro

はじめに

5/14にOpenAI Spring Update、5/15にGoogle I/O 2024がそれぞれ開催されました。
ともに刺激的な発表でした。YouTubeにそれぞれ動画が上がっていますので、まだ観てない方はぜひ。

今回はそれぞれで発表されたGemini 1.5 FlashとGPT-4oを
Pythonで呼び出して、速度を比べてみました。
※2024/5/22時点で、GPT-4oはChatGPTからも利用可能ですが、
 Gemini 1.5 FlashはGoogle AI StudioやVertex AI StudioなどAPI経由のみです。

計測方法について

  • Python標準モジュールtimeperf_counter関数を使用して計測。
  • 以下の時間を計測。
    • APIのレスポンスが返ってくるまで
    • レスポンスのすべてをテキストとして表示できるまで
  • 以下のプロンプトを使用。
    • 「市場シェア、強み、顧客サポートの3つの観点でGoogle Cloud、AWS、Microsoft Azureの三大クラウドを比較してください。500文字で回答お願いします」

準備

必要なライブラリをインストールします。(環境の構築は各自お願いします)

pip install --upgrade google-cloud-aiplatform
pip install --upgrade openai

以下のコードを使います。

import vertexai
from vertexai.generative_models import GenerativeModel, GenerationConfig
from openai import OpenAI
import os
import time

api_key = "OPEN_AI_API_KEY"
project_id = "GOOGLE_CLOUD_PROJECT_ID"
location = "LOCATION" # e.g. us-central1

def call_gpt_4o(prompt):
    openai_model = "gpt-4o"
    # openai_model = "gpt-4-turbo"
    client = OpenAI(api_key=api_key)

    start_api_call = time.perf_counter()

    response = client.chat.completions.create(
        stream=True,
        temperature=0,
        top_p=0,
        model=openai_model,
        messages=[
            {
                "role": "user",
                "content": prompt,
            },
        ],
    )

    end_api_call = time.perf_counter()
    print("\nGPT-4o response time: " + str(end_api_call - start_api_call) + "sec")

    print("\nprint responses start\n")
    start_print = time.perf_counter()

    for data in response:
        print(data.choices[0].delta.content, end="")

    end_print = time.perf_counter()
    print("\nprint responses end")
    print("\nGPT-4o print time: " + str(end_print - start_print) + "sec")


def call_gemini_flash(prompt):
    vertexai.init(project=project_id, location=location)
    model_name = "gemini-1.5-flash-preview-0514"
    # model_name = "gemini-1.5-pro-preview-0514"
    generation_config = GenerationConfig(temperature=0, top_p=0)
    google_model = GenerativeModel(
        model_name=model_name,
        generation_config=generation_config,
    )

    start_api_call = time.perf_counter()

    responses = google_model.generate_content(
        [prompt],
        stream=True,
    )

    end_api_call = time.perf_counter()
    print(
        "\nGemini 1.5 Flash response time: "
        + str(end_api_call - start_api_call)
        + "sec"
    )

    print("\nprint responses start\n")
    start_print = time.perf_counter()

    for response in responses:
        print(response.text, end="")

    end_print = time.perf_counter()
    print("\nprint responses end")
    print("\nGemini 1.5 Flash print time: " + str(end_print - start_print) + "sec")


def main():
    prompt = """市場シェア、強み、顧客サポートの3つの観点でGoogle Cloud、AWS、Microsoft Azureの三大クラウドを比較してください。500文字で回答お願いします"""

    call_gemini_flash(prompt)
    call_gpt_4o(prompt)

※普段Google Cloudしか触らない方へ。
 OpenAIのAPIを利用するためには課金の有効化やAPIキーの発行が必要です。必要に応じて各自でお願いします。

※OpenAIのAPIのリファレンスによるとtemperaturetop_pを両方変更するのは非推奨に見えますが、
 Geminiのパラメータと条件をそろえるために、あえて設定してみました。
 参照: PythonのAPIリファレンス

比較結果

速度

何度か試して観測した、おおまかな幅を記載します。
※n=20程度かつ、中央値なども取っておらず厳密ではないのでご了承ください。
※かっこ内は使用したモデルのバージョンです。2024/5/22時点で自動で使われるものです。

Gemini 1.5 Flash(preview-0514)GPT-4o(2024-05-13)
APIからのレスポンス0.000002~0.000005秒前後0.7~1秒前後
全てのテキストの表示5秒前後9~11秒前後

Gemini1.5Flashの方が圧倒的に速いです。

ちなみにそれ以外のモデルは以下のような感じです。

Gemini 1.5 Pro(preview-0514)GPT-4 Turbo(2024-04-09)GPT-3.5 Turbo(0125)
APIからのレスポンス0.000002~0.000005秒前後3~4秒前後1秒前後
全てのテキストの表示8秒前後15~20秒前後3~5秒前後

GPT-4oは、GPT-4 Turboと比べてAPIの速度が2倍になったとOpenAIが公表していますが、まさにそれくらい速くなっています。
参考程度に軽量なGPT-3.5も見てみましたが、超速いですね。

レスポンスの内容例

参考程度に、それぞれのレスポンス内容を紹介します。

  • Gemini
## 三大クラウドの比較:市場シェア、強み、顧客サポート

**市場シェア:** AWS は圧倒的なシェアを誇り、Google Cloud と Azure が追いかける形です。AWS は先行者利益と幅広いサービス
で優位性を保ちますが、Google Cloud は AI/ML、Azure はハイブリッドクラウドで強みを発揮しています。

**強み:** AWS は豊富なサービスと成熟したエコシステムが強みです。Google Cloud は AI/ML、データ分析、コンテナ技術に優れ、Azure はハイブリッドクラウド、セキュリティ、Windows との親和性で差別化を図ります。

**顧客サポート:** 各社とも充実したサポート体制を提供していますが、AWS は規模と経験で優位に立ちます。Google Cloud は
技術力に長けたサポート、Azure は親しみやすいサポートで評価されています。

**結論:** どのクラウドが最適かは、企業のニーズや規模、技術レベルによって異なります。AWS は安定性と幅広いサービスを
求める企業に、Google Cloud は AI/ML やデータ分析に力を入れる企業に、Azure はハイブリッドクラウドや Windows 環境との連携 を重視する企業に適しています。
  • GPT-4o
以下は、Google Cloud、AWS、Microsoft Azure の三大クラウドを市場シェア、強み、顧客サポートの観点から比較したものです。

**市場シェア:**
AWS(Amazon Web Services)は市場シェアでリーダーとして位置づけられています。長年の経験と広範なサービス提供により、企業からの信頼を獲得しています。Microsoft Azure は次に大きなシェアを持ち、特に企業向けのソリューションで強みを発揮 しています。Google Cloud は市場シェアでは 3 位ですが、急速に成長しており、特にデータ分析や機械学習分野での強みが評価 されています。

**強み:**
AWS はサービスの多様性と成熟度が強みです。幅広いサービスとグローバルなインフラストラクチャにより、ほぼすべての業界
のニーズに対応できます。Microsoft Azure は、既存の Microsoft 製品(Windows Server、Active Directory、Office 365 など)との統合が強みで、特に企業ユーザーにとって魅力的です。Google Cloud はデータ分析、機械学習、AI 分野での技術力が強みで、BigQuery や TensorFlow などのツールが高く評価されています。

**顧客サポート:**
AWS は広範なドキュメントとコミュニティサポートが充実しており、24/7 のカスタマーサポートも提供しています。Microsoft Azure も同様に 24/7 のサポートを提供し、特に企業向けのサポートが充実しています。Google Cloud はサポートの質が向上しており、特に技術的なサポートに強みがありますが、他の 2 社に比べるとまだ改善の余地があります。

総じて、AWS は市場シェアとサービスの多様性でリードし、Microsoft Azure は企業向けの統合性とサポートで強みを持ち、Google Cloud はデータ分析と機械学習での技術力が際立っています。

中身については記事の目的から外れるので未検証ですが、
プロンプトを色々試している中で、
どうもGeminiはGoogle Cloudがシェア2位だと思い込んでいるフシがあると感じました。
(上記のレスポンスでは明示はされていませんが、AzureよりGoogle Cloudを先に書いている。明確に2位と回答した場合もあり)
願望を込めているんでしょうか。

冗談はさておき、Googleが出しているモデルのベンチマークによると、
過去のモデルと比較してGemini 1.5 Flashは様々なベンチマークでちょっと低かったりします。

OpenAIが出しているモデルのベンチマークと比較すると結構な差があるように見えます。
本当の本当に今更ですが、ユースケースに応じてモデル使い分けるべきシーンがあるんだなーと勉強になりました。
(とりあえずGeminiかGPTかClaude使っておけば良いでしょくらいの雑な感覚しかこれまではありませんでした。)

まとめ

Gemini 1.5 FlashとGPT-4oを速さの観点で比較し、
回答の正確性などは劣る可能性があるもののGemini 1.5 Flashの方がすごく速いということがわかりました。

技術の進歩スピードには本当に目を見張るものがありますが、
GoogleやOpenAIの発表から、今後の主戦場は「AIエージェント」という説が有力という見方があります。
(去年のものですが、私はこちらの記事の予測が好きです。)

つまりは、AIが外部のツールを使った実行まで担うようになっていくということです。
例えば今回のGoogle I/Oでは、 買った靴の写真とともに「返品したい」とGeminiに依頼すると、 以下を実行してくれるデモがありました。

  1. Gmailから注文時のメールを探す
  2. そこから返品用のフォームを見つけて入力
  3. 集荷業者の手配
  4. 集荷の日をGoogleカレンダーに登録

Google I/O Keynoteの該当部分(YouTubeのリンクです)

ということで、そういった外部ツールの実行までできるVertex AI Extensionsについても 近々触ってみて記事にする予定です。

※本記事は、ジーアイクラウド株式会社の見解を述べたものであり、必要な調査・検討は行っているものの必ずしもその正確性や真実性を保証するものではありません。

※リンクを利用する際には、必ず出典がGIC dryaki-blogであることを明記してください。
リンクの利用によりトラブルが発生した場合、リンクを設置した方ご自身の責任で対応してください。
ジーアイクラウド株式会社はユーザーによるリンクの利用につき、如何なる責任を負うものではありません。