【でぃーえすぱい】
DSPy とは?
最終更新:
💡 LLMの処理をコードで組み、評価しながら調整する
言語モデルを使う処理を、入力・出力の定義とモジュールを組み合わせたPythonプログラムとして構成するフレームワーク。用意した例と評価指標を使い、最適化器で指示やFew-shot例などを調整できる。常に最良の結果になる保証ではなく、データ・評価方法・予算の設計が必要。
📌 このページのポイント
毎回プロンプトを手で直さなくていい?
どんな処理を組めるの?
質問から答えを返す処理や、情報抽出、検索を組み合わせた処理などだよ。直接応答するPredictや、推論の手順を使うChainOfThoughtなどのモジュールがあるんだ。
最適化には何が必要?
動くプログラムと、例となるデータ、よさを測る評価指標を用意するよ。最適化器はその評価に基づいて候補を調整する。何を正解とするかが曖昧だと、目的に合う改善も判断できないんだ。
Few-shot例も選んでくれる?
自動なら常に一番よい結果になる?
保証はないよ。訓練に使った例に偏る可能性があるので、別のデータでも評価する。モデルの呼び出しや探索にも費用がかかるから、手作業を省けるかだけでなく、品質と予算を確認するんだ。
📖 おまけ:英語の意味
「DSPy」 = 言語モデルを使うPythonフレームワークの名称
💬 Khattabらが2023年に発表した論文では、宣言的な言語モデル呼び出しを組み合わせ、評価指標に合わせてパイプラインを最適化する考え方を示しているよ。