Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

DSPy

DSPyは、型付きシグネチャとモジュールからLLMパイプラインを構築するオープンソースフレームワークです。さらに、評価指標に基づいてプロンプトを最適化します。

DSPyは、手書きのプロンプトではなくコードとして大規模言語モデル(LLM)アプリケーションを構築するための、オープンソースのPythonフレームワークです。開発者は各ステップの入力と出力を宣言し、ステップを組み合わせてプログラムを作成します。そのうえでDSPyオプティマイザーにプロンプト、またはモデルの重みを書き換え・調整させ、サンプル集合に対する指標を最大化します。名前はDeclarative Self-improving Pythonの略で、プロンプトではなく言語モデルをプログラミングするためのフレームワークと説明されています。スタンフォード大学のOmar Khattab氏らは、2023年10月の論文DSPy: Compiling Declarative Language Model Calls into Self-Improving PipelinesでDSPyを発表しました。コンパイルから数分以内に、少数行のDSPyコードでGPT-3.5とLlama-2-13B-chatのパイプラインを構築でき、標準的なfew-shotプロンプティングをそれぞれ25%超、65%超上回りました。また、専門家が作成したデモを使うパイプラインに対しても、それぞれ最大46%、40%上回りました。

シグネチャ、モジュール、オプティマイザー#

  • シグネチャ:ステップの入力と出力を型付きで宣言します。"question -> answer" のようにインラインで記述するか、タスクを説明するdocstringを持つクラスとして定義します。シグネチャはステップの機能を指定し、プロンプトの文言はDSPyに任せます。
  • モジュール:シグネチャを実行するための戦略です。dspy.Predictはモデルを1回呼び出します。dspy.ChainOfThoughtは回答の前に推論フィールドを追加し、思考の連鎖プロンプティングと同様の形式にします。dspy.ReActはReActプロンプティング形式でツールを使うループを実行します。モジュールはPyTorchのレイヤーのように組み合わせて、複数ステップのプログラムを構築できます。たとえば、検索クエリを書き、パッセージを取得し、その内容に基づいて回答する検索拡張生成(RAG)パイプラインを作れます。
  • アダプター:シグネチャをモデル向けのチャットメッセージに変換し、応答を解析して型付きフィールドに戻します。
  • オプティマイザー:指標に基づいてプログラムを改善するアルゴリズムです。BootstrapFewShotは学習用サンプルでプログラムを実行し、指標を通過したトレースをデモとして保持します。MIPROv2は提案された指示とデモの組み合わせを探索します。BootstrapFinetuneはファインチューニングによってプログラムをモデルの重みに蒸留します。

最適化ループは、プロンプトをパラメーターとして扱う点でモデルの学習に似ています。

2025年のGEPAオプティマイザーは、dspy.GEPAとして利用でき、プログラムの実行トレースとテキスト形式のフィードバックを読み取ります。LLMに失敗の原因を分析させ、その結果に基づいて指示を改良します。6つのタスク全体で、強化学習手法のGRPOを平均6%、最大20%上回り、ロールアウト数を最大35分の1に抑えました。また、MIPROv2も10%超上回りました。

シグネチャからプロンプトへ#

DSPyはシグネチャからプロンプトを生成するため、同じプログラムを新しいモデル向けに再最適化でき、書き直す必要はありません。ここでは、Ultralytics YOLO26の検出結果の要約を入力として使います。Results.verbose()は予測モードの結果をクラスごとの検出数を示す短い文字列として返します。シグネチャではこの文字列をテキストとして受け取り、実際の物体検出出力を使って、オプティマイザーが推論ステップを調整できるようにします。メッセージの整形にモデルやAPIキーは必要ありません。

import dspy
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")


class SceneQA(dspy.Signature):
    """Answer a question about a photo from the objects a detector found in it."""

    detections: str = dspy.InputField()
    question: str = dspy.InputField()
    answer: str = dspy.OutputField()


# The adapter turns the signature and inputs into the chat messages the model will receive
inputs = {"detections": results[0].verbose(), "question": "How many people are in the photo?"}
messages = dspy.ChatAdapter().format(SceneQA, demos=[], inputs=inputs)
for message in messages:
    print(f"--- {message['role']} ---\n{message['content']}")

システムメッセージには入力フィールドと出力フィールド、DSPyが応答の解析に使う[[ ## field ## ]]マーカー、目的を示すdocstringが含まれます。ユーザーメッセージには検出器の件数が含まれます。オプティマイザーは目的を書き換え、メッセージにデモを追加してプログラムを改善しますが、Pythonコードは変更しません。

  • プロンプトエンジニアリング:プロンプトを手作業で作成・修正することです。DSPyでは、指標とサンプルを使った最適化問題として扱います。
  • LangChain:LLMアプリケーションを構成するための統合機能、ツール、エージェントループを提供するフレームワークです。プロンプトは開発者が管理します。
  • ハイパーパラメーター調整:検証指標に基づいて学習設定を探索する手法です。DSPyがプロンプトを探索する方法に最も近い考え方です。
  • 複合AIシステム:複数のモデル呼び出し、検索器、ツールから構築されるアプリケーションです。DSPyはこのようなパイプライン全体を最適化し、最終指標に基づいて各ステップのプロンプトを調整するために設計されています。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう