掲載済み (2025-11-08号)
#144 444文字 • 3分

## DSPy + LangSmithでプロンプトを全自動で育ててみた

日本語

掲載情報

概要

https://zenn.dev/monox_dev/articles/7f5b8bb1423cbf

詳細内容

## DSPy + LangSmithでプロンプトを全自動で育ててみた https://zenn.dev/monox_dev/articles/7f5b8bb1423cbf DSPyとLangSmithを組み合わせることで、LLMプロンプトの評価と改善プロセスを自動化し、プロンプト品質を定量的かつ累積的に向上させる方法を実証します。 **Content Type**: ⚙️ Tools **Language**: ja **Scores**: Signal:4/5 | Depth:4/5 | Unique:4/5 | Practical:5/5 | Anti-Hype:4/5 **Main Journal**: 86/100 | **Annex Potential**: 84/100 | **Overall**: 84/100 **Topics**: [[DSPy, LangSmith, プロンプト最適化, LLM評価, CI/CD]] 記事は、LLMを用いたプロダクト開発におけるプロンプト管理の課題、特にテストケース増加に伴う手動調整の限界に焦点を当て、その解決策としてプロンプトの評価・改善ループを自動化する環境を提案します。主要ツールは、プロンプト自体をパラメータとして最適化する「DSPy」と、LLMアプリケーションの実行トレースと評価を管理する「LangSmith」です。 DSPyのMIPROv2オプティマイザーはプロンプト候補を自動生成し、Instruction Optimizationによってプロンプト文そのものを進化させます。LangSmithは、この最適化過程を詳細に記録し、プロンプト選定理由、失敗ケースの特定、コスト・レイテンシの可視化を可能にし、デバッグと理解を深めます。 著者は、手書きスケジュール画像から予定を構造化データとして抽出するタスクでこのシステムを実証しました。初期のシンプルなプロンプトが、3回のイテレーションを経て約1000字の長文プロンプトへと自動進化し、評価スコアが70.5%から77.6%に向上したと報告しています。特にJSONパースエラーからの自己修復や、曖昧な情報への対応強化がプロンプトの進化過程で自動的に行われた点は注目に値します。学習曲線では一時的なスコア低下後に急激な回復と改善を示す「U字カーブ」が観察されました。 開発中に直面した課題は、DSPyのキャッシュ制御による最適化停滞、Gemini APIのレート制限、および`init_temperature`不足によるプロンプト成長鈍化であり、それぞれ`cache=False`、`rpm=5`への設定、`init_temperature=2.0`への変更で解決されました。 この検証から、LLMプロンプト調整の自動化、品質の定量的管理、そしてLangSmithによるトレーサビリティ確保の重要性が強調されています。今後の展望として、LLM-as-Judgeや意味的類似度を用いた評価指標の複雑化、そしてGitHub ActionsなどによるCI/CDへの組み込みが挙げられています。著者は、この自動化された評価・改善ループが、手動でのプロンプト調整に比べて劇的に効率的であると結んでいます。