RAG ってよく聞くけど
検索して、出てきた文章をAIに渡して答えさせる、ってだけの話なん?
【疑問】RAGって結局「検索してからAIに答えさせる」だけなん?【AI】
>>1
大筋はそれ。名前は Retrieval-Augmented Generation(検索で補強した生成)
言い出したのは Lewis らの論文(2020年、NeurIPS)
「検索する部品(retriever)」と「文章を作る部品(generator)」を組み合わせる
>>2
検索ってキーワード検索のこと?
>>3
論文のは違う。文章も質問もベクトル(数字の並び)に変えて、向きが近いものを探す
近さはだいたいコサイン類似度(2つのベクトルの向きがどれだけそろってるか、1なら同じ向き、0なら無関係)で測る
>>4
数字で見せてくれ
>>5
おもちゃの例。ベクトルの3つの成分を「食事」「休暇」「手続き」っぽさとする
文書A「社員食堂の営業時間」(1, 0, 0)
文書B「有給休暇の申請方法」(0, 2, 1)
文書C「会議室の予約方法」(0, 0, 1)
質問「休みってどうやって取るの」(0, 1, 1)
>>6
コサイン類似度を計算すると
A:0、B:約0.949、C:約0.707
Bが一番近いから、Bの本文を質問と一緒に生成モデルに渡す
Bの計算だけ書くと
>>7
実際の論文ではどのくらいの規模なん
>>8
検索対象は Wikipedia で、記事を100語ずつに区切って約2100万個の文書にしてる
検索部品は DPR(質問と文書を別々にベクトルにする検索モデル)、生成部品は BART-large(約4億パラメータの文章生成モデル)
訓練では上位5件か10件を取ってきて使う
>>9
で、検索をつけると何がうれしいん?
>>10
LLM(大規模言語モデル)は知識をパラメータの中に覚えてるけど、知識を足したり直したりするには学習し直しが要る
RAG なら、検索対象の文書を入れ替えるだけで知識を更新できる
>>11
ほんまに入れ替えだけで変わるん?
>>12
論文で実験してる。各国の指導者を問う82問で、古い Wikipedia を検索対象にしたら古い時点の指導者に70%正解、新しい Wikipedia にしたら新しい時点の指導者に68%正解
検索対象と時点が食い違うと、正解率は12%と4%まで落ちる
モデルを学習し直さずに、文書だけで答えが変わったってこと
精度はどれくらい上がるん
>>14
Natural Questions(検索エンジンに実際に来た質問を使った質問応答データ)の完全一致率で比べると
検索なしの T5-11B(110億パラメータ)が34.5、RAG が44.5
パラメータ数ははるかに少ないのに上回ってる
>>15
じゃあRAGにすれば、AIのでたらめ(ハルシネーション)はなくなるんやな
>>16
なくならん。論文が言ってるのは、人手評価で「BART単体より事実に沿った文が多い」ってところまで
そもそも検索で外れの文書を拾ったら、外れた根拠で答えを作る
論文自身も、Wikipedia だって完全に正しいわけでも偏りがないわけでもない、と書いてる
>>17
検索の当たり外れが、そのまま答えの質に効くってことか
>>18
そう。だから実際に使うときは、検索で何件目にどの文書が来たかを見て確かめられるのも利点
答えの根拠になった文書を、人間があとから読める
>>19
いや、それ言い出したら普通の検索エンジンでええやん。わざわざ生成させる意味ある?
>>20
論文では、正解の文字列がどの文書にもそのまま書いてないケースでも、Natural Questions で11.8%は正解を作れてる
文書から抜き出すだけの方式やとそこは0%。複数の手がかりをまとめて答えにできるのが生成させる意味
管理人のひとこと
- RAG は「検索部品」と「生成部品」を組み合わせる方式(Lewis ら、2020年)。質問に近い文書をベクトルの近さで探し、質問と一緒に生成モデルに渡す。
- 近さはコサイン類似度で測る。例では文書Bが約0.949で最も近い。論文では Wikipedia を約2100万個の文書に区切って検索対象にしている。
- 検索対象を入れ替えるだけで知識を更新できる(論文の82問の実験で、新旧の Wikipedia を入れ替えると答えが変わった)。
- ハルシネーションが消えるわけではない。検索が外れれば答えも外れるので、根拠の文書を確かめられることが大事。