【要約】RAGで最後に残った不正解1問を「解剖」したら、予定していた実験が丸ごと不要になった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がRAGシステムの精度向上に取り組む中で、特定の設問が解決できない問題に直面した。埋め込みモデルを更新しても、特定の1問(ID19)だけが正解に至らなかった。原因がわからないままパラメータの総当たりを行うことは、エンジニアリングとして極めて非効率である。
- ・原因が
chunk_sizeなのかtop_kなのかが不明。 - ・原因不明のまま条件を総当たりすると、学びが少なくリソースを浪費する。
- ・「目次や索引のチャンクが検索上位を汚す」といった潜在的な課題も見落とす恐れがある。
// Approach
開発者は、闇雲なパラメータ探索を避けるため、不正解の要因を特定する「解剖」プロセスを実施した。信号をオシロスコープで追うように、情報の所在を段階的に調査した。これにより、実験計画そのものを最適化することを目指した。
- ・根拠となる記述が全376チャンクのどこにあるかを特定。
- ・現在の
top_k=4設定で、実際に何が検索されているかを確認。 - ・
top_kを拡張し、根拠チャンクの検索順位を調査。 - ・「順位不足」「分割による分断」「複数チャンクの必要性」を切り分け。
// Result
実験の結果、原因が
top_k の不足にあることが判明し、効率的な改善を実現した。chunk_size の実験を中止し、top_k の調整のみにリソースを集中させた。- ・
top_k=8への変更により、正解率と検索ヒット率が100%に到達。 - ・「知ったかぶり」や「リグレッション」などの副作用がないことを確認。
- ・効果が同じなら介入は最小限にする原則に基づき、
top_k=8を採用。 - ・満点に達したことで、評価セットの更新が必要であるという新たな指標を得た。
Senior Engineer Insight
> 極めて実践的なアプローチだ。AI開発において、パラメータの総当たりは素人の手法である。原因を特定してから実験を設計する姿勢は、開発コストを劇的に下げる。また、評価セットの「上限」を認識する視点も重要だ。満点が出た際に評価セットを更新するサイクルは、継続的な改善(CI/CD)において不可欠な視点である。