1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HyDEとは?

HyDEは簡単にいうと、質問を一回LLMに回答させて、その内容でベクトル検索し、結果をコンテキストとして再度LLMに回答させる手法である。

元論文の図だとこんな感じ。

https://arxiv.org/pdf/2212.10496

  1. まずは一番左の黄色と緑のボックスの内容でGPTに問い合わせます
  2. 次にGPTの回答であるオレンジのボックスの内容をContrieverでベクトルにエンコードし、その内容で検索する。そうすることで青色ボックスの中身であるドキュメントを取得する
  3. それを用いて回答する

HyDEの精度

赤枠部分だけ解説すると、HyDEの方がBM25や生のContrieverだけより精度高いですね。
image.png
https://arxiv.org/pdf/2212.10496

HyDEを使う上で気をつけること

これだけ見るとすごいのですが、気をつけるべき時もあります。
以下の表を見てください。
image.png
https://arxiv.org/pdf/2212.10496

気づきましたか? 実はベンガル語ではHyDEで大きく精度が変わってないのです。
論文中にも書かれていますが、
LLMがベンガル語自体の学習があまりできてなく仮想回答の精度が悪いことで、ドキュメント検索がうまくいかないことで精度があがらないのです。
つまり、ある程度の学習がうまく行っているパターンではHyDEは有効ですが、そうでないときはあまり有効でないのだと思います。
有効でない場合にHyDEを使ってしまうとただ単に回答が遅くなったり、最悪精度が悪くなる可能性があります。
使うときは慎重に使いましょう!

Difyで構築

全体像

全体像はこんな感じです。
スクリーンショット 2024-06-20 23.18.55.png

流れは簡単です。

  1. まずは質問を仮想回答用LLMに問い合わせます
  2. 1の結果を使ってベクトル検索し知識を集めます。
  3. それを用いて回答します。

仮想回答 & 知識取得

仮想回答プロンプト:

Please write a passage to answer the question 
Answer in English.

検索ドキュメントに英語が多い場合はここは英語で出力してた方がいい感じになります。
image.png

本回答

本回答プロンプト:

 Please answer the following questions according to the instructions on the following information.Answer in Japanese.
{{#context#}}
    Question: {{#sys.query#}}

image.png

最後に

Xやってるので気になる方はフォローお願いします。
https://x.com/hudebakonosoto

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?