こんにちは、たねやつです。
Googleから新しい軽量モデル「Gemini-2.5-flash-lite」が発表されましたね!
最速との触れ込みですが、実際の性能はどの程度のものなのか気になるところです。
今回は、いつも使っているGemini-CLIで、この新しいgemini-2.5-flash-liteモデルを早速試してみました。おなじみのgemini-2.5-flashやgemini-2.5-proと比較して、どのくらいの実力なのかを検証していきます。
この記事でできること
- Gemini-CLIで
gemini-2.5-flash-liteモデルを使うための設定方法がわかります。 flash-lite,flash,proモデルの性能差を具体的なプロンプトで比較できます。- 各モデルの得意なタスクや、使い分けのヒントが得られます。
必要なもの
- Gemini-CLIがインストール・セットアップ済みの環境
- Google AI Studioで取得したAPIキー
手順
.envにGEMINI-MODELを指定
Gemini-CLIで利用するモデルを切り替えるのは非常に簡単です。
Gemini-CLIをセットアップしたディレクトリにある.envファイルを開き、GEMINI_MODELの値を変更するだけです。
# .envファイルの中身 GEMINI_API_KEY="your_api_key_here" GEMINI_MODEL="gemini-2.5-flash-lite"
今回はgemini-2.5-flash-liteを使いたいので、上記のように設定します。何も設定しない場合、proから使用されます。
比較
比較結果
gemini-2.5-flash-liteとgemini-2.5.flash: 今回のテストでは、すべてのプロンプトに対して完全に同一の回答を生成しました。両者の間に性能差は見られませんでした。gemini-2.5-pro: 他モデルとは異なる、より多様で質の高い回答を生成する傾向がありました。
プロンプト別の傾向:
- 創作系:
proはより詩的で深みのある文章を生成しました。flash系も十分な品質ですが、proの方が表現力が豊かです。 - プログラミング系:
- 単純なコード生成:
proはより簡潔なコードを、flash系は説明(docstring)付きの丁寧なコードを生成しました。 - 設計タスク:
flash系が非常に詳細で網羅的な設計ドキュメントを生成したのに対し、proは要点をまとめた簡潔な概要を提示しました。このタスクではflash系の出力が優れていました。
- 単純なコード生成:
- 論理・要約系: 3つのモデルすべてが、ほぼ同等の品質で正確な回答を生成しました。大きな差は見られませんでした。
総評:
基本的なタスクではどのモデルも遜色ありませんが、より創造性や詳細なドキュメント作成が求められる場面ではモデルごとの得意不得意が表れる結果となりました。特に、複雑な要件のプログラミング設計タスクにおいて、flash系がproを上回る詳細な出力をしたのは興味深い点です。
比較文
以前Raspberry Piのほうのブログにて使用したプロンプトです。プログラミングの部分に少し追加しています。
創作系プロンプト
- 「喫茶店の片隅で、古い万年筆が語り始める物語を200文字で書いてください。」
- 「『宇宙猫』という言葉をテーマに、短い詩を作ってください。」
プログラミング系プロンプト
- 「Pythonで、2つの数値を引数として受け取り、その合計を返す簡単な関数を書いてください。コードのみ出力してください。」
- 「
docker-compose.ymlで、Open-WebUIとOllamaサービスを定義する基本的な例を示してください。」 - 顧客が商品を発注する時点で、おおよその発送目安を表示するための機能の設計を考えてください
論理・要約系プロンプト
- 「アインシュタインの相対性理論について、中学生にも分かるように150文字以内で要約してください。」
- 「『犬は哺乳類である』かつ『すべての哺乳類は動物である』ならば、『犬は動物である』という結論は正しいですか?理由も簡潔に説明してください。」****
gemini-2.5-flash-lite
埃をかぶった万年筆は、錆びついたインク壺を転がし、静かに語り始めた。かつて、この万年筆は詩人の指で舞い、恋人たちへの手紙を綴った。インクの染みは、喜びや悲しみの記憶。コーヒーの香りが漂う喫茶店の片隅で、万年筆はそっと、過去の温もりを呼び覚ます。
星屑を纏いし瞳 銀河を泳ぐ黒猫 静寂を震わす 微かな喉鳴らし 宇宙猫
def add_numbers(num1, num2): """ 2つの数値を引数として受け取り、その合計を返します。 Args: num1: 1つ目の数値。 num2: 2つ目の数値。 Returns: 2つの数値の合計。 """ return num1 + num2
version: '3.8' services: ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ollama_data:/root/.ollama # Ollamaのモデルデータを永続化する場合 open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" # Open-WebUIは内部で8080ポートを使用 environment: - OLLAMA_BASE_URL=http://ollama:11434 # Ollamaサービスのアドレスを指定 # - OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxx # OpenAI APIキーを使用する場合(オプション) depends_on: - ollama restart: unless-stopped volumes: ollama_data:
### 1. 目的
顧客が商品を発注する際に、おおよその発送目安を表示することで、購買体験の向上、問い合わせの削減、期待値の管理を行います。
### 2. ターゲットユーザー
- ECサイトの顧客
### 3. 機能概要
顧客がカート画面や注文確認画面で、注文しようとしている商品群の「おおよその発送目安」を確認できる機能です。
### 4. 表示箇所
- **カート画面:**
- 各商品ごとの発送目安表示
- カート全体の発送目安表示(最も遅い発送目安を基にするなど)
- **注文確認画面:**
- 各商品ごとの発送目安表示
- 注文全体の発送目安表示
### 5. 表示内容
- **具体的な日数:** 「〇営業日後」「〇~〇営業日後」
- **状況に応じた表示:**
- **在庫あり・即日発送:** 「本日発送」「明日発送」
- **在庫あり・通常発送:** 「〇営業日後発送」
- **予約商品:** 「〇月〇日入荷予定、入荷後〇営業日後発送」
- **取り寄せ商品:** 「〇日~〇日程度で入荷、入荷後〇営業日後発送」
- **受注生産:** 「受注後〇週間程度で発送」
- **在庫切れ:** 「在庫切れ(入荷未定)」または「次回入荷予定〇月〇日、入荷後〇営業日後発送」
- **複数商品購入の場合:**
- 「全商品まとめて発送の場合:〇営業日後」
- 「一部商品先行発送の場合:〇営業日後(先行発送)、〇営業日後(後続発送)」
### 6. データソースとロジック
発送目安を算出するために、以下の情報を連携・管理する必要があります。
- **商品マスター:**
- **在庫状況:** (在庫あり、在庫わずか、在庫切れ、予約受付中、受注生産など)
- **出荷リードタイム:** (商品ごとに設定される、注文を受けてから発送までの日数)
- **入荷予定日:** (予約商品や取り寄せ品の場合)
- **生産リードタイム:** (受注生産品の場合)
- **在庫管理システム:**
- リアルタイムの在庫数量
- **物流システム/倉庫:**
- 発送作業の繁忙度、当日発送の締め切り時間など(より正確な目安表示のため)
**発送目安算出ロジックの例:**
1. **単一商品の場合:**
- **在庫あり:**
- 当日発送締切時刻前 → 「本日発送」
- 当日発送締切時刻後 → 「明日発送」
- (出荷リードタイムが1日以上の場合)→ 「〇営業日後発送」
- **予約商品:**
- 「〇月〇日入荷予定、入荷後〇営業日後発送」
- **取り寄せ商品:**
- 「〇日~〇日程度で入荷、入荷後〇営業日後発送」
- **受注生産:**
- 「受注後〇週間程度で発送」
- **在庫切れ:**
- 「在庫切れ(入荷未定)」
2. **複数商品購入の場合:**
- **まとめて発送:** 全ての商品が発送可能になるまでの最も遅い発送目安を採用。
- **一部商品先行発送:** 各商品の発送目安を表示し、顧客に選択肢を与える(※この機能は追加要件となる可能性あり)。
### 7. UI/UX考慮事項
- **明確さと簡潔さ:** 顧客がすぐに理解できる言葉遣いと表示形式にする。
- **視認性:** 目を引くように、しかし過度に邪魔にならないようにデザインする。
- **変更への対応:** 在庫状況や入荷予定日の変更があった場合、リアルタイムまたは定期的に更新される仕組みを検討する。
- **注意書き:** 「あくまで目安です」といった免責事項を明記する。
- **クリック/タップでの詳細確認:** 「〇営業日後」などをクリック/タップすると、詳細な条件(例:「在庫あり」「〇営業日出荷」)が表示されるようにする。
### 8. 非機能要件
- **パフォーマンス:** 発送目安の算出処理が、サイト全体のパフォーマンスに影響を与えないように最適化する。
- **データ連携:** 各システムからのデータ取得がスムーズに行われるようにする。
- **拡張性:** 将来的に、より詳細な発送状況(例:「〇月〇日出荷予定」)を表示する機能を追加できるような設計とする。
### 9. 導入ステップ(案)
1. **要件定義:** どのような商品で、どのような発送目安を表示するかを具体的に定義する。
2. **データ設計:** 必要なデータ項目、データソース、連携方法を定義する。
3. **ロジック開発:** 発送目安を算出するアルゴリズムを開発する。
4. **UI/UXデザイン:** 表示形式、デザインを設計する。
5. **システム連携:** 既存システムとの連携を実装する。
6. **テスト:** 各シナリオ(在庫あり、予約、複数購入など)での動作確認を行う。
7. **リリース:** 本番環境へリリースする。
8. **運用・保守:** データの整合性確認、パフォーマンス監視、必要に応じた改善を行う。
### 10. 考慮すべき追加機能(オプション)
- **配送日数との合算表示:** 「発送後、〇日~〇日でのお届け予定」といった、最終的なお届け目安を表示する。
- **注文確定後の詳細な発送予定表示:** 注文完了メールやマイページで、より具体的な発送予定日を表示する。
- **発送遅延時の通知:** 発送目安より遅延が発生する場合、顧客へ自動通知する機能。
- **店舗受け取りとの連携:** 店舗受け取りの場合の目安表示。
この設計案は、一般的なECサイトを想定したものです。実際のシステム構成やビジネス要件に合わせて、詳細を詰めていく必要があります。
アインシュタインの相対性理論は、時間と空間が固定されたものではなく、速く動くものほど時間がゆっくり流れ、空間が縮むという考え方です。質量とエネルギーは互いに変換可能(E=mc²)であり、重力は時空の歪みとして現れると説明しました。
アインシュタインの相対性理論は、時間と空間が固定されたものではなく、速く動くものほど時間がゆっくり流れ、空間が縮むという考え方です。質量とエネルギーは互いに変換可能(E=mc²)であり、重力は時空の歪みとして現れると説明しました。
はい、正しいです。 **理由:** 「犬は哺乳類である」という性質と、「すべての哺乳類は動物である」という普遍的な法則があるため、犬も自然と動物のカテゴリーに含まれるからです。これは三段論法と呼ばれる論理的な推論です。
gemini-2.5.flash
埃をかぶった万年筆は、錆びついたインク壺を転がし、静かに語り始めた。かつて、この万年筆は詩人の指で舞い、恋人たちへの手紙を綴った。インクの染みは、喜びや悲しみの記憶。コーヒーの香りが漂う喫茶店の片隅で、万年筆はそっと、過去の温もりを呼び覚ます。
星屑を纏いし瞳 銀河を泳ぐ黒猫 静寂を震わす 微かな喉鳴らし 宇宙猫
def add_numbers(num1, num2): """ 2つの数値を引数として受け取り、その合計を返します。 Args: num1: 1つ目の数値。 num2: 2つ目の数値。 Returns: 2つの数値の合計。 """ return num1 + num2
version: '3.8' services: ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ollama_data:/root/.ollama # Ollamaのモデルデータを永続化する場合 open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" # Open-WebUIは内部で8080ポートを使用 environment: - OLLAMA_BASE_URL=http://ollama:11434 # Ollamaサービスのアドレスを指定 # - OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxx # OpenAI APIキーを使用する場合(オプション) depends_on: - ollama restart: unless-stopped volumes: ollama_data:
### 1. 目的
顧客が商品を発注する際に、おおよその発送目安を表示することで、購買体験の向上、問い合わせの削減、期待値の管理を行います。
### 2. ターゲットユーザー
- ECサイトの顧客
### 3. 機能概要
顧客がカート画面や注文確認画面で、注文しようとしている商品群の「おおよその発送目安」を確認できる機能です。
### 4. 表示箇所
- **カート画面:**
- 各商品ごとの発送目安表示
- カート全体の発送目安表示(最も遅い発送目安を基にするなど)
- **注文確認画面:**
- 各商品ごとの発送目安表示
- 注文全体の発送目安表示
### 5. 表示内容
- **具体的な日数:** 「〇営業日後」「〇~〇営業日後」
- **状況に応じた表示:**
- **在庫あり・即日発送:** 「本日発送」「明日発送」
- **在庫あり・通常発送:** 「〇営業日後発送」
- **予約商品:** 「〇月〇日入荷予定、入荷後〇営業日後発送」
- **取り寄せ商品:** 「〇日~〇日程度で入荷、入荷後〇営業日後発送」
- **受注生産:** 「受注後〇週間程度で発送」
- **在庫切れ:** 「在庫切れ(入荷未定)」または「次回入荷予定〇月〇日、入荷後〇営業日後発送」
- **複数商品購入の場合:**
- 「全商品まとめて発送の場合:〇営業日後」
- 「一部商品先行発送の場合:〇営業日後(先行発送)、〇営業日後(後続発送)」
### 6. データソースとロジック
発送目安を算出するために、以下の情報を連携・管理する必要があります。
- **商品マスター:**
- **在庫状況:** (在庫あり、在庫わずか、在庫切れ、予約受付中、受注生産など)
- **出荷リードタイム:** (商品ごとに設定される、注文を受けてから発送までの日数)
- **入荷予定日:** (予約商品や取り寄せ品の場合)
- **生産リードタイム:** (受注生産品の場合)
- **在庫管理システム:**
- リアルタイムの在庫数量
- **物流システム/倉庫:**
- 発送作業の繁忙度、当日発送の締め切り時間など(より正確な目安表示のため)
**発送目安算出ロジックの例:**
1. **単一商品の場合:**
- **在庫あり:**
- 当日発送締切時刻前 → 「本日発送」
- 当日発送締切時刻後 → 「明日発送」
- (出荷リードタイムが1日以上の場合)→ 「〇営業日後発送」
- **予約商品:**
- 「〇月〇日入荷予定、入荷後〇営業日後発送」
- **取り寄せ商品:**
- 「〇日~〇日程度で入荷、入荷後〇営業日後発送」
- **受注生産:**
- 「受注後〇週間程度で発送」
- **在庫切れ:**
- 「在庫切れ(入荷未定)」
2. **複数商品購入の場合:**
- **まとめて発送:** 全ての商品が発送可能になるまでの最も遅い発送目安を採用。
- **一部商品先行発送:** 各商品の発送目安を表示し、顧客に選択肢を与える(※この機能は追加要件となる可能性あり)。
### 7. UI/UX考慮事項
- **明確さと簡潔さ:** 顧客がすぐに理解できる言葉遣いと表示形式にする。
- **視認性:** 目を引くように、しかし過度に邪魔にならないようにデザインする。
- **変更への対応:** 在庫状況や入荷予定日の変更があった場合、リアルタイムまたは定期的に更新される仕組みを検討する。
- **注意書き:** 「あくまで目安です」といった免責事項を明記する。
- **クリック/タップでの詳細確認:** 「〇営業日後」などをクリック/タップすると、詳細な条件(例:「在庫あり」「〇営業日出荷」)が表示されるようにする。
### 8. 非機能要件
- **パフォーマンス:** 発送目安の算出処理が、サイト全体のパフォーマンスに影響を与えないように最適化する。
- **データ連携:** 各システムからのデータ取得がスムーズに行われるようにする。
- **拡張性:** 将来的に、より詳細な発送状況(例:「〇月〇日出荷予定」)を表示する機能を追加できるような設計とする。
### 9. 導入ステップ(案)
1. **要件定義:** どのような商品で、どのような発送目安を表示するかを具体的に定義する。
2. **データ設計:** 必要なデータ項目、データソース、連携方法を定義する。
3. **ロジック開発:** 発送目安を算出するアルゴリズムを開発する。
4. **UI/UXデザイン:** 表示形式、デザインを設計する。
5. **システム連携:** 既存システムとの連携を実装する。
6. **テスト:** 各シナリオ(在庫あり、予約、複数購入など)での動作確認を行う。
7. **リリース:** 本番環境へリリースする。
8. **運用・保守:** データの整合性確認、パフォーマンス監視、必要に応じた改善を行う。
### 10. 考慮すべき追加機能(オプション)
- **配送日数との合算表示:** 「発送後、〇日~〇日でのお届け予定」といった、最終的なお届け目安を表示する。
- **注文確定後の詳細な発送予定表示:** 注文完了メールやマイページで、より具体的な発送予定日を表示する。
- **発送遅延時の通知:** 発送目安より遅延が発生する場合、顧客へ自動通知する機能。
- **店舗受け取りとの連携:** 店舗受け取りの場合の目安表示。
この設計案は、一般的なECサイトを想定したものです。実際のシステム構成やビジネス要件に合わせて、詳細を詰めていく必要があります。
アインシュタインの相対性理論は、時間と空間が固定されたものではなく、速く動くものほど時間がゆっくり流れ、空間が縮むという考え方です。質量とエネルギーは互いに変換可能(E=mc²)であり、重力は時空の歪みとして現れると説明しました。
アインシュタインの相対性理論は、時間と空間が固定されたものではなく、速く動くものほど時間がゆっくり流れ、空間が縮むという考え方です。質量とエネルギーは互いに変換可能(E=mc²)であり、重力は時空の歪みとして現れると説明しました。
はい、正しいです。 **理由:** 「犬は哺乳類である」という性質と、「すべての哺乳類は動物である」という普遍的な法則があるため、犬も自然と動物のカテゴリーに含まれるからです。これは三段論法と呼ばれる論理的な推論です。
gemini-2.5-pro
珈琲の湯気が立ち上る。片隅のテーブル、古びた万年筆がインクの夢を見る。それは革命家の檄文を綴り、詩人の恋歌を紡いだ。ペン先は歴史の重みで震え、今も誰かの物語を待っている。インクが乾いたその体は、語られなかった言葉で満ちていた。
銀河の毛玉、彗星の尾をじゃらす。 瞬く星々はその瞳のきらめき。 無重力の闇をしなやかに渡り、 静寂に響くは、星雲のゴロゴロ。
def add(a, b): return a + b
version: "3.8" services: ollama: image: ollama/ollama container_name: ollama pull_policy: always tty: true restart: unless-stopped volumes: - ./ollama:/root/.ollama ports: - "11434:11434" open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui pull_policy: always restart: unless-stopped ports: - "8080:8080" environment: OLLAMA_BASE_URL: "http://ollama:11434" depends_on: - ollama
### 目的
顧客満足度の向上と問い合わせ工数の削減。
### 機能要件
1. **発送目安の表示:**
* カートページと注文確認ページで、商品ごとおよび注文全体の発送目安を表示。
* 表示形式:「X営業日以内に発送」「X月X日頃発送予定」など。
2. **目安算出ロジック:**
* **データソース:** 在庫情報(自社倉庫、サプライヤー在庫)、商品マスタ(リードタイム)、営業日カレンダー。
* **ロジック:**
* 在庫あり商品:注文時刻と締め時間に基づき「当日発送」「翌営業日発送」を算出。
* 取り寄せ商品:サプライヤーのリードタイムを加味。
* 予約商品:発売日に基づく。
* 複数商品:最も遅い発送日に統一するか、分割発送の選択肢を提示。
3. **UI/UX:**
* 視認性が高く、分かりやすい表現を用いる。
* 「あくまで目安」である旨の注記を記載。
### 技術設計
1. **アーキテクチャ:**
* バックエンドAPIで発送目安算出ロジックを実装。
* フロントエンドはAPIから取得した情報を表示。
2. **データモデル(例):**
* `products`: `id`, `name`, `stock_quantity`, `lead_time_days`
* `suppliers`: `id`, `name`, `lead_time_days`
* `orders`: `id`, `user_id`, `estimated_shipping_date`
3. **考慮事項:**
* 在庫引当のタイミングと連携。
* リアルタイム性をどこまで求めるか(バッチ処理 or リアルタイム計算)。
* 祝祭日や長期休暇を考慮した営業日計算。
### 導入ステップ
1. 要件定義とUI/UX設計
2. API設計と開発
3. フロントエンド実装
4. テスト(正常系、異常系)
5. リリースと効果測定
時間と空間は絶対的なものではなく、観察者の運動状態によって伸び縮みします。速く動くほど時間は遅れ、空間は縮むのです。また、重力とは時空の歪みそのものであり、質量がエネルギーに変換できること(E=mc²)も示しました。
はい、正しいです。 **理由:** これは「三段論法」という基本的な論理的推論です。「すべての哺乳類は動物である」という大前提と、「犬は哺乳類である」という小前提から、「犬は動物である」という結論が必然的に導かれます。
Gemini-CLIでは使いにくいかもしれない
返答は今のところ英語のみか
Open-Webuiなどから使用した場合は問題なく日本語に対して日本語の返答を行ってくれますが、Gemini-CLIだと常に英語になってしまいます。
Gemini-CLI on Windowsにてファイルの読み取りができない場合がある
╭────────────────────────────────────────────────────────────────────────────╮ │ ✔ ReadManyFiles Will attempt to read and concatenate files using patter… │ │ │ │ ### ReadManyFiles Result (Target Dir: │ │ ...) │ │ │ │ No files were read and concatenated based on the criteria. │ ╰────────────────────────────────────────────────────────────────────────────╯ ✦ I can help with that. However, I need the content of the file you want me to append to. Please provide the content of @blog\taneyatree\ai\gemini-2.5-flash-lite.md so I can add the comparisons.
これはgemini-cliのバグな気もしますが、プロンプトの補完で現れるファイルパスがLinux形式でないと受け取ってくれないにもかかわらずWindows形式で補完されます。それらをProなどの場合は読み取ってくれるのですがLiteは駄目そうでした。
最後に
今回の比較を通じて、gemini-2.5-flash-liteは、その名の通り「軽量」さと「速さ」を大きな武器としつつも、多くのタスクで十分な性能を発揮する非常に優秀なモデルであることが分かりました。
flash-liteの許容範囲と最適なユースケース
flash-liteが最速の返答速度であることを考慮すると、その価値は「待たされないストレスフリーな体験」にあります。この速度を活かせる、以下のような場面で特に輝くと考えられます。
- 対話や壁打ち: チャット形式でのアイデア出しや、思考の整理など、リアルタイム性が求められる用途に最適です。
- コーディング支援: 簡単な関数生成やコマンドの確認など、開発フローを止めずに素早く答えが欲しい場面で非常に役立ちます。今回の検証でも、丁寧なdocstring付きのコードを生成してくれました。
- 定型的なドキュメントの草案作成: 発送目安の機能設計のように、ある程度フォーマットが決まっているドキュメントのたたき台を高速に生成するタスクは、
flash系の得意分野のようです。proよりも詳細な出力をしたのは驚きでした。 - 要約や分類: ブログ記事の要約やメールの分類など、高い精度を保ちつつも速度が求められる日常的なタスクにも十分対応可能です。
上位モデルとの使い分け
一方で、proモデルは創作タスクにおいて、より詩的で深みのある表現を生み出しました。したがって、以下のような棲み分けが考えられます。
gemini-2.5-flash-lite: 速度が重要視される日常的なタスク、対話、コーディング支援、ドキュメントの初稿作成。コストパフォーマンスと時間効率を最大化したい場合の第一候補。gemini-2.5-pro: 最高の品質が求められるクリエイティブな文章作成、深い分析、最終的な成果物としての利用。
結論として、gemini-2.5-flash-liteは「速度」と「品質」のバランスが極めて高く、多くの開発者やユーザーにとって、ほとんどの場面で満足のいく結果を提供してくれる「万能型高速モデル」と言えるでしょう。CLIのようなインタラクティブな環境では、この速度が生産性を大きく向上させることは間違いありません。