マルチモーダルの概念

Gemini はマルチモーダルのユースケースを念頭に置いて構築されたモデル ファミリーです。

マルチモーダル モデルとは、画像やテキストなど、複数のモダリティからの情報を処理できるモデルです。たとえば、美味しい食事の写真をモデルに送信し、その料理についての短いブログを書くようにモデルに依頼できます。

プロンプト レスポンス

この図に基づいて、興味をそそる短いブログ投稿を書いてください。写真に写った食事の内容と、旅の食事の準備について説明が付くべきです。


クッキー

食事の準備は時間とお金を節約するための優れた方法であり、より健康的な食生活にも役立ちます。この食事は、事前に簡単に準備できるヘルシーでおいしい料理の好例です。

この食事は、玄米、野菜のロースト、鶏肉の照り焼きなどです。 黒米は健康的で複雑な炭水化物で、持続的なエネルギーを提供します。ローストした野菜は、ビタミンやミネラルを毎日摂取するのに最適な方法です。また、チキンの照り焼きはタンパク質が豊富で美味しいメニューです。

この食事の調理もとても簡単です。黒米を調理し、野菜を炒め、鶏肉の照り焼きを調理するだけです。すべて調理したら食事の準備容器に入れておき、冷蔵庫に保存します。 コンテナを用意して、忙しい朝に取り掛かることができます。

前もって簡単に調理できるヘルシーで美味しい食事をお探しなら、このメニューがおすすめです。栄養素と味がたっぷりで、満腹感と満足感を味わえます。

ヘルシーで美味しい食事の準備を始めましょう!

マルチモーダル モデル

Gemini は、Google DeepMind によって開発され、マルチモーダルのユースケース向けに設計された生成 AI モデルのファミリーです。Gemini API を使用すると、gemini-pro-vision モデルと gemini-pro モデルにアクセスできます。Gemini API モデルの仕様については、モデル情報をご覧ください。

マルチモーダル プロンプト

Gemini API を使用すると、マルチモーダル プロンプトを Gemini モデルに送信できます。サポートされているモダリティには、テキストと画像があります。

一般的なプロンプト設計のガイダンスについては、プロンプト設計戦略をご覧ください。

サポートされているモデル

次のモデルは、マルチモーダル プロンプトのレスポンスをサポートしています。

    gemini-pro-vision

マルチモーダル プロンプトに関するおすすめの方法

次のベスト プラクティスに従うことで、マルチモーダル プロンプトを改善できます。

プロンプト設計の基礎

  • 説明を具体的にする: 誤解を生まないように、明確で簡潔な手順を作成します。
  • メッセージにいくつかの例を追加する: 現実的な少数ショットの例を使用して、実現したいことを説明します。
  • ステップごとに分類する: 複雑なタスクを管理しやすいサブ目標に分割し、モデルをプロセス全体に誘導します。
  • 出力形式を指定する: プロンプトで、マークダウン、JSON、HTML など、希望する形式に出力するよう要求します。
  • 単一画像のプロンプトでは画像を最初に配置する: Gemini では画像とテキストの入力順序は問いませんが、1 つの画像を含むプロンプトでは、その画像をテキスト プロンプトの前に配置したほうがパフォーマンスが向上する可能性があります。

    マルチモーダル プロンプトのトラブルシューティング

    • モデルが画像の関連部分から情報を取得していない場合: 画像のどの部分からプロンプトに情報を抽出するかのヒントをドロップします。
    • モデルの出力が一般的すぎる場合(画像に合わせて調整できない場合): プロンプトの開始時に、タスクの指示を与える前にモデルに画像の説明を求めるか、画像の内容を参照するようにモデルに求めます。
    • プロンプト設計の基礎

      このセクションでは、前のセクションで説明したベスト プラクティスをさらに進めます。

      注: 以下の Gemini 例のモデル結果は、実行ごとに異なる可能性があります。

      具体的に指示する

      プロンプトが成功するのに最適なのは、明確で詳細なプロンプトです。具体的な出力を想定している場合は、必要な出力を確実に得られるように、その要件をプロンプトに含めることをおすすめします。

      プロンプトの作成者にはプロンプトの意図が明確でも、実際にはあまり詳しくない場合があります。モデルの動作をカスタマイズするには、プロンプトがどのように(誤って)解釈される可能性があるかを検討し、指示する手順が具体的かつ明確であることを確認します。誤解を生じさせる余地は最小限に抑える

      この空港ボードの画像では、「この画像の説明」だけをモデルに指示することで、一般的な説明を生成できます。モデルで画像の時刻と都市を解析する必要がある場合は、そのリクエストをプロンプトに直接含めることができます。

      メッセージ モデルのレスポンス

      この画像について説明してください。

      画像は空港の到着案内と出発案内です。

      更新されたプロンプト レスポンスの改善
      旅行の時刻表

      この画像に示す空港ボードの時刻と都市を解析し、リストに変換します。

    • 10:50 モスクワ
    • 11:05 エディンバラ
    • 11:05 ロンドン
    • 11:10 ブカレスト
    • 11:30 キエフ
    • 11:35 ダブリン
    • 11:45 イーストミッドランズ
    • 12:15 ソフィア
    • 12:30 ロンドン
    • 12:30 ニューカッスル
    • 12:40 サンクトペテルブルク
    • 12:40 ロンドン
    • 12:45 マンチェスター
    • 例をいくつか追加する

      Gemini モデルは複数の入力を受け入れることができ、目的の出力を理解するための例として、これらの入力を使用できます。これらの例を追加すると、モデルがパターンを特定し、指定された画像とレスポンスの関係を新しい例に適用できるようになります。これは「少数ショット」学習とも呼ばれます。

      以下の例では、最初の出力は文で記述され、国(ブラジル)の情報も含まれています。別の形式やスタイルで出力する必要があり、国ではなく市区町村のみを必要とするとします。プロンプトに少数ショットの例を追加すると、モデルが望む方法で応答するように誘導できます。

      プロンプト モデルのレスポンス
      旅行の時刻表

      ランドマークとともに都市を特定します。

      ランドマークは、ブラジルのリオデジャネイロにあるコルドバのキリスト像です。

      更新されたプロンプト レスポンスの改善

      ランドマークとともに都市を特定します。

      コロッセオ

      都市: ローマ、ランドマーク: コロッセオ

      紫禁城

      都市: 北京、ランドマーク: 紫禁城

      禁止都市

      都市: リオデジャネイロ、ランドマーク: コルコバードのキリスト像

      順を追って説明する

      視覚的理解と推論の両方を必要とするような複雑なタスクの場合は、タスクを小さく簡単なステップに分割することをおすすめします。または プロンプトで「段階的に考える」ようモデルに直接 指示する場合も効果的です

      メッセージ モデルのレスポンス

      トイレット ペーパーがなくなるのはいつ?

      もうすぐ、サイコロを振る回数は残り 3 回しかありません。

      更新されたプロンプト レスポンスの改善

        1. まず、この写真に描かれているトイレット ペーパー ロールの数を数えます。
        2. 次に、一般的な人が 1 日に使うトイレット ペーパーの量を特定します。
        3. トイレット ペーパーの分量を計算しましょう。

        1. この写真にはトイレット ペーパーが 3 ロールあります。
        2. 一般的な人間の 1 日あたりのトイレット ペーパーの使用量は 20 枚ほどです。
        3. 1 巻につき 200 枚のシートであれば、1 巻あたり約 10 日間持続します。そのため、サイコロを振った回数は 3 回で約 1 か月間有効です。

      数学の問題やその他の文章問題は、モデルに段階的に考えるよう指示するのに最適な候補です。

      プロンプト レスポンス

      このシーケンスの 4 番目の項は何ですか。

      -135

      モデルからの回答が正しくありません。これを改善する方法としては、プロンプトに答える前に問題を解析するようモデルに指示する方法があります。

      プロンプト レスポンス

      まず、画像内の数式を解析します。

      その式に基づいて、「このシーケンスの 4 番目の項は何ですか?」と回答してください。

      結果をクリックして展開します

      $$ b(n) = b(n-1) * (-3) $$

      $$ b(1) = 15 $$

      1. n = 4 を式に代入します。
      2. $$ b(4) = b(4-1) * (-3) $$

        $$ b(4) = b(3) * (-3) $$

      3. b(3) の値はわからないため、式に n = 3 を代入します。
      4. $$ b(3) = b(3-1) * (-3) $$

        $$ b(3) = b(2) * (-3) $$

      5. b(2) の値はわからないため、式に n = 2 を代入します。
      6. $$ b(2) = b(2-1) * (-3) $$

        $$ b(2) = b(1) * (-3) $$

      7. b(1) の値は 15 であることがわかっているので、これを次の式に代入します。
      8. $$ b(2) = 15 * (-3) $$

        $$ b(2) = -45 $$

      9. b(2) の値がわかったので、これを b(3) の式に代入します。
      10. $$ b(3) = b(2) * (-3) $$

        $$ b(3) = -45 * (-3) $$

        $$ b(3) = 135 $$

      11. b(3) の値がわかったので、これを b(4) の式に代入します。
      12. $$ b(4) = b(3) * (-3) $$

        $$ b(4) = 135 * (-3) $$

        $$ b(4) = -405 $$

      したがって、シーケンスの 4 番目の項は -405 です。

      このモデルの応答は正解です。応答をさらに効率化するために、モデルに順を追って考えるよう指示できます。

      更新されたプロンプト レスポンスの改善

      このシーケンスの 4 番目の項は何ですか。順を追って考えてください。

      最初の項は 15 です。

      2 番目の項は、b(1) × (-3) = 15 × (-3) = -45 です。

      3 番目の項は、b(2) × (-3) = -45 × (-3) = 135 です。

      4 番目の項は、b(3) × (-3) = 135 × (-3) = -405 です。

      出力形式を指定してみてください

      特にダウンストリームのタスクでモデル出力を取り込む必要がある場合、よくある問題は、モデル出力を特定の形式(マークダウン、JSON、HTML など)にする必要があることです。この形式での出力を生成するには、プロンプト内でモデルに出力の生成を指示します。以下に 2 つの例を示します。

      メッセージ モデルのレスポンス

      この画像のテーブルをマークダウン形式に解析します

      | 件名 | ステータス | 時間 | 開始日 | 期限 |

      | ------- | ------ | ---- | --------- | ------ |

      | 数学 | 完了 | 1 時間半 | 2023/11/29 | 2023/12/1 |

      | 地域 | 完了 | 30 分 | 2023/12/2 | 2023/12/4 |

      | 物理学 | 進行中 | 2 時間 | 2023/12/3 | 2023/12/5 |

      | 生物学 | 未開始 | 6 時間 | 2016/11/2 | 2023/12/6 |

      プロンプト モデルのレスポンス

      次の属性のリストを指定します。

      食材、料理の種類、ベジタリアンかどうかなどのデータを JSON 形式で指定

      ```json```

      {

      "ingredients": [

      "rice",

      "shrimp",

      "clams",

      "mussels",

      "peas",

      "tomatoes",

      "onions",

      "garlic",

      "olive oil",

      "paprika",

      "salt",

      "pepper"

      ],

      "type of cuisine": "Spanish",

      "vegetarian": false

      単一画像のプロンプトでは、画像を最初に配置してください

      Gemini では画像とテキストをプロンプト内の任意の順序で解釈できますが、テキスト プロンプトの前に画像を 1 つ配置すると、より良い結果が得られる可能性があります。次のサンプルでは、各プロンプトのテキストの前に画像が表示されます。

      マルチモーダル プロンプトのトラブルシューティング

      有用な回答が得られない場合は、メッセージのトラブルシューティングが必要になることがあります。たとえば、次のような戦略をお試しください。

      モデルが画像の関連部分から情報を抽出していない場合

      より具体的なレスポンスを得るには、画像のどの部分からプロンプトに情報を引き出せば、レスポンスに反映させるのかを指定します。

      メッセージ モデルのレスポンス

      このおむつで出産できる日数は?

      おむつがなくなるまで 198 日間持ちます。

      更新されたプロンプト レスポンスの改善

      このおむつはどのくらい長持ちしますか?

      箱に表示されている体重からお子様の年齢を判断し、箱に入ったおむつの総数を使用します。

      合計数を、1 日に通うおむつの数で割ります。

      箱にはおむつが 198 個入っています。この箱には、おむつが 22 ~ 37 ポンドの子供用と記載されています。

      この体重帯の子供は、平均して 1 歳から 2 歳であると考えられます。

      2 歳児は通常、1 日に 6 回おむつを送るため、おむつは約 33 日間(198/6)持ちます。

      モデルの出力が一般的すぎて、画像入力に合わせたカスタマイズができない場合

      モデルが画像に対するレスポンスを調整できるように、推論タスクを行う前に画像の説明を求めます。

      メッセージ モデルのレスポンス

      これらの画像の共通点は何でしょうか。

      4 枚の画像はいずれも風景写真の例です。

      更新されたプロンプト レスポンスの改善

      まず、各画像の内容について詳しく説明します。これらの画像の共通点は何でしょうか。

      最初の画像は、スーツケースを梱包している人物です。2 つ目の画像はショッピング モールの何もない廊下を示しています。3 つ目の画像はトイレット ペーパーのロールです。4 つ目の画像は、荒れ模様の暗い海を示しています。

      これらのイメージの共通点は、どれも地上空間の例であるということです。限界空間とは、2 つの場所や状況の間にある場所や状況のことです。不確実性やあいまいさの特徴があることが多い。

      1 つ目の画像は、自宅にいるときから旅行中にいるときの写真です。2 つ目の画像は、2 つの店舗の間にある廊下を示しています。3 つ目の画像はトイレット ペーパーです。これはバスルームを表しています。浴室は、私有地と公共の場の間の架け橋です。そこは、私たちが外の世界に出入りする準備ができる場所です。

      4 つ目の画像は、平穏と荒れ地の間にある海を示しています。

      限界空間は、わくわくすると同時に不安になることもあります。新しい起点または終点となります。振り返りの場でも行動の場でも構いません。

      また、画像の内容を参照するように明示的にモデルに指示することもできます。

      更新されたプロンプト レスポンスの改善

      これらの画像の共通点は何でしょうか。回答の画像に含まれる内容を確認してください。

      すべての画像は旅行に関連しています。1 枚目はスーツケースを梱包する人物、2 枚目はショッピング モールの何もない廊下、3 枚目はトイレット ペーパーの積み重ね、4 枚目は暗く荒れた海を示しています。

      これらの画像はすべて旅行に関連しています。人々が旅行するときに必要なものや使用するものだからです。1 つ目の画像には、旅行中に行うスーツケースをパックしている人物が写っています。2 番目の画像は、人々が旅行用の商品を購入するためによく行くショッピング モールの、誰もいない廊下を示しています。3 つ目の画像は、旅行中によく使うトイレット ペーパーの積み重ねです。4 つ目の画像では、荒れ模様の暗い海が撮影されています。旅行中に遭遇することがよくあることです。

      画像からクリエイティブを生成する場合も同じヒントを活用できます。ウサギを使用する次の例では、画像の特徴を含めるようモデルに明示的に要求することで、出力を改善できます。

      メッセージ モデルのレスポンス

      この画像について詩を書いてもらえますか?

      小さなウサギ、柔らかくて茶色の
      野原の中を上下跳び。
      耳は長く、しっぽはとても小さい。
      きみはみんなの中で最もかわいい。

      あなたは緑と甘い草をかじり、
      そして、私を見たら飛び去ります。
      でも、私はずっと友だちよ。
      小さなウサギ。最後までさよなら。

      更新されたプロンプト レスポンスの改善

      この画像について、場所を記載した、詳細でドラマチックな詩を書いてもらえますか?

      緑の上の小さなウサギ、
      耳が長いので切望。
      向こうに何が見えるか、
      遠くで、何を見ている?

      海?
      太陽に光って輝いている?
      打ち寄せる波の音や
      好きなリズムなら、

      リトルウサギ、本当のことを教えて。
      あなたの興味を引いたものは何ですか?
      塩風?
      それともカモメの鳴き声?

      たまたま、すべてのものが広がっていることでしょう。
      小さな世界が広がっているのです。
      夢は歩み、
      冒険は広げられる。

      リトルウサギだ。どんな夢を夢見ているのだろう。
      あなたは芝生に座っているので、静かに。
      海の奥深くを探検したい、
      陸から抜け出せる場所まで移動したいですか?

      どうでもいいけど、このウサギ
      あの驚きの光を輝かせ続けるよう。
      夢と希望のために、
      世界はあなたを創るのを待っています。

      プロンプトのどの部分が失敗した場合のトラブルシューティング

      モデルが最初に画像を理解しなかったためにプロンプトが失敗したのか、それとも画像を認識したが後で正しい推論手順を実行しなかったのかを判断するのが難しい場合があります。

      理由を明確にするために、画像に何が含まれているかをモデルに説明するように求めます。

      以下の例では、お茶と組み合わせたときに驚くようなスナック(ポップコーンなど)がモデルが反応した場合、まずトラブルシューティングを行い、画像に紅茶が含まれていることをモデルが正しく認識したかどうかを判断できます。

      メッセージ トラブルシューティングのプロンプト

      これなら、1 分で作れるおやつは?

      この画像の内容を説明します。

      もう 1 つの戦略は、モデルにその推論を説明してもらうことです。そうすると、推論のどの部分が逸脱しているか(ある場合)を絞り込むことができます。

      メッセージ トラブルシューティングのプロンプト

      これなら、1 分で作れるおやつは?

      これなら、1 分で作れるおやつは?理由をお聞かせください。

      サンプリング パラメータの調整

      各リクエストで、マルチモーダル プロンプトだけでなく、サンプリング パラメータのセットをモデルに送信します。モデルが生成する結果は、パラメータ値によって異なります。さまざまなパラメータを試して、タスクに最適な値を見つけてください。最も一般的に調整されるパラメータは次のとおりです。

      • temperature
      • トップ P
      • トップ K

      temperature

      温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、トップ P とトップ K が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度 0 は確定的であり、最も高い確率のレスポンスが常に選択されることを意味します。

      ほとんどのユースケースでは、温度 0.4 から始めることをおすすめします。よりクリエイティブな結果が必要な場合は、温度を上げてみてください。明らかな幻覚が見られる場合は、温度を下げてみてください。

      トップ K

      トップ K は、モデルが出力用にトークンを選択する方法を変更します。トップ K が 1 の場合、次に選択されるトークンはモデルの語彙内のすべてのトークンで最も確率の高いもの(グリーディ デコードとも呼ばれます)であることを意味します。トップ K が 3 の場合は、温度を使用して、最も確率が高い 3 つのトークンから次のトークンが選択されることを意味します。

      トークン選択のそれぞれのステップで、最も高い確率を持つトップ K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを使用して選択されます。

      ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。トップ K のデフォルト値は 32 です。

      トップ P

      トップ P は、モデルが出力用にトークンを選択する方法を変更します。トークンは、確率の合計がトップ P 値に等しくなるまで、確率の高いもの(トップ K を参照)から低いものへと選択されます。たとえば、トークン A、B、C の確率が 0.6、0.3、0.1 で、トップ P の値が 0.9 の場合、モデルは温度を使用して A または B を次のトークンとして選択し、C は候補から外します。

      ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。トップ P のデフォルト値は 1.0 です。

      次のステップ

      • Google AI Studio を使用して、独自のマルチモーダル プロンプトを作成してみましょう。
      • プロンプト設計の詳細については、プロンプト戦略のトピックをご覧ください。