DSPy が『LLMプログラミングの新パラダイム』を提示
DSPyはStanford NLP研究所が開発するLLMプログラミングフレームワークで、『プロンプトエンジニアリング』を『LLMプログラミング』に置き換える革新的アプローチを採ります。Signature(入出力仕様)・Module(処理パイプライン)・Optimizer(プロンプト/モデル自動最適化)の3要素で、データからプロンプトを自動生成・最適化。手書きプロンプトより堅牢・再現性高いLLMアプリを構築できます。GitHub 20k★、Databricks・Replit等の本番採用例あり。
採用すべき5つのシグナル
- LLMプロンプトの『再現性のなさ』に悩んでいる
- プロンプトの A/B テスト・最適化を自動化したい
- 複雑なLLMパイプライン(複数モデル連携)を構築
- RAG・Chain-of-Thought等の最適化を体系的に行いたい
- 研究室レベルの最適化を本番アプリに適用したい
従来手法との比較
手書きプロンプト: 直感的・最適化困難・再現性低い。
LangChain Chain: 抽象化・パイプライン・最適化なし。
DSPy: Signature+Module+Optimizerでデータ駆動最適化・宣言的。
使い分け: PoC・シンプルプロンプトは手書き・最適化重視はDSPy。
主要概念
- Signature: 入出力仕様の宣言(
question -> answer) - Module: 処理パイプライン(Predict・ChainOfThought・ReAct等)
- Optimizer: プロンプト・Few-shot例の自動最適化(BootstrapFewShot等)
- Metric: 最適化目標(正解率・LLM-as-Judge等)
- Compiler: 最適化されたモジュールをコンパイル
実装パターン
(1) Signature定義: class QA(dspy.Signature): question = dspy.InputField(); answer = dspy.OutputField()
(2) Module定義: predictor = dspy.ChainOfThought(QA)
(3) データ準備: 訓練・検証データセット
(4) Optimizer: optimized = BootstrapFewShot().compile(predictor, trainset)
(5) 実行: 最適化済みモジュールで推論
本番採用の判断基準
- 本番実績: Databricks・Replit・各種AI研究室
- SDK安定性: 2024〜2026年でAPI安定・本番運用OK
- 学習コスト: ML/MLOps経験者向き・初学者は1〜2ヶ月
- パフォーマンス: 手書きより最適化された結果
- ベンダーロックイン: OSS・複数LLMプロバイダ対応
採用しない方が良いケース
- シンプルなプロンプトで十分
- データ駆動最適化のためのデータ不足
- チームがMLOps未経験
- 素早いPoC(DSPyは設定多い)
- 本番運用が安定している既存システム
実装で詰まる3つの落とし穴
- データセット作成: Optimizerに必要な訓練データ準備
- Metric設計: 正解判定の客観性
- 計算コスト: Optimizer実行に大量のLLM呼び出し
30日学習プラン
- 1週目: DSPy基礎・Signature・Module
- 2週目: Optimizer・データセット最適化
- 3週目: RAG・Chain-of-Thought・複雑パイプライン
- 4週目: 本番デプロイ・モニタリング
関連リンク
LLM全般は LLM選び方、Vercel AI SDKは Vercel AI SDK深掘り、RAG構築は RAG構築ガイド を参照してください。Langfuseは Langfuse深掘り もどうぞ。