7.5K Views
September 15, 23
スライド概要
DL輪読会資料
DEEP LEARNING JP [DL Papers] MemoChat: Tuning LLMs to Use Memos for Consistent Long-Range Open-Domain Conversation 1 Takumi Ohkuma http://deeplearning.jp/
自己紹介 経歴 • • • • • 2019年 3月 東京大学 工学部 計数工学科卒業 2021年 3月 東京大学 情報理工学系研究科 創造情報学専攻 修士課程 修了 (修了時に研究科長賞受賞) 2021年 4月 同 博士課程 進学 (休学中) 2021年 6月 Airion株式会社 創業 2022年 7月 AI団体「AcademiX」設立 (link) その他 大熊拓海 • • • 東京大学 工学系研究科 講義「深層学習」講師(2020年度-) 松尾研スプリングセミナー講義 監修 (画像認識) 講師 (画像認識/生成モデル) 2021年度未踏アドバンスト事業採択 • Twitter: @shien5963 (link)
3 書誌情報 • 題名:MemoChat: Tuning LLMs to Use Memos for Consistent Long-RangeOpen-Domain Conversation [1] ※ 本資料における出典の記載の無い図表は全て [1] より引用 • 著者:Junru Lu, Siyu An, Mingbao Lin, Gabriele Pergola, Yulan He, Di Yin, Xing Sun and Yunsheng Wu (ウォーリック大学、テンセントの研究チーム) • 出典:2023/08/23 に arxiv に投稿 • URL: https://arxiv.org/pdf/2308.08239 • Code: https://github.com/LuJunru/MemoChat
4 概要 • LLMを活用したChatbotが苦手としている「長期間 の会話の流れを踏まえた応答」能力の向上を目的 とした研究。 • 「会話の流れの構造的なメモ化」、「メモの検 索」、「メモを踏まえた応答」の三段階からな る”MemoChat”を提案し、追加のモジュール等を用 いることなく応答能力の向上に成功。 量子力学、ビジネスエチケット、数学と次々話 題が変化するような会話において、 MemoChatを用いることでユーザーからの過去 の話題への言及にも一貫性のある応答が可能。 • Vicunaの様な比較的小規模なモデルをファイン チューニングすることで、ChatGPTと同レベルのの 性能を実現。
5 目次 1. 研究の背景 2. MemoChatの導入 3. Fine-tuning 4. 実験 5. 結論
6 研究の背景 • 大規模言語モデル (LLM) の進化により対話システムの能力が飛躍的に向上し、 人間の様な対話 能力を獲得しつつある。 • 一方で従来の対話システムは「特定のトピックに閉じた短い対話」にフォーカスする場合が多 く、実際の会話で生じうる「様々なトピックを含む長い対話」での応答性能に課題。 • 複数の話題にまたがる長い会話を通じて、一貫性のある応答生成が困難 • 現在の主流のアプローチは以下通り • 過去の履歴もインプットに入れる (課題)際限なくインプットの長さを長く出来るわけではない • 過去の履歴から関係のありそうな部分をピックアップして参照する (課題)ピックアップの失敗により精度が低下しやすい
7 MemoChatの導入 • 複数の話題にまたがる長い会話を通じ た一貫性のある応答生成を可能とする 為、 ”MemoChat” を導入する。 • MemoChatでは以下の手順でLLMを活用 し、以前の会話内容を把握する。 1. メモの作成・更新 2. 関連するメモの検索 3. 検索されたメモを用いた応答 • 上記は特別なモジュール等を追加せず に機能する。 • GPTのAPI経由で活用することも可能
8 MemoChatの各機能 1. メモの作成・更新 2. メモの検索 3. メモを元に応答 • 一定の長さ毎に対話履歴を LLMで読み込む • ユーザーからの入力と、1で 作成した各話題の「トピック 名」と「要約」をLLMに入力 • 2の検索でヒットした話題と、 ユーザーからの入力をLLMに 入力 • 話題毎に分割 • 話題の切り替わりで分割 • 各話題のトピック名・要約・ 対話履歴を保存 • 長くなるので「対話履歴」 は入力しない • ユーザーからの入力と関連の ある履歴を任意の数選択 • 入力する話題数が限られて いるので対話履歴も入力 • 適切な応答を生成する 一旦「メモ」を挟むことで、履歴の検索性能・効率を向上できる
9 プロンプトの設計 メモの作成・更新 メモの検索 応答生成 • メモに関する操作は全てLLM ベースで行われ、左図のプロン プトがそれぞれ用いられる。 • それぞれのプロンプトは似たよ うな構造をしており、 • 役割の指示 • タスクに与える入力 • タスクの詳細説明 • fine-tuning時の正解データ (プロンプトではない) で構成される。
10 メモの作成・更新 左図はメモの作成・更新に関するプロンプトである。 • NUM行の対話履歴の入力に対し、タスク説明に従ってメモ化し てください、という宣言 • ユーザーとBotによるNUM行の対話履歴 • Chain of Thought と 出力フォーマットの指示 • 対話中の全てのトピックを抜き出す • 各トピックの範囲を重複なく全ての区間を網羅する様指定 • 各チャットを要約 • トピック、要約、区間を以下のjson形式で出力 • (正解データ)
11 メモの検索 左図はメモの検索に関するプロンプトである。 • 1つのクエリと複数のトピックの選択肢を与えられた状況で、以 下のタスク説明に従った処理を実行して下さい • クエリ文(ユーザー入力)と複数のトピックが与えられる • クエリ文に関係のあるトピックを1つ以上選択する どれにも関係なかった場合に選択する選択肢が存在する 出力はN#Mの様に’#’で区切られる 出力の数はNUMを超えてはいけない • (正解データ)
12 メモを元にした応答 左図はメモの検索に関するプロンプトである。 • 関連するトピックと、直近の幾つかの対話文が与えられるので、 簡潔な一貫性のある有用な応答をするような指示 • NUM個のトピックと、直近の対話文 • ユーザーからの質問(ユーザーからの入力) • (理想的な応答)
13 Fine-tuning • 前スライドで紹介した3タスクの出力精度を上げるために、 (オープンソースLLMを)fine-tuningする。 • 用いるデータは以下のとおりである。 • TopicoQA [2] (平均4トピックを含む13応答の人間同士の対話3.9k) • DialogSum [3] (1トピックのみ平均5.5応答の人間同士の対話13k) • 1トピックしか含まないので、学習時には複数組み合わせて使う • Alpaca-GPT4 [4] (人間とGPT4による対話、トピックは設定されていない) • 左表に示す様に、メモ作成と検索ではTopicoQAとDialogSumを、 応答生成ではDialogSumとAlpaca-GPT4を用いる。 • 応答生成の場合のみに使われるAlpaca-GPT4は、未知のトピックに対す る対応力を高める為。 • 訓練データとは別の400データでバリデーション。
14 実験 以下の二つの観点から性能を評価したい 1. メモの生成、メモの検索、応答生成のそれぞれに対する性能 • メモの枠組みが機能しているかの評価 2. 「過去のトピックに関する質問」や「複数トピックにまたがる質問」に対す る、メモを活用した応答性能 • メモが従来のChatBotの弱点に有効か評価 (従来の弱点に関しては「研究の背景」で説明しました) 上記の評価を可能にするデータセットを独自の構築(次スライドで説明)
15 データセット • MemoChatの性能を評価する為に独自のデータセット「MT-Bench+」を作成 • MT-Bench [5] というデータセットベースに作成 (オープンドメインな2ターンの対話80個) • 作成方法は以下の通り • 2ターンの対話を人の手で4ターンに拡張 • 3~4つの対話を選び、そこからそれぞれ2~4の質問を選び、12~15ターンの対話を構成 • 最後に全体にまたがる質問を追加する • データセットは以下のリンクから取得できる • 4ターンに拡張されたMT-Bench: https://github.com/LuJunru/MemoChat/blob/main/data/mtbenchplus/4rounds_questions.json • 最終的なMT-Bench+: https://github.com/LuJunru/MemoChat/blob/main/data/mtbenchplus/mtbenchplus.json
16 モデル • オープンソースモデルである「Fastchat-T5-3b [5] 」と「Vicuna-7b/13b/33b [5] 」をベースにファインチューニングを行った。 • Fastchat-T5-3b: Flan-T5 [6] をchatbot向けにチューニングしたモデル • Vicuna: llama [7] をchatbot向けにチューニングしたモデル • ファインチューニングに用いたデータ量によって以下の3パターン用意 • 100% Training • 10% Training • Zero-shot(ファインチューニング無し) • API経由で使えるChatGPT等も、ファインチューニング無しのZero-shotモデ ルとして利用
17 評価方法(メモ) メモの性能評価 • メモの作成 • トピックとサマリーのそれぞれの性能を評価 • トピックは「Name Entity Recognition (NER) [8]」、サマリーは「BertScore [9]」 をベースしたPrecision, Recall、F1で評価(詳細は割愛) • メモの検索 • 単純なF1スコアで評価 • 応答の生成 • BertScoreで評価
18 評価方法(対従来の弱点) 従来の弱点に対する性能の評価 • BT-Batchの各対話の最後に追加した質問を以下の3タイプに分類 • Retrospection: 対話履歴の用語に関連した質問 • Continuation: 過去の知識をベースにした更なるタスク • Conjunction: 複数のトピックに渡る質問 • GPT-4を活用して、質問に対する答えを1~100点の間で評価する • GPT-4が人間に匹敵する分析能力を持っていることにより可能となる • 先行研究との精度比較として ChatGPT-2k, MPC-ChatGPT [10] , MemoryBank-ChatGPT [11] を利用
19 結果(メモ) 左にメモに関する結果を示す。 • Zero-shotの場合、オープンソースモ デルの精度が上がらない。 • プロンプトに指示された出力フォー マットの理解に失敗するらしい • ファインチューニングを行った場合、 予想通りよりモデル大きく、訓練 データが多い場合に精度が高い • ファインチューニング込みでGPTを上 回る性能を達成
20 結果(対従来の弱点) • MemoChat-ChatGPTが、その他のChatGPT系のモデルを大きく上回る結果となった。 • MemoChatの先行研究に対する優位性が明らかに • ChatGPT-2kは単純な過去の履歴のインプット、MPCやMempryBankはキーとなる情報を外部のメ モリに保存して利用する手法 • オープンソースモデルは、RetrospectionではMemo-ChatGPTと同等だが、その他2つでは ChatGPTよりは劣る結果となった。
21 結果の一例
22 結論 • LLMを活用したChatbotが苦手としている「長期間の会話の流れを踏まえた応答」能力の向 上を目的としたMemoChatを導入。 • Memochatでは「会話の流れの構造的なメモ化」、「メモの検索」、「メモを踏まえた応 答」の三段階により、追加のモジュール等を用いずに関連する過去の履歴を踏まえた履歴 を参照した応答を行う。 • 従来の手法を上回る性能をMemoChatは達成し、またファインチューニングによりオープン ソースモデルもChatGPTに近い性能を実現。 • 課題としては、オープンソースモデルにプロンプトのタスクを理解させるのが難しく、プ ロンプト設計を色々と頑張らないといけない点が挙げられる。(詳しくは論文参照)
23 引用 1. Lu, Junru, et al. "MemoChat: Tuning LLMs to Use Memos for Consistent Long-Range Open-Domain Conversation." arXiv preprint arXiv:2308.08239 (2023). 2. Vaibhav Adlakha, Shehzaad Dhuliawala, Kaheer Suleman, Harm de Vries, and Siva Reddy. 2022. TopiOCQA: Open-domain conversational question answering with topic switching. Transactions of the Association for Computational Linguistics, 10. 3. Yulong Chen, Yang Liu, Liang Chen, and Yue Zhang. 2021. DialogSum: A real-life scenario dialogue summarization dataset. In Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021. 4. Deepanway Ghosal, Yew Ken Chia, Navonil Majumder, and Soujanya Poria. 2023. Flacuna: Unleashing the problem solving power of vicuna using flan finetuning. arXiv:2307.02053. 5. Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, Siyuan Zhuang, Zhanghao Wu, Yonghao Zhuang, Zi Lin, Zhuohan Li, Dacheng Li, Eric Xing, et al. 2023. Judging llm-as-a-judge with mt-bench and chatbot arena. arXiv:2306.05685. 6. Hyung Won Chung, Le Hou, Shayne Longpre, Barret Zoph, Yi Tay, William Fedus, Eric Li, Xuezhi Wang, Mostafa Dehghani, Siddhartha Brahma, et al. 2022. Scaling instruction-finetuned language models. arXiv:2210.11416. 7. Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, et al. 2023. Llama: Open and efficient foundation language models. arXiv:2302.13971. 8. Ning Ding, Guangwei Xu, Yulin Chen, Xiaobin Wang, Xu Han, Pengjun Xie, Haitao Zheng, and Zhiyuan Liu. 2021. Few-NERD: A fewshot named entity recognition dataset. In Proceedings of the 59th Annual Meeting of the Association for Computational
24 引用 9. Tianyi Zhang, Varsha Kishore, Felix Wu, Kilian Q. Weinberger, and Yoav Artzi. 2020. Bertscore: Evaluating text generation with bert. In International Conference on Learning Representations. 10. Gibbeum Lee, Volker Hartmann, Jongho Park, Dimitris Papailiopoulos, and Kangwook Lee. 2023. Prompted LLMs as chatbot modules for long open-domain conversation. In Findings of the Association for Computational Linguistics: ACL 2023. 11. Wanjun Zhong, Lianghong Guo, Qiqi Gao, He Ye, and Yanlin Wang. 2023. Memorybank: Enhancing large language models with longterm memory.