Closed12

LangChainにおけるテストや評価

kun432kun432

https://python.langchain.com/en/latest/use_cases/evaluation.html

LangChainで自前データをvector化してQAチャットボットを作る、みたいなのはかなり一般的になっているけど、ではそのチャットボットがいかに正確かつ質問のコンテキストにマッチした回答をしたか?というテストや評価はとても難しいと感じる。

LangChain公式ドキュメントにあるEvaluationで記載されている内容について確認してみる。

kun432kun432

評価における課題

大きな課題は以下。

  1. テストデータの欠如
  2. 評価指標の欠如

それぞれについて見ていく。

1. (テスト)データの欠如

  • 一般的な機械学習では大規模なデータが事前に必要(かつこれをテストデータとしても使える)
  • それに対して、LLMの場合、few-shotもしくはzero-shotとして学習されているのが一般的であり、使用時には大規模なデータが必要ない。

2. 評価指標の欠如

  • 一般的なユースケースとして文章生成などがあるが、分類や数値予測に比べると複雑で評価がしにくい。

解決方法

LangChainではこれらの課題に対して、完全ではないものの、解決に向けた取り組みの初期段階。

1. (テスト)データの欠如

2. 評価指標の欠如

例やツールなど

いくつかの例や評価のためのツールが載っているので色々参考に。

kun432kun432

ツール

以下のようなツールが用意されている。順に見ていく。たぶん別の記事に書くと思う。

  • QAGenerationChain
    • 評価用QAデータの生成
  • QAEvalChain / ContextQAEvalChain
    • 評価用QAデータとLLM生成結果の比較
  • LangChainDatasets / Hugging Face Datasets
    • 評価用データセット
  • Benchmark Template
    • 評価結果を共有するためのnotebookテンプレート

LangChain公式ではないがこういうものも

  • Auto-evaluator

あとEvaluationのトピックからは少し外れるが以下のようなものもある。

  • Tracing
  • Model Comparison
kun432kun432

LLMからの回答はブラックボックスなところがあるので、実際に使わてる事例は増えてきてはいるものの、テストや評価というところはまだまだ情報も少なければ、ツールも整備されてないと感じる。この手の色々な手法をうまく活用していきたい。

このスクラップは2023/05/23にクローズされました