Upgrade to Pro — share decks privately, control downloads, hide ads and more …

宮脇+'23 - プログラム生成・実行による構成的推論, LLM Meetup Tokyo #3

宮脇+'23 - プログラム生成・実行による構成的推論, LLM Meetup Tokyo #3

Shumpei Miyawaki

July 05, 2023
Tweet

More Decks by Shumpei Miyawaki

Other Decks in Technology

Transcript

  1. P.1 LT ⽬的 • ReAct, function calling とは異なる推論⽅法として プログラムベース構成的推論 を紹介

    • 発表を通して「推論⽅法の⻑所・短所の議論」「これ出来そう」のような議論ができると嬉しい https://note.com/catshun_/n/na18e2c470b2f
  2. P.3 構成性 [Marelli+’14; Partee+’84; Frege 1892] ⽂や句の意味は、単語の意味と⽂の構造に従って構成的に理解される プログラム ⽣成・実⾏ による

    構成的推論 複雑なタスク は構成性を仮定して サブタスク に分解 [Krishnamurthy+’13; Andreas+’16] (従来)既製パーサ性能 [Andreas+’16]、⾼い学習コスト [Hu+’17] が問題であった (現在)汎⽤性の⾼い LLM の出現 によって 既製パーサ性能依存・学習コスト の問題が緩和 (現在)プロンプトによるタスク分解 [Khot+’22; Dua+’22; Zhou+’23; Press+’23] も有効性が検証されている 参考︓岡崎 (東北⼤) +’15 – 単語の分散表現と構成性の計算モデルの発展 https://www.slideshare.net/naoakiokazaki/20150530-jsai2015
  3. P.4 プログラム ⽣成・実⾏ による 構成的推論 Gupta+'23 - Visual Programming: Compositional

    Visual Reasoning Without Training (CVPR) ① 物体検出(ヒト) ② 物体検出(ラクダ) ⑤ 算術演算 2 = 1 + 1 〜 〜 ʢ72"ʣώτͱϥΫμͷ߹ܭ਺͸ʁ 物体1 = localize ( img=画像in , query=“ヒト” ) 物体2 = localize ( img=画像in , query=“ラクダ” ) 個数1 = count ( boxes=物体1 ) 個数2 = count ( boxes=物体2 ) 答え = eval ( expr= “{個数1 } + {個数2 }” ) ① ② ③ ④ ⑤ 1. プログラム⽣成︓ 事前に定義された関数集合を⽤いて LLM がプログラムを⽣成 2. プログラム実⾏︓ ⽣成したプログラムを実⾏し最終出⼒を得る タスク⼊⼒
  4. P.5 プログラム ⽣成・実⾏ による 構成的推論 Gupta+'23 - Visual Programming: Compositional

    Visual Reasoning Without Training (CVPR) GPT-3 に few-shot のプログラム事例を与えて 対象タスクのプログラムを⽣成(右図) BMW を Audi に修正、曇り空を晴れ空に修正 ⾚い⾞を⻘い⾞に修正 ⽩い Audi をポップに彩って Nicole Kidman の顔を :p に修正して
  5. P.6 プログラム ⽣成・実⾏ による 構成的推論 Gupta+'23 - Visual Programming: Compositional

    Visual Reasoning Without Training (CVPR) ③ の⽂字列を解析 { ”kwargs”: { ”boxes”: ”物体1 ” }, ”function”: ”count”, ”output”: ”個数1 ” } 物体1 = localize ( img=画像in , query=“ヒト” ) 物体2 = localize ( img=画像in , query=“ラクダ” ) 個数1 = count ( boxes=物体1 ) ① ② ③ GPT-3 が⽣成したプログラムを逐次実⾏ 実⾏結果を保存 ”物体1 ”: , ”物体2 ”: , program.state key = kwargs[“boxes”] boxes = program.state[key] program.state[output] = len(boxes) ③ を実⾏ ③ の結果を保存
  6. P.7 結局どれが良いの︖(個⼈的妄想) 推論⽅式 ⾔語 (柔軟性) LLM 呼出 内省・検証 リスク ReAct

    ボトムアップ ⾃然⾔語 (⾼い) 思考回数分 Reflexion hallucination snowballing function calling ボトムアップ ⾃然⾔語 (⾼い) 思考回数分 (×1~2) ︖ プログラマ依存 プログラム 構成的推論 トップダウン プログラム⾔語 (低い) プログラム⽣成分 PEARL プログラマ依存 A. タスク設計に応じて柔軟に使い分けるのが良い プログラムベース推論が優れるのは︓ ・タスク間で多くのサブタスクが共通する場合(視覚タスクでいうと detect, crop など) ・⼊⼒と出⼒の型が⼀意に定まる再現性のある処理(読書感想⽂などは不向き)
  7. P.9 どんなアプリケーションか︖ 🙆 ⾸都圏の⼋⽉に⾏われる花⽕⼤会 (動機)地理空間情報の関連タスク(旅⾏計画・マップ作成など)ではサブタスクが共通している (概要)マップ作成アプリケーション(ToDo: 旅⾏計画) 1. ユーザからのクエリ解析 2.

    “⾸都圏 ⼋⽉ 花⽕⼤会” で Google 検索 3. 検索結果からクエリに該当する場所情報を取得 4. 各場所に対してジオコーディング 5. 結果を Google Map 上にプロット これらのサブタスクは旅⾏計画等でも共通する → プログラムベース構成的推論 を採⽤
  8. P.11 興味︓マルチモーダル × ⾔語媒介推論 ⾔語 Enc 記憶領域 ⾔語 Dec 多くのアプリケーションの対象範囲

    実世界の事象 実世界へ投影 ここをやりたい ここ × 時間変化 空間変化 旅⾏先到着など GPS 情報が変化したらユーザ嗜好に合わせて 歴史情報、アニメ聖地、飲⾷店マップ等の旅⾏ガイドを⾃動で作成する → 旅⾏計画~旅先~振り返り をサポートしてくれる旅⾏代理エージェント