AI コンテキストにおける画像管理について社内でいくつかの質問があったため、公開の問題として考慮事項をいくつか取り上げたいと思います。
問題点
現在の LLM は複数のモダリティをサポートしています。主要なベンダーはすべて画像を入力としてサポートしており、一部のベンダー(特に Google)は画像を出力としてサポートしています。
これにより、Discourse AI は「画像」を LLM にどのように提示するかという問題に直面します。
具体的には、この投稿例がある場合:
こんにちは、私の写真です:

もう一枚あります

終わり
これを LLM にどのように提示するか:
オプション 1:Markdown を保持し、画像を末尾に追加
アプローチ: すべてのテキストをまとめて、画像を末尾に追加します。
[
"こんにちは、私の写真です:

もう一枚あります

終わり",
image1,
image2
]
オプション 2:Markdown を保持し、画像をインラインで埋め込む
アプローチ: コンテキストと順序を保持するために、テキストと画像をインターリーブします。
[
"こんにちは、私の写真です:
",
image1,
"もう一枚あります
",
image2,
"終わり"
]
オプション 3:Markdown を削除し、画像を末尾に追加
アプローチ: 画像の Markdown 構文を完全に削除し、実際の画像を末尾に追加します。
[
"こんにちは、私の写真です:
もう一枚あります
終わり",
image1,
image2
]
オプション 4:説明を保持し、Markdown を簡略化
アプローチ: Discourse 固有のフォーマットを削除しますが、コンテキストのために画像の П 설명 を保持します。
[
"こんにちは、私の写真です:
もう一枚あります
Sam standing next to a window
終わり",
image1,
image2
]
オプション 5:説明をインラインにし、画像を埋め込む
アプローチ: Markdown を説明に置き換え、対応する画像を埋め込みます。
[
"こんにちは、私の写真です:",
image1,
"もう一枚あります
Sam standing next to a window",
image2,
"終わり"
]
現在、私たちの実装は(1)です。その理由の一部は、「レガシー」古いモデルでは画像の配置ができなかったことです。もう 1 つは、人々が投稿の再フォーマットに Discourse を使用することが多く、アップロードマーカーを削除すると LLM は何か別のことを言ったと思い込み、画像を含む投稿を再フォーマットできなくなることです。
さらに、Anthropic のような LLM ベンダーからの推奨事項は、常に画像を末尾に配置することです。これにより、LLM が解釈するのが最も簡単になります。
しかし、このアプローチは、Nano Banana: Image editing in Google Gemini gets a major upgrade のような LLM にとっては非常に問題があります。
これを試したところ、LLM は画像をレンダリングする代わりにアップロードマーカーを幻覚し始めました。
後から考えると理にかなっています。
LLM に upload://xd5Pv36uPIVKBqya8N5BzZGsJrN.png と言ったばかりだと伝えると、再びそのような奇妙なことを言っても驚くべきではありません。
(2)に移行することについては賛否両論あり、「LLM が言ったことをエコーして幻覚を回避する」ためには(3)が唯一の賢明な方法のように思えます。したがって、この厄介な問題に対する私たちの解決策はいくぶん混合されています。
この作業を行っている間、出力と入力が同じように扱われるさらに良いソリューションを作成できるかどうかを検討しましたが、実用的ではないと思います。(アップロードの説明が十分長い場合に保持することも試しました。)
ただし、今のところは
LLM への入力には(1)
LLM からの出力には(3)
長期的には:
入力には(2)を検討する価値があります
出力のコンテキスト位置を保持しながら削除することも検討する価値があります。
LLM ベンダーが画像と共に画像の追加メタデータを供給できるようにしないのは残念です。