制御可能な文章生成RAG - 技術概要

はじめに

蓄えられた知識を元に文章生成を行うTransformerモデル
Retrieval-augmented generation (RAG)の技術について調査した。

Deep Learning による文章生成

T5, GPT-3などのDeep Learningを用いたモデル1は一見すると
人間に近い性能の文章を生成できる。
しかしながら、それらのモデルはいくつか問題を抱えている。

  • 知識と文法を一つのモデルで学習
    • 間違った知識で自然な文章が生成される可能性あり (Fake news)
  • 追加学習が難しい
    • 新たな知識が増えた場合のモデル更新が難しい
  • 出力結果の説明が難しい

これに対してRAGはモデルの外にある知識を利用して文章を生成する。
具体的には、外部知識として文章群を用意し、文章を生成するときはその中から
関連する文章を選び、それらを元に文章を出力する。

RAG

RAGはT5と同様に文章を入力として文章を出力するモデルである。
(出力文章をクラスとすれば分類問題にも使える)

RAGは内部的にはDPR (Retriever)とBART (Generator)の2つのモデルを利用している。
transformers2ライブラリに実装済み。
https://huggingface.co/transformers/model_doc/rag.html

概念図

f:id:nakamrnk:20201019093305j:plain

DPRは文章間の関連度を求めるためのネットワークであり、 これにより
知識文章群から入力文章に関連する文章とその特徴量を抜き出す。
BARTは元の入力とDPRが出力した特徴量から文章を生成する。

これにより、出力された文章に対して知識文章群のどの文章が関連するかが
明確となるため、判定の根拠が示しやすい。 また、知識群に不適切なものや古い知識が
含まれていた場合にそれらを取り除くことで、間違った出力が抑制されることが期待される。

RAGの利用

RAGは前述した通り、良い性質を備えたモデルであるが、 入出力文章データを
用意するだけで学習ができるBARTやT5よりもモデル作成に必要なものが多い。

知識文章の用意

RAGの論文では知識文章としてWikipediaの文章を100単語ごとに区切ったものを使用している。
膨大な質の低いデータが良いのか、数は少ないが質の高いデータが良いのかは検証の余地がある。

DPRの学習

DPRは知識群から特徴量を抽出するEpと入力文章から特徴量を抽出する
Eqの2つのエンコーダからなるモデルである。 RAG論文ではRAGの学習中はDPRの
Epは固定してEq部分のみをfine-tuningしているので、RAGを学習するためには
DPRの事前学習モデルが必要となる。

まとめ

RAGの論文を読み、技術概要をまとめた。
学習は大変そうだが、うまく使えば制御のしやすい文章生成モデルとなり、
面白いことができそうだと思った。
とりあえず単純なデータセットを作って学習し、挙動を理解したい。

参考文献