外部データをRetrievalしてLLM活用する上での課題と対策案 - ABEJA Tech Blog

概要

外部データをRetrievalしてLLM活用する上での課題

関連テキストを抽出するRetrievalがうまくいかないと回答ができない
この[参考]の情報を外部から抽出するのがRetrieval
 

テクニック

Case1. 元データがRetrievalしにくい形の場合

例えば元の文章がWikipediaのような長文だと取りにくい
 
加工前の参考情報
「カビゴンってどんなポケモン?」の回答
 
対応案: ページ構造を意識した形で各文章を格納して与える
HTML構造ごとに加工した場合
回答
 
他にも
  • 聞き方を明確にする
  • 類似度を測るクエリ文章を置き換える
    • 質問文をそのまま使うのではなくLLMで加工してから使う
    • Hydeなど
  • 不要な文章を削除する
  • 参考情報をLLMで整形し直す
 

Case2: 未知の単語を含む場合

今までのRetrievalでは質問文のembeddingと参考情報のembeddingの類似度を使っていた
ここでembeddingを取得時に(embeddingのモデルにとって)未知語だと適切なembeddingが得られない(可能性がある)
 
対策案: 単語の共起ベースで類似度を計算する
embeddingの類似度ではなくTF-IDFなどを使う
  • 質問文と参考情報に同じ単語がどれくらい使われているか?で類似度を測る
  • GPTやDeepLearing以前から情報検索分野、自然言語処理で使われてるもので、BM25やTF-IDF、Bag-of-wordsなどの手法がある
  • 未知語が多いデータだとこちらの方が良いかも
  • embeddingとのハイブリットもあり?
 
他にも
  • ファインチューニングする
  • embeddingのモデルを変えてみる
 
などなど