0Pricing
AI Prompt Engineering · レッスン

テキストと画像の組み合わせ

統合されたマルチモーダルプロンプトを作成します。

「テキストと画像の組み合わせ」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。

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

マルチモーダルプロンプトは、テキストに画像を添付したものではありません。画像トークンとテキストトークンが同じコンテキスト内に存在し、互いにアテンションを向ける単一のインターリーブされたシーケンスです。モデルは「画像を見てからテキストを読む」のではなく、融合されたトークンストリームを処理します。

  • 画像パッチは、テキストトークンと同じ埋め込み空間に射影されます。
  • 順序が重要です。画像の前に置いた質問は、画像の後に置いた質問とは異なるアテンションを促します。
  • 作成するのは2つのプロンプトではなく、2つの表層形式を持つ1つのプロンプトです。

インターリーブの順序とアンカリング

指示に対して画像をどこに配置するかで、挙動が変わります。画像の後に指示を置くと、モデルはすでにエンコードした内容に基づいて質問を解釈できます。画像の前に置くと、あらかじめ示されたタスクに対する証拠として画像を扱います。

複数画像のプロンプトでは、後続のテキストから曖昧さなく参照できるよう、各画像をインラインでラベル付けしてください([Image 1]、[Image 2])。

messages = [
  {'role': 'user', 'content': [
    {'type': 'text', 'text': 'You will see two product photos.'},
    {'type': 'text', 'text': 'Image 1:'},
    {'type': 'image', 'source': img_a},
    {'type': 'text', 'text': 'Image 2:'},
    {'type': 'image', 'source': img_b},
    {'type': 'text', 'text': 'Which has better lighting? Cite the image label.'}
  ]}
]

エンコード前のタスク設定

ビジョンエンコーダーは情報を失います。暗黙のタスクに関係しない細部は、プーリングの過程で破棄されることがあります。画像を提示する前にタスクを明示すると、モデルが重要な領域に注目するよう誘導できます。

  • 一般的なキャプション要求からは、一般的な特徴しか得られません。
  • 具体的な質問(『ボード上の抵抗器の数を数えてください』など)をすると、表現の予算が関連する部分領域に集中します。

細部が必要な場合は、最初に具体性を持たせてください。

解像度とタイル分割の予算

ほとんどのビジョンモデルは、高解像度画像を固定サイズのパッチに分割します。それぞれのパッチでトークンが消費されます。2000x2000の画像は多数のタイルに分割され、それぞれがダウンサンプリングされる場合があります。トークン予算はマルチモーダルプロンプトの見えにくい制約です。

  • 送信前に関心領域を切り抜いてください。モデルがズームしてくれるとは限りません。
  • 情報量の多い文書では、ページ全体を1枚の画像で送るのではなく、ページの切り抜きを送ってください。
  • プロバイダーが許容する最大タイル数を把握してください。それを超えると、細かい文字が読めなくなります。
def estimate_image_tokens(w, h, tile=512, per_tile=256):
    import math
    tiles = math.ceil(w / tile) * math.ceil(h / tile)
    return tiles * per_tile + per_tile  # + thumbnail

視覚認識のための構造化スキーマとしてのテキスト

画像と、テキストチャネル内の明示的な出力スキーマを組み合わせてください。画像が内容を提供し、テキストが契約を提供します。これは自由形式の説明よりもはるかに信頼性が高くなります。

表示されると想定しているエンティティをキーとするJSONを要求し、見えないフィールドにはnullを出力するよう指示してください。これにより、幻覚による細部の生成を抑制できます。

instruction = (
  'Extract from the receipt image. Return JSON: '
  '{"merchant": str|null, "total": number|null, '
  '"date": str|null, "line_items": [{"name": str, "price": number}]}. '
  'Use null when a field is not legible. Do not invent values.'
)

指示表現による曖昧さの解消

指示表現(『これ』『左側にあるもの』『強調表示されたボックス』など)は、テキストを画像内の領域に結び付けます。画像にあらかじめ注釈を付けられる場合(ボックスを描く、矢印を追加するなど)、テキストによる参照は空間的な表現だけの場合よりもはるかに堅牢になります。

  • 空間を表す語(『右上』など)は、回転や切り抜きがあると誤りやすくなります。
  • 番号付きのマーカーを重ねて『object #3』と指定すれば、曖昧さがなくなります。
  • マーカーを追加するための画像の前処理は、正当なプロンプトエンジニアリングの手法です。

異なるモダリティを使った少数ショット

画像からテキストへの例を提示して、形式と推論のスタイルを固定できます。各ショットは、画像と理想的な回答を組み合わせたペアを交互に並べたものです。モデルは、これらのデモンストレーションから対応関係を推測します。

例の画像は実際のデータ分布を代表するものにしてください。異なる領域の例を使うと、誤った特徴の選択方法を学習させることになります。

shots = [
  ('image', chart_a), ('text', 'Trend: upward. Peak: Q3. Anomaly: none.'),
  ('image', chart_b), ('text', 'Trend: flat. Peak: Q1. Anomaly: Q4 dip.'),
  ('image', target_chart), ('text', 'Trend:')  # model completes
]

主張をピクセルにグラウンディングする

重要度の高い情報抽出では、各主張が画像のどこに由来するのかをモデルに示させてください。おおよそのバウンディングボックスや画像上に記載されたテキストの引用は、検証可能な証拠として機能し、自信に満ちた捏造を大幅に減らします。

  • 『各値について、読み取ったラベルのテキストを正確に引用してください。』
  • 『各フィールドについて、おおよその正規化ボックス [x0,y0,x1,y1] を指定してください。』

グラウンディングによって、不透明な回答が監査可能な回答になります。

防ぐべき失敗モード

マルチモーダルモデルには、特徴的な失敗パターンがあります。

  • 小さいフォントや装飾的なフォントでのOCRのずれ。1/7や0/Oのような文字を取り違えます。
  • 似た物体が約6個を超えると発生するカウントの破綻。
  • キャプションバイアス。実際の場面ではなく、典型的な場面を説明してしまいます。
  • テキストチャネルによる上書き。自信のある誤ったテキストの主張が、正しい視覚的証拠を抑制してしまいます。

まず画像から導出し、その後でテキストによる主張と照合するよう求めることで、これらを軽減できます。

照合用プロンプト

テキストのコンテキストと画像が矛盾する場合は、どちらを優先するかを明示的に決める必要があります。モデルには信頼できるデフォルトの方針がないためです。たとえば、次のように指定します。『画像が提供されたメタデータと矛盾する場合は、画像を信頼し、相違を報告してください。』

この一文だけで、見えないエラーが、後続のパイプラインでレビューに回せる明示的な対立として表面化します。

policy = (
  'You are given metadata AND a photo. '
  'When they disagree, prefer the photo as ground truth. '
  'Emit {"value": ..., "conflict": bool, "note": str}.'
)

融合パイプラインの設計

本番環境のマルチモーダルプロンプトは、1回の呼び出しではなくパイプラインです。

  • 前処理:予算に合わせて切り抜き、注釈付け、縮小を行います。
  • 融合:タスクを先に示す指示と出力スキーマを交互に組み込みます。
  • グラウンディング:主張ごとの証拠を要求します。
  • 照合:モダリティ間の優先順位を明示します。
  • 検証:JSONを解析し、nullと競合フラグを確認します。

各段階によって、プロンプトだけでは縮小できない失敗の範囲を狭められます。

クイックチェック

高解像度の契約書スキャンから細かい注記を抽出し、信頼できる数値を取得する必要があります。

振り返り:テキストと画像の融合

統合されたマルチモーダルプロンプトは、1つの交互に並んだトークンストリームです。重要な手法は、ビジョンエンコーダーを誘導するタスク優先の設定、切り抜きによる解像度とタイル分割への配慮、nullを許容するフィールドを含む明示的な出力スキーマ、すべての主張に対するピクセルグラウンディング、そして競合時のモダリティの優先順位の明示です。前処理、融合、グラウンディング、照合、検証というパイプラインとして扱えば、壊れやすい視覚プロンプティングの部分を制御可能にできます。

よくある質問

「テキストと画像の組み合わせ」レッスンは無料ですか?

はい。「テキストと画像の組み合わせ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。

「テキストと画像の組み合わせ」で何を学びますか?

統合されたマルチモーダルプロンプトを作成します。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Prompt Engineeringを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「テキストと画像の組み合わせ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Prompt Engineeringレッスンでコードを書いて実行できますか?

はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. テキストと画像の組み合わせ
  2. モダリティをまたぐグラウンディング
  3. 音声、テキスト、画像の統合
  4. マルチモーダル出力の制御
← AI Prompt Engineeringに戻る