LangSmithによるQast AIの精度検証プロセス改善
any株式会社 / Shogo Arakawa
チームリーダー / フルスタックエンジニア / 従業員規模: 11名〜50名 / エンジニア組織: 11名〜50名
利用プラン | 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|---|
Plus | Tracing, Datasets, Experiments | 10名以下 | 2024年9月 | B to B |
利用プラン | Plus |
---|---|
利用機能 | Tracing, Datasets, Experiments |
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2024年9月 |
事業形態 | B to B |
アーキテクチャ
アーキテクチャの意図・工夫
まずオフライン評価の実験管理として、Streamlitで開発したWebアプリケーションを作成して、そこから指定したデータセットに対してテストを実施し、LangSmithに結果を蓄積する状態になっています。LLMOpsやLangSmithを意識せずに「誰でも実験できる」ことを重要視していたので、Webアプリケーションにしたことは非常に意味があったことと思います。
LangSmithとStreamlitについては下記のブログでも紹介しているので、ぜひご覧になってください。 https://zenn.dev/any_dev/articles/rag-streamlit-and-langsmith
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
弊社プロダクトQastにおいては、こましりchatというRAGに相当する機能を提供しています。Qastに蓄積したメモやファイルの内容をベクトル化し、それらをRAGを利用してチャット形式でユーザに返答することができる機能です。
こましりchatのリリースから約1年ほどが経過し、この期間においてもモデル変更やアルゴリズムの改良を常に行っていました。しかしながら、当時は自動化の仕組みを整えておらず、改善をおこなったものを手動でテストを実施し、まとめた結果を人間が目視で精度を確認し、その結果をスプレッドシートにまとめるという作業をしていました。
またGPT-3.5 → GPT-4のように、明確に精度向上を人間が確認できる場合は問題になりませんでしたが、改善結果が目視では判断できないことも多く、改善した結果を信用してリリースして良いか判断の拠り所がない状況でした
どのような状態を目指していたか
LLM Model, Chunking Strategy, Rerankerなどの調整に応じて、精度検証のPDCAプロセスを短縮化する、いわゆる実験管理としての効率化を目指しました。またこれまでは人間が目視で精度確認をしていたところから、定量化できる指標(コサイン類似度など)を導入することでオフライン評価の土台構築をしました。
比較検討したサービス
- Langfuse
- Wandb
比較した軸
LLMOpsや実験管理に対する知見が薄い状態から始めたため、公式ドキュメントやインターネット上に情報がどれだけ公開されているかという点を特に重要視しました。
選定理由
LangSmithがすでに利用していたLangChainとの親和性が高く日本語の情報量も多かったゆえです。また導入後に活用できなかったとしても、すぐに辞めることができる月額契約ができたためです。
導入の成果
実験管理としてStreamlit上にアプリケーションを作成し、そこからLangSmithの実行ができる状態に整っています。また同時にGitHub Actionsを経由して、リリースごとに精度をモニタリングする仕組みも同時に開発しています。結果として、精度改善のPDCAのサイクルを高速で回せるかつ、定点モニタリングをする土台をつくりだすことができました。
導入時の苦労・悩み
LangChainに密結合であればあるほどスムーズに導入できるのですが、QastにおいてはRetrieverは独自の仕組みを採用するなど、LangChainを利用していない箇所において、LangSmithにどのようにデータをためていけばいいか迷うことが多いです。したがって推奨していないようなHackyな実装になる箇所も若干ですがありました。
導入に向けた社内への説明
上長・チームへの説明
RAGの精度改善関連のプロジェクトにおいて、手動で精度検証をおこなうコストの高さはすでに上長・チームともに認識済みでした。費用対効果についてもAIに関わるメンバーの人数であれば高額にならないことも相まって、小さく始めてスクラムのなかで効果を説明しました。
活用方法
先述の通り、モデル変更やアルゴリズム修正ごとに、事前に用意したデータセットに対してStreamlit上から評価をしています。またStreamlitを経由せずとも、GitHub ActionsによるCI/CDの仕組みを経由して、定期的に特定のデータセットの精度をモニタリングする仕組みも同時に開発しています。
よく使う機能
Experiments
これまで説明してきた実験管理の仕組みです。StreamlitやGitHub Actionsで評価を実行をしたタイミングでLangSmithにデータが蓄積されます。蓄積した実験同士のアウトプットや精度のスコアリングを比較することもできます。弊社では {実行環境名}-{Qastのテナント名}-{コミットハッシュ}
のような形式で実験を管理することで、特定環境のある地点の実験結果を区別できるように工夫をしています。
ツールの良い点
- LangChainを利用していれば導入のハードルが非常に低いこと
- サービスの進化が非常に早く徐々に細かいところに手が届くようになっていること
ツールの課題点
- LangChainに密結合であること
- 出力した結果がLangSmith上でどのように表示されるか若干わかりにくい点があること
- Plusプランは1人あたり$39のため、コストパフォーマンスとしてはやや悪めな点
ツールを検討されている方へ
我々はAIエンジニアの人数が少なかったこともありますが、LLMOpsの分野はプラクティスが確立していないことまずは小さく始めてみることをオススメします。またLangChainをヘビーユースしている場合は特に便利さを実感できることかと思います。
any株式会社 / Shogo Arakawa
チームリーダー / フルスタックエンジニア / 従業員規模: 11名〜50名 / エンジニア組織: 11名〜50名
SCSK → Sansan → フリーランス → any(現職)
よく見られているレビュー
any株式会社 / Shogo Arakawa
チームリーダー / フルスタックエンジニア / 従業員規模: 11名〜50名 / エンジニア組織: 11名〜50名
SCSK → Sansan → フリーラ...
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法