Visual ChatGPT を踏襲した視覚ツールの利用

#ChatGPT #LangChain

はじめに

  1. 本記事では Visual ChatGPT の枠組みを踏襲して LangChain の Tools を用いたマルチモーダルへのアクセス方法について紹介します。
  2. GPT-3 や ChatGPT では対象となるモダリティが言語情報に制限されていたこともあり、Visual ChatGPT の枠組みは事業範囲の拡大に貢献するかもしれません。

おことわり

  1. 再現のためのスクリプトについて現状公開予定はありません…。
  2. 著者は自然言語処理エンジニアとして絶賛勉強中です。記事の誤り、推奨される方法等がありましたらご指摘いただけますと幸いです。
  3. 本記事は読者層を明確に想定した上で書かれたものではありません。就職先として弊社を考えている学生の方々、弊社クローラサービスの利用を検討されているお客様、著者と同様に絶賛勉強中のエンジニアなど、特定の個人に刺さる内容であれば幸いです。

背景

ChatGPT が分野横断的な関心を集めるとともに、先週 OpenAI から発表された ChatGPT API を用いたプロダクト・サービス事業等への関心も高まっています。

最近では ChatGPT のような生成 AI による CRM (Customer Relationship Management) 向けの展開も注目されており、例えば Salesforce からは Einstein GPT および ChatGPT for slack、 Microsoft からは Dynamics 365 Copilot が発表されています。

余談 – ChatGPT の注目度について

上の画像は Google Trends における ChatGPT の人気度の動向(最も検索需要があったタイミングを100として、そこの数値と比較した割合)を表しています。

いまや自然言語処理や機械学習の分野を超えて注目されつつある ChatGPT ですが、国内では認知度が 3 割程度と低く、今後さらなる普及が期待されます (参考)。

開発者からの視点でいうと、prompt injection (Greshake+’23) や hallucination (Dziri+’22) などの対策についても注目していきたいですね。

Visual ChatGPT

ChatGPT ではモダリティを言語情報に限定している一方で、言語情報と視覚情報を融合したマルチモーダルなモデルについても高い関心が集まっています(Radford+’21; Yuan+’21; Alayrac+’22; Driess+’23; Liu+’23; Huang+’23)。

特に マルチモーダルドメインにおいても Chain-of-Thought の枠組みが有効であることが示されており(Zhang+’23)、今後も大規模言語モデルの推論能力をどのように活用するかについての議論が増えていくかもしれません。

そんななか 2023.03.08 (水) に、視覚ドメインにおいて ChatGPT を利用する論文が公開されました。

Wu+’23 – Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models [arXiv][GitHub]

現状、本ブログでの解説予定はありませんが、簡単に説明すると視覚基盤モデル(VFM)を自然言語から扱えるように Prompt Manager を提案し ChatGPT を活用して視覚タスクを可能にする、といったものです(詳細は論文を参照ください)。

Visual ChatGPT のアーキテクチャ概要は以下の通りです。

Visual ChatGPT

左の黄色の枠線内がユーザとの対話内容になります。
ここでは、ユーザが 「画像中のソファを机に置き換え、さらに水彩風にして」 という問いかけをモデルにしています。

ユーザからのクエリを受け取ると、ChatGPT のシステムの説明や対話履歴を含め、選択したツールを使用するためのプロンプトを作成し ChatGPT に入力します。

Visual ChatGPT では LangChain の ReAct(conversational-react-description) [paper] を使用してこれらを実現しています。

ちなみに ReAct は Chain-of-Thought を実現する一つの方法で、一度出力した内容に対する思考を自己で行い、その上で必要な行動を選択し反復的に出力内容を改良します。
AI を用いた情報抽出システムの試作 #00 というブログでも紹介していますので、興味がありましたらご覧ください

LangChain の Tools を用いた ChatGPT のマルチモーダル化

本記事では Visual ChatGPT の スクリプト を踏襲して、ChatGPT をマルチモーダルに対応させてみました。

なおオリジナルのスクリプトでは、Gradio の Chatbotstate を用いて、対話型の UI を提供していますが、今回はターン数 1 の対話を想定します。

LangChain の ReAct では、現在足りていない情報を補うため Tools に基づいて、言語モデル自身の行動を決定していきます。
具体的には検索やニュースに関する API、計算能力に優れたモデルの呼び出しなどを行います。

Visual ChatGPT では Tools として Stable DiffusionControlNet など様々なモデルを扱いますが、今回は BLIP を用いて、画像を言語情報に記述します。

なお BLIP のキャプション生成スクリプトについては こちら を参考にしています。

今回 Tools としては以下の二つを用いました。

  1. “Get Photo Description”: BLIP を用いて入力画像に対して言語情報を記述する
  2. “Search”: SerpAPI を用いて、特定情報の検索を行う

Chain-of-Thought の枠組みとしては Visual ChatGPT 同様 LangChain の conversational-react-description を用いています。

入力画像に関連する情報の検索

今回は「画像中の物体に対して外部知識を利用してユーザの問いかけに回答する」設定となります。
具体的には、ユーザは「画像に写っている料理が食べられる港区のレストラン(Google 評価 3.5 以上)を教えて」という問いかけを行います。

実際の入力文は以下としました。

Please describe the dish shown in the following image, and 
find out which restaurants in Minato Ward have a Google search rating of 3.5 or higher,
where you can enjoy the dish in this image.

Image: https://i.gyazo.com/fc58ea5f7d703d7794b7d719612f3420.png

上記の画像 URL は著者の写真フォルダから選択しました(横浜にある PENNY’S DINER さんで撮ったものです)。

penny's diner

上記の問いかけに対してモデルからは以下のような出力が得られました。

Based on the search results, it looks like Burger Revolution Tokyo Wine & Bar Roppongi, Wagyu to Worldwide, Tsubame Grill (Shinagawa-Ekimae), The Steakhouse, Authentic, Munch\'s Burger, and other restaurants in Minato Ward have a Google search rating of 3.5 or higher and serve hamburgers and french fries.

検索 API を用いているので当たり前かもしれませんが、港区にある Google 評価 3.5 以上のハンバーガー屋さんが応答に含まれています。

またモデルの出力結果をみてみると、①入力情報である画像の URL から BLIP を用いて言語情報を記述し、②記述内容に対して SerpAPI を用いて検索行動を行っていることが分かります。

(思考) Do I need to use a tool? Yes
(行動) Get Photo Description
(行動引数) https://i.gyazo.com/fc58ea5f7d703d7794b7d719612f3420.png
(行動結果) a hamburger and french fries

(思考) Do I need to use a tool? Yes
(行動) Search
(行動引数) Restaurants in Minato Ward with a Google search rating of 3.5 or higher that serve hamburgers and french fries
(行動結果) 1. Burger Revolution Tokyo Wine & Bar Roppongi · 2. Wagyu to Worldwide · 3. Tsubame Grill (Shinagawa-Ekimae) · 4. The Steakhouse · 5. Authentic · 6. Munch\'s Burger ...

(思考) Do I need to use a tool? No
(出力) Based on the search results, it looks like Burger Revolution Tokyo Wine & Bar Roppongi, Wagyu to Worldwide, Tsubame Grill (Shinagawa-Ekimae), The Steakhouse, Authentic, Munch\'s Burger, and other restaurants in Minato Ward have a Google search rating of 3.5 or higher and serve hamburgers and french fries.

おわりに

本記事では Visual ChatGPT のスクリプトを踏襲し、LangChain の Tools に BLIP を用いて、入力画像に関連する情報の検索を行いました。

ChatGPT のマルチモーダルドメインへの拡張については、LlamaIndexDonutEnc-Dec を用いたデータローダを既に提供していたので、本記事は新規性にかけるかもしれません。

ただ LangChain の Tools として視覚モデル等を用いることで、我々が対応可能な範囲というのが格段に増えたのかなと思います。

たとえば、文書画像に対する編集が可能な UDOP や、多様なドメインに対して頑健性を示す Visually-rich Document Understanding モデルの ERNIE Layout などを利用すれば対話形式に文書画像やスライドなどの視覚資料を校正することが出来るかもしれません。

また最近では ChatGPT を用いてロボット制御を行う取り組みも注目されており(参考)、こちらについても何か有効な活用方法が考えられるかもしれません。

将来の展望

  1. 画像に対する言語の記述については、Dense Captioning (Johnson+’16; Wu+’22) や GPT-3 を用いた特徴の記述 (Menon+’23) など、様々な方法を検討していきたいです。
  2. 今回は BLIP を用いた画像キャプショニングのみを対象としましたが、Visual ChatGPT で使用されている ControlNet などをはじめとした様々なツールを作成したいと思っています。
  3. 来週には GPT-4 が発表される噂があるため、画像・音声などのマルチモーダル分野での大規模言語モデルの利用方法についても検討していきます。

参考

ChatGPT について

  1. 松尾+’23 – AIの進化と日本の戦略 (第2回AI新時代の日本の戦略 – 自民党)
  2. 黒橋+’23 – ChatGPT の仕組みと社会へのインパクト (NII 教育機関DXシンポ)
  3. オミータ+’22 – 話題爆発中のAI「ChatGPT」の仕組みにせまる! (Qiita)
  4. Lambert+’22 – Illustrating Reinforcement Learning from Human Feedback (RLHF) (HuggingFace Blog)
  5. Rajani+’22 – What Makes a Dialog Agent Useful? (HuggingFace Blog)
  6. Turovsky+’23 – Framework for evaluating Generative AI use cases (Linked in)

Vision and Language について

  1. NTT人間情報研究所チーム+’23 – NLPとVision-and-Languageの基礎・最新動向 (1) / DEIM Tutorial Part 1: NLP
  2. NTT人間情報研究所チーム+’23 – NLPとVision-and-Languageの基礎・最新動向 (2) / DEIM Tutorial Part 2 Vision-and-Language
  3. Gan+’22 – Vision-Language Pre-training: Basics, Recent Advances, and Future Trends
  4. 金森+’22 – 2022年版・深層学習による写実的画像合成の最新動向 / GPU UNITE 2022 / Day3:CG研究 セッション
  5. 品川+’22 – Vision and Language技術の最新動向 / NAIST DSCサマーセミナー
  6. 高島+’22 – Foundation Models / cvpaper.challenge メタサーベイ
  7. 西田+’22 – 自然言語処理とVision-and-Language / 2022年度人工知能学会全国大会(第36回) チュートリアル講演
  8. 牛久+’22 – Transformerの最前線 〜 畳込みニューラルネットワークの先へ 〜 / SSII 2022 チュートリアル講演
  9. Agrawal+’22 – Vision-Language Pretraining: Current Trends and the Future / ACL Tutorial
  10. 田中+’22 – 文書画像に対する質問応答技術の最新動向 / 第2回AI王 招待講演
  11. Li+’22 – Vision-Language Intelligence: Tasks, Representation Learning, and Large Models
  12. 品川+’22 – Vision and LanguageとTransformers / 第6回 統計・機械学習若手シンポジウム チュートリアル講演
  13. 西田+’21 – 言語と視覚に基づく質問応答の最新動向 / 第1回AI王 招待講演
  14. 西田+’19 – 事前学習言語モデルを用いたVision & Languageの動向

その他

  1. 広木+’23 – 大規模言語モデル AI が道具をつかえるようになったという衝撃(NewsPicks)
  2. Schick+’23 – Toolformer: Language Models Can Teach Themselves to Use Tools

著者:宮脇峻平(データサイエンス部) [プロフィール]
最終更新日: 2023.03.10

ShtockData

お問い合わせフォーム

お問い合わせ項目を選択してください