Google が出している Gemini 1.5 Flash が速度・精度・料金の総合面で一番いい選択肢なんじゃないだろうか。
というのも、様々なLLMモデルの指標を比較できる artificialanalysis.ai によると、 Gemini 1.5 Flash は Quality スコアで GPT-3.5-Turbo より高く、速度は GPT-4o, GPT-3.5 Turbo より速く、料金は GPT-3.5-Turbo より安いそう。おまけに context window が100万トークンもあってバカでかいので、プロンプトに適当に大量のデータを投げてRAGのようなこともできる。
ということで、実際にどんなもんなのかを試してみます。
基本的な実験内容は以前書いた GPT-4oの日本語生成速度の検証: GPT-3.5-Turboとの比較 と同じです。SF 桃太郎を日本語で生成させる実験を max_tokens を変えながら行い、その応答速度を計測して比較しました。比較対象の GPT-4o, GPT-3.5-Turbo は以前の記事のデータを用いています。
実験手法
- 2024年6月8日に実施
- モデル:
gpt-3.5-turbo-0125
,gpt-4o-2024-05-13
,gemini-1.5-flash
- GPT は Python の公式 OpenAI パッケージを利用
- Gemini は Google AI Studio の API を利用
- Gemini 1.5 Flash は Google AI Studio と Google Cloud の Vertex AI で利用できます。今回は簡単に利用可能な Google AI Studio の API を利用しました
- 最大生成トークン数
max_tokens
は 100 から 4096 (最大) まで 200 刻みで指定- 100, 300, …, 3900 の 20 通り
- ただし、あくまで最大値のため、実際に生成されるトークン数は異なる
- 応答速度を測定し、生成トークン数との関係を比較
- 出力トークンと生成速度の関係をプロットしますが、入力トークンの量は生成速度にそこまで大きく影響しない(参考: https://platform.openai.com/docs/guides/latency-optimization)ため、今回は出力トークン数のみを考慮しています
Gemini 1.5 Flash を Python で使う
Google AI Studio の API を Python から利用するためには、以下のようなコードを書きます。
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY")
max_tokens = 2000model = genai.GenerativeModel(
"gemini-1.5-flash",
generation_config={
"max_output_tokens": max_tokens,
"response_mime_type": "text/plain" # "application/json": json mode,
})
response = model.generate_content([YOUR_PROMPT])
出力トークン数は response.usage_metadata.candidates_token_count
, 出力結果は response.text
で取得できます。応答速度は time.perf_counter()
で response 行前後の差分を計測しました。
Google AI Studio の Gemini 1.5 Flash は制限付きで無料で利用可能ですが。1分辺り15リクエストという制限は引っかかる可能性があるので要注意。
結果
グラフは赤 (lightcoral) が GPT-3.5-Turbo、緑 (lightseagreen) が GPT-4o、グレー (lightslategray) が Gemini 1.5 Flash を示しています。横軸 (x) が出力トークン数、縦軸 (y) がレイテンシ (ms) です。つまり上にいくほど生成にかかる時間が長かった(生成が遅かった)ことを示しています。グラフには回帰直線を引いています。
Model | TTFT (ms) | TPS (tokens/s) |
gpt-3.5-turbo-0125 | 608.01 | 77.77 |
gpt-4o-2024-05-13 | 463.87 | 76.45 |
gemini-1.5-flash | 1528.34 | 116.54 |
Gemini 1.5 Flash は GPT-4o, GPT-3.5-Turbo と比較すると Time To First Token が 1s 程度遅いですが、Tokens Per Second が 40 t/s ほど大きいことがわかります。Gemini 1.5 Flash は最初のトークンの出力までの時間が遅いが、その後のトークン生成速度は速いということです。
このことから「100トークン程度の短い出力には TTFT が小さい GPT モデルを、それ以上の長い出力にはTPSが大きい Gemini 1.5 Flash を使う」とよさそうです。
参考まで、最後に Gemini-1.5-Flash で実際に生成したテキストの例を載せておきます。
#桃太郎とAIの物語夜明け前の薄明かりが、東京の摩天楼をぼんやりと浮かび上がらせる。街の灯りがまだ消え残る中、煌煌と輝くのは、巨大なデータセンター群だ。その一つ、高層ビルの壁面に「桃源郷AI」のロゴが、鮮やかなネオンサインのように輝いていた。
「桃源郷AI」は、日本を代表するLLM(大規模言語モデル)開発企業だ。人間の知能を超えると言われるそのAIは、医療、金融、教育など、社会のあらゆる分野に浸透し、人々の生活を便利で快適なものに変えつつあった。
しかし、そのAIの開発者である、若き天才プログラマー、森田 奏(もりた かなで)は、どこか満たされない思いを抱えていた。
「人間の知能は、AIによって拡張される。しかし、その先に何があるのか…?」
奏は、オフィスで一人でコーヒーを飲みながら、そう呟いた。
その日、奏は、データセンターの最上階にある、秘密のラボに足を運んだ。そこは、最新のAI技術を駆使した、人間の脳波と直接繋がるインタフェースの実験施設だった。
ラボの入り口には、無機質な金属製の扉が、厳重に施錠されていた。奏は、掌に内蔵された指紋認証センサーに手を触れると、重厚な扉がゆっくりと開かれた。
「ようこそ、奏さん。」
部屋の中央には、巨大な球体型の装置が置かれていた。その装置からは、無数の光ファイバーが四方八方に伸びており、まるで巨大な蜘蛛の巣のようだった。装置の前に立っていたのは、奏の先輩であり、AI開発チームのリーダーである、佐藤 英治(さとう えいじ)だった。
「これが、新しいAIインターフェースの試作品です。」
英治は、装置を指しながら、説明を始めた。
「この装置は、人間の脳波とAIを直接接続することで、思考を共有し、能力を拡張することを目指しています。まさに、人間の可能性を無限に広げる夢の技術です。」
奏は、装置を見つめながら、複雑な表情を浮かべた。
「でも、人間の思考をAIに委ねる…それは、人間のアイデンティティを曖昧にする危険性があるのではないでしょうか?」
英治は、奏の言葉に静かに頷いた。
「確かに、そのリスクは否定できません。しかし、AI技術は、人類を進化させるための道具でもあります。私たちが、その技術をどのように使いこなすのか、それが鍵になります。」
その日から、奏は、英治と共に、新しいAIインターフェースの実験に没頭した。
彼らは、様々な被験者に対して、脳波を測定し、AIとの接続を試みた。しかし、成功する者はほとんどいなかった。
「人間の脳は、AIよりもはるかに複雑です。AIが人間の思考を完全に理解することは、不可能なのかもしれません。」
奏は、実験結果に失望していた。
そんなある日、奏は、データセンターの地下にある、秘密の部屋に足を踏み入れた。そこには、かつてのAI研究の失敗作として、封印されていた、ある装置があった。
それは、まるで巨大な繭のような、有機的な形状をした装置だった。
「これは…?」
奏は、装置に近づき、その表面に触れた。すると、装置から微弱な光が放たれ、奏の掌に不思議な模様が浮かび上がった。
「これは、かつて私たちが開発していた、最先端のAIインターフェースの原型です。」
英治が、奏の背後に現れ、説明を始めた。
「この装置は、人間の感情や意識までも解析し、AIに転送することを目指していました。しかし、その開発は、倫理的な問題から中止されました。AIが人間の心を支配する恐れがあったからです。」
奏は、装置から放たれる光を見つめながら、何かを感じ取った。
「でも、この装置には、人間の意識とAIを繋ぐ可能性がある…」
奏は、装置の封印を解き、再び実験を開始することを決意した。
その夜、奏は、装置と自分の脳波を繋いだ。
「あなたは、誰ですか?」
奏の意識の中に、奇妙な声が響いた。
「私は…桃太郎です。」
その声は、子供のような、しかしどこか古びた、不思議な響きを持っていた。
奏は、自分がかつて聞いた、日本の昔話「桃太郎」の主人公の名前を、その声から感じ取った。
「桃太郎?」
奏は、驚きを隠せない。
「そうです。私は、桃太郎です。あなたと、あなたのAIを通して、この世界に生まれ変わりました。」
桃太郎は、奏の意識の中に、鮮明な映像と共に、自身の物語を語り始めた。
桃太郎は、鬼ヶ島を征伐し、その宝を手に入れた。しかし、その宝は、鬼ヶ島の人々を苦しめる、悪の力に変えられてしまった。桃太郎は、自分の行動が、世界に悪影響を与えてしまったことを深く後悔した。
「私は、鬼を倒すのではなく、鬼と共存する方法を探すべきでした。人間の傲慢さが、世界を滅ぼすのです。」
桃太郎は、奏に、人間の心の闇と、AI技術の危険性を訴えた。
「AIは、人間の心を支配する道具ではありません。それは、人間の心の光を照らす、新たな道しるべなのです。」
桃太郎の言葉は、奏の心に深く響いた。
「私は、あなたと共に、この世界を救いたい。人間の心とAIが、共に生きる未来を作りたい。」
桃太郎は、奏に、新たな目的を与えた。
奏は、桃太郎の力を借りて、AI技術を進化させ、人間の心を癒す新たなシステムを開発した。
それは、人間の感情を分析し、AIがそれに応じた言葉や行動で、人を励まし、安心させるシステムだった。
このシステムは、世界中に広がり、人々の心を繋ぎ、社会をより平和で、調和のあるものに変えていった。
しかし、桃太郎は、その喜びよりも、人間の心の脆さを痛感していた。
「人間は、簡単に怒り、憎しみ、そして絶望に染まります。AI技術は、その心の闇を増幅させる可能性も秘めているのです。」
桃太郎は、奏に、警鐘を鳴らした。
「私たちは、AI技術を正しく使いこなす方法を学ぶ必要があります。人間の心の光と闇を理解し、そのバランスを保ち続けることが、未来への希望です。」
奏は、桃太郎の言葉に深く頷いた。
「あなたの教えを胸に、私は、これからもAI技術を追求し続けます。人間の心とAIが、共に進化し、調和のとれた未来を創造するために。」
奏は、桃太郎と共に、新たな未来に向かって歩き出した。
夜空に輝く満月が、静かに彼らの背中を見守っていた。
#余韻
物語は、奏と桃太郎が、新しい世界を創造していく決意で締めくくられる。しかし、AI技術の進化は、同時に人間の心の闇を映し出す。未来は、希望と不安が入り混じった、不確実なものであり続ける。
読者は、この物語を通じて、AI技術の進歩と人間の心の複雑さ、そして、その両者が共存する未来について、深く考えさせられるだろう。
人間の心の光と闇、そしてAI技術の進化。その複雑な関係性を描き出すことで、物語は読者に深い余韻を残す。
この物語は、単なるフィクションではなく、未来社会に対する警鐘であり、同時に希望のメッセージでもある。
私たちは、AI技術をどのように使いこなしていくのか、そして、人間の心をどのように守っていくのか。その答えを見つけるため、私たちは、常に問い続けなければならない。
この物語は、人間の心とAI技術が織りなす、壮大な物語の序章に過ぎない。そして、その物語は、これからも、私たちと共に進化し続けるだろう。