以下の内容はhttps://touch-sp.hatenablog.com/entry/2024/08/14/210625より取得しました。


【RAG】ユーザーの質問に対して適切なテキストファイルを選択する工夫

はじめに

見よう見まねでRAGを使ったオリジナルチャットボット作成にチャレンジしています。
touch-sp.hatenablog.com
非常に単純な実装で、質問に対して複数あるテキストファイルから回答が記述されていそうな1つのファイルを選択し、そのファイル内の記述を基に回答をしてもらいます。

問題点は、チャットを続けていると質問ごとに参照する文書が変わることです。

短い質問だけから適切なテキストファイルを選択するのは困難で、ユーザーの質問をわかりやすく書き換える必要を感じました。

その部分もLLMにさせてしまおうというのが今回の目的です。

例1

質問

以下にチャットの履歴があります。最後の行がユーザーの質問です。チャット履歴をもとにユーザーの質問をそれ自体で内容がわかるように簡単に書き換えて下さい。
```
山梨県の夏の観光名所は
富士山、富士五湖などがあります。
冬は
```

LLMの回答

冬の山梨県の観光名所について教えてください。

ユーザーの最後の質問は「冬は」だけです。それだけで適切なテキストファイルを選択するのは不可能です。

チャット履歴をもとに拡張した質問をLLMに返してもらいました。

「冬の山梨県の観光名所について教えてください。」という質問なら適切なテキストファイルを選択することが可能になりそうです。

例2

質問

以下にチャットの履歴があります。最後の行がユーザーの最後の質問です。チャット履歴をもとに最後の質問をそれ自体で内容がわかるように簡単に書き換えて下さい。
```
山梨県の夏の観光名所は
富士山、富士五湖などがあります。
神奈川県は
```

LLMの回答

神奈川県の観光名所について教えてください。

例3

以下にチャットの履歴があります。最後の行がユーザーの最後の質問です。チャット履歴をもとに最後の質問をそれ自体で内容がわかるように簡単に書き換えて下さい。
```
山梨県の夏の観光名所は
富士山、富士五湖などがあります。
沖縄県の名産品は
```

LLMの回答

沖縄県の名産品は何ですか?

感想

やったことは非常にシンプルですが、LLMってやっぱりすごいと感じました。

ほかにももっといい方法があるかもしれません。今回紹介したのは自分が思いついた方法です。

今後このフローをメインのスクリプトに落とし込もうと思います。

補足

色々試していますがこのタスクに限定すると軽量モデルで良い結果が得られたのは今のところ「gemma2:27b」です。

「gemma2:27b」がRAGで良い結果が得られるかというとそうでもなく、タスクによって得手不得手があるようです。




以上の内容はhttps://touch-sp.hatenablog.com/entry/2024/08/14/210625より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14