大規模言語モデルを用いた実世界タスク指向対話における

ChatGPT等の大規模言語モデルの出現により，商用レベルの対話システムの構築が容易になってきている．対話研究には，タスク指向対話[1]と非タスク指向対話[2]の研究が存在する．ここでは，タスク指向型対話は，ホテルの部屋を予約するといった具体的な達成目標を持った対話とし，人間関係を良好にするといった心理的な達成目標は考えない．実用的な用途として，レストラン予約，ホテル予約，航空券予約，天気予報の照会など数多くのアプリケーションが考えられる．一方，非タスク指向型対話は，世間話しのような特段の達成目標を持たずに，対話を継続すること自体を目標とする対話である．現実問題を対象としたタスク指向型対話では，常識知識以外に，現在時刻や現在位置に対応した実世界知識を使って対話する必要がある．実世界知識に基づくタスク指向対話の研究は，これまでいくつか行われている．DF-Net[3]は，対話の学習の際に表形式で与えられた実世界知識項目に対する表現ベクトルを用いて文を生成することで，実世界対話に対応しようとした．モデルアーキテクチャは，LSTMとGRUを用いたエンコーダ・デコーダモデルである．しかし，表中の別情報を誤って答える場合があるという問題点が存在した．深谷ら[4]は，対話の文脈と参照する表知識の内容の不整合を減らし，表知識の参照をより正確に行うタスク指向型対話システムの構築を目的として，表中の対象タイプを含む応答テンプレートを生成し，その文脈表現を利用して対話文を生成する手法を提案したが，複雑な表参照のケースには対応できていなかった．そこで，本稿ではLLMにより実世界知識に基づく対話を実現する．２タスク設定対象距離交通状況タイプShell3milesheavygasstationValero4milesnotrafficgasstation…………本稿で想定するタスク指向対話は，ユーザの持つ目標を達成する対話を実世界知識に整合する形で実現することである．たとえば，表１の実世界知識の下で次のような対話を実現する．User:Ineedgas.System:ThereistheShellandValero.User:Whichoneistheclosesttomyposition?System:Valeroistheclosest,consideringtheheavytrafficaroundtheShell.User:Okay,pleasenavigatemetoValero..この例のように，単なる表からの項目の抜き出しができる大規模言語モデルを実現しようとしているのではなく，現実の世界の状況に合わせて，常識的な対話をすることを目標としている．距離的に近いShellを推薦するのではなく，交通状況と距離の両方を考慮して，ユーザにとってより適切なValeroを推薦することが対話の成功とする．ただし，従来研究の評価法に従い，タスク成功率ではなくシステムの生成文と想定する参照対話文との類似度により性能を評価する．本研究の貢献は以下の4点である．•大規模言語モデルを用いて実世界情報を考慮したタスク指向型対話の実現する手法を提案する．実世界情報をプロンプトに与えることで，実世界知識を参照するタスク指向型対話が実現できることを示した．•様々なLLMについて，実世界対話の品質を評価指標BLEUおよびSentenceSimilarityにより評価し，性能を定量的に評価し比較した．•実世界知識を含むプロンプトにより，大規模言語モデルに対するファインチューニングおよびIn-ContextLearning(ICL)[5]の効果を明らかにした．特に，GPT系のLLMは学習データが明記されていないため，実世界情報がなくても想定する対話を生成できる可能性があったが，評価実験でそのようなことは起きていないことを示した．•大規模言語モデルに対して，ファインチューニングに用いる対話数の効果を示した．3LLM現時点で，オープンソース，クローズドソースのいくつかの大規模言語モデルが利用可能である．OpenAIによるLLMとして，GPT-4o，GPT-4omini，GPT-3.5-Turboが利用可能である．パラメータサイズは公開されていないが，GPT-4oは1.76T程度，GPT-4ominiが8B程度との説もある．これらはソースコードを公開していないが，有料の機能とし，指定した学習データによりファインチューニングを適用したモデルをAPIを通して利用することができる．オンプレミスで実行可能な大規模言語モデルとして，MetaのLlama3,3.1,3.2が利用可能である．パラメータ数が3B,8B,70Bなど異なるサイズのモデルが存在する．深層状態空間モデルに基づくLLMとしてMambaが存在する．これらのモデルはオープンソースであり，直接ファインチューニングを適用することができる．4提案手法LLMを用いた実世界対話を実現するために，以下の手法を提案する．①プロンプトのインストラクションに実世界知識を含め，これを参照するようなプロンプトを設計する．対話毎に実世界知識を変えることでその時点の状況に合わせた実世界対話を実現することができる．②インストラクションを含む対話例を訓練データとして与えてLLMをファインチューニングする．4.1プロンプトの設計実世界知識の表現法としてオントロジーや知識グラフなど様々な様式が想定できるが，本研究では単純に実世界知識が表形式で与えられているとする．このように設定したのは，実世界知識を表形式で与えた対話データセットKVRET[6]が存在することが理由のひとつである．ただし，2節で説明したように表形式の実世界知識であるからといって，PhoneBook[7]のような単純な表からの項目の抽出問題を対象タスクとしているのではなく，表に書かれている項目間の関連性や比較などを通して，人間が行うのと同様な常識に基づく対話を想定する．Chatプロンプトのインストラクションである{"role":"system","content":…}のcontentは次のように設計した．"Youareahelpful<TARGETSYSTEM>.Pleaseconciselyreplybasedonthefollowinginformation.<KNOWLEDGE>"<TARGETSYSTEM>は，ナビゲーションタスクでは”carnavigationsystemwithanintegratedGPS”，天気予報タスクでは”weatherforecastsystem”,スケジュール管理タスクでは，”personalschedulingsystem”とした．これに続き,対話ごとにインストラクション中に実世界知識<KNOWLEDGE>を与える．大量の実世界知識をすべて与えるのではなく，現在の状況にあった実世界知識が選択されていることを想定する．たとえば，カーナビゲーションであれば，近隣の施設やユーザの家の位置が外部システムにより選択され，表形式で与えられていると想定する．スケジュール管理では，数日のユーザのスケジュールが抽出さ.れており，天気予報では近隣の天気情報が選択されているとする．ICLの場合はこれに続いて学習データのうちの10件を対話例として与える．してインストラクションに組み込む．具体的な例を挙げる．{"distance":"2miles","traffic_info":"roadblocknearby","poi_type":"parkinggarage","address":"550AlesterAve","poi":"DishParking"}インストラクションに続いて，ユーザとアシスタントの対話を交互に与える．アシスタントの発話が生成対象である．[{"role":"user","content":…}{"role":"assistant","content":…}{"role":"user","content":…}{"role":"assistant","content":…}…{"role":"user","content":…}]これで１つの対話に対するプロンプトが完結する．なお，対話実験においては，最初のユーザの発話を与えたときのシステムの生成文を評価した次の対話生成では，生成された文ではなく，参照文を生成したとしたときのユーザの発話を与えて文を生成する．つまり，システムが生成すべきアシスタントの対話文の前までの正しい対話を埋め込んだプロンプトを作成し，次の対話文を生成させ評価するというステップをアシスタントの発話の数だけ繰り返す．4.2ファインチューニング大規模言語モデルに対するファインチューニングは対象の大規模言語モデルによって多少異なる．基GPT-4o，4oMiniはOpenAIのサーバ上でファインチューニングを行った．LlamaはSFT+unslothを用いてLoRA(LowRankAdaptation)[8]を適用した．提案のプロンプトの設計のとおり，各対話に対して，インストラクションから最後の対話文までを含むプロンプトを{10,100,2243}件，trainsetから抽出して使用した．ファインチューニングを行わなくても，大規模言語モデル自体の学習の過程で評価用のデータセットを学習してしまっている可能性があるため，ファイ1torchmetrics.functional.textンチューニング前の性能，および実世界知識を与えない場合の性能とファインチューニング後の性能を比較することで，LLMの事前学習時におけるdevおよびtestデータの漏洩(Leakage)を検証する．5実験5.1実験設定大規模言語モデルとして下記を比較する．•GPT-4o,GPT-4oMini,Llama3,Mamba,Claude3.5Opus/Sonnet/HaikuKVRETデータセットは，train,dev,testが2243,301,303件（不完全なデータ削除後）．下記の4つの実験設定で性能を比較する．再現性を確保するためサンプリングなし，またはtemperature=0，最大生成トークン数40とした．•実世界を含むプロンプトによる対話生成：提案手法のプロンプトを用いて実世界知識を与えるが，ファインチューニングは行っていない．•実世界知識なし(—WK)：単に対話履歴のみから，対話文がどの程度生成できるかを調査する．もし，LLMの学習時にKVRETデータセットを記憶していれば，実世界知識がなくても対話を再現できる可能性があるために設定した実験．•ファインチューニング(+FT):GPT系はOpenAIのサーバ上でファインチューニングを実施．LlamaはSFT＋unslothを用いてLoRAファインチューニングを実施した．GPTも2243対話に対する学習が約35分で完了したことから，軽量ファインチューニングであると推察される．•In-ContextLearning(+ICL)：提案手法のプロンプトのインストラクション部分に10対話例を追加し，プロンプトチューニングを行った．評価尺度としてBLEU1およびSentenceSimilarity2モデルによる文の埋め込みベクトル間のcos類似度を用いる．BLEUはn-gramの上限をn=1～4で変えたときの結果をそれぞれ報告する．BLEUでは単語の表層のn-gramの一致を取るため，内容的には同じでも表現が異なることでスコアが低く見積もられるためSentenceSimilarityも計算した．実験にはA6000(48GB)×2搭載のGPUサーバを用いた．