Microsoft Researchは人間が入力したテキストのプロンプトに反応して画像を生成・操作できるチャットボットシステムVisual ChatGPTをオープンソース化した。このシステムはOpenAIのChatGPTと22種類の視覚基盤モデル(VFM)を組み合わせ、マルチモーダルなインタラクションをサポートする。
このシステムは、arXivで公開された論文で説明されている。ユーザーは、テキストを入力したり画像をアップロードすることでボットと対話可能だ。またテキストによるプロンプトをもとに、ゼロから画像を生成することも、チャット履歴の過去画像から新たな画像を生成することもできる。このボットの主要モジュールはプロンプトマネージャーで、ユーザーからのプレーンテキストを "思考の連鎖" プロンプトに修正し、画像タスクを実行するためにVFMツールが必要かどうかをChatGPTに判断させる。マイクロソフトチームは次のように説明する。
ChatGPTは、様々なVFMを取り入れたオープンシステムであり、言語フォーマットを超えてユーザがChatGPTと対話を可能にする。このようなシステムを構築するために、私たちはChatGPTに視覚情報を注入するのに役立つ一連のプロンプトを綿密に設計し、それによって複雑な視覚的問題をステップバイステップで解決するのだ。
ChatGPTや他の大規模言語モデル(LLM)は、優れた自然言語処理能力を発揮するが、彼らはテキストという1つの入力モードのみを扱うように訓練されている。マイクロソフトのチームはマルチモーダルな入力を扱う新しいモデルをトレーニングする替わりに、プロンプトマネージャーを設計し、ChatGPTへのテキスト入力を生成して、CLIPやStable DiffusionなどのVFMを呼び出してコンピュータビジョンのタスクを実行するための出力を生成するようにした。
Visual ChatGPTアーキテクチャー画像出典: https://github.com/microsoft/visual-chatgpt
プロンプトマネージャーはLangChainエージェントをベースとしており、VFMはLangChainエージェントのツールとして定義されている。ツールが必要かどうかを判断するために、エージェントはユーザーのプロンプトと、画像ファイル名を含む会話履歴からの入力を取り入れ、プロンプトの接頭辞と接尾辞を適用する。プレフィックスにはテキストが含まれる。
Visual ChatGPTは画像を直接解読できないが、さまざまなビジュアルタスクのためのツール群がある。各画像は "image/xxx.png" のように格納され、Visual ChatGPTは画像ファイルを解読するために別のツールを呼び出すのである。
プレフィックスの追加テキストはChatGPTがユーザーの希望するタスクを処理するために「ツールを使う必要があるか?」と自問して、もしそうならば、画像ファイル名や生成する画像の説明テキストなどの入力データとともにツールの名前を出力する。エージェントはツールが要らなくなるまで、VFMツールを繰り返し起動して、画像をチャットに送信し、あわせてその時点で最後に生成されたテキストをチャットに送信する。
この作品に関するHacker Newsスレッドで、あるユーザーは、VFMが他の言語モデルよりもメモリ消費量がはるかに少ないと指摘し、その理由を尋ねた。そして別のユーザーはこう答えた。
画像モデルはかなりずれても満足のいく結果を出すことができる。画像のすべてのピクセルを10%ずつランダムに変化させても、少し低品質だが、それ以外は完璧にまとまった画像にしか見えない。これは言語モデルでは起こり得ないことだ。言語モデルが解決しようとしている問題は"より鮮明"であり、少しでもずれると、その結果は大きな間違いとみなされてしまう。つまり言語処理で十分なレベルの"鮮明さ"を得るためには、もっと大きなモデルが必要だ。
Visual ChatGPTのソースコードはGitHubで公開されている。