コンテンツへスキップ
ページ

コンセプト

最適化の仕組み

実行とスコアのコントラクト、アーティファクトの種類、種類ごとのエンジン。

Skynet は Optimize Anything です。あらゆるアーティファクトを、あなたのデータとメトリクスに対して改善する 1 つのプロダクトです。すべての実行は、同じ実行のコントラクトと同じメトリクスのコントラクトを使います。アーティファクトの種類によって、使えるエンジンが決まります。

共通のコントラクト

すべての実行には 2 つのファイルがあります。run.py は 1 つのケースでアーティファクトを実行します。metric.py は出力を採点します。

from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input)
  • artifact は、オプティマイザーが提案した現在のバージョンです。
  • input は、1 つのケースの入力フィールドを保持する dict です。
  • expected はケースの期待値です。期待値がないケースでは None です。
  • score はペアを返します。数値と、"feedback" 文字列を含む dict です。

skynet ヘルパーモジュールは llm、Image、log を提供します。実行コードからの llm の呼び出しはタスクモデルに送られます。メトリクスからの llm の呼び出しはメトリクスモデルに送られます。

メトリクスのコントラクトの全体については、メトリクスとスコアラー をお読みください。

アーティファクトの種類とエンジン

アーティファクトの種類エンジン
プロンプトAuto, GEPA, Best-of-N, AutoResearch, Meta-Harness, AutoSaddler, ShinkaEvolve
コードプロンプトと同じ
テキストプロンプトと同じ
DSPy プログラムAuto, DSPy GEPA, DSPy MIPROv2, DSPy BootstrapFewShot

エンジンには 2 つの系統があります。

  • ネイティブエンジン は、アーティファクトをブラックボックスとして扱います。プロンプト、コード、テキストのアーティファクトで動作します。
  • DSPy オプティマイザー は、DSPy プログラムの内部で動作します。DSPy プログラムのアーティファクトでのみ動作します。

DSPy MIPROv2 と DSPy BootstrapFewShot にはペア(期待される出力を持つケース)が必要です。単一入力の場合、DSPy プログラムで使えるのは Auto と DSPy GEPA だけです。

プロンプト、コード、テキストのアーティファクト

ネイティブエンジンは、アーティファクトをブラックボックスとして扱います。エンジンは新しいバージョンを提案し、ケースに対して run(artifact, input) を実行し、スコアとフィードバックを読み取ります。

6 つのネイティブエンジンは、それぞれ異なる探索方法を使います。

  • GEPA は、リフレクションによってバージョンを進化させ、パレートフロントを維持します。
  • Best-of-N は、リフレクションモデルに独立した提案を求め、最も良いものを残します。
  • AutoResearch、Meta-Harness、AutoSaddler、ShinkaEvolve は、コーディングエージェントを使ってバージョンを提案します。

各エンジンとその設定については、エンジン をお読みください。

DSPy プログラムのアーティファクト

DSPy プログラムは、アーティファクトの種類の 1 つです。run.py はモジュールレベルで dspy.Module を構築し、run の中でそれを呼び出します。ファイルに複数のモジュールがある場合は、最適化するモジュールに program という名前を付けてください。

DSPy オプティマイザーが実行されると、次のことが起こります。

  1. Skynet はモジュールを見つけ、その周りを run 関数で包みます。すべてのケースは、あなた自身の run を通ります。
  2. DSPy オプティマイザーは、学習ケースでプログラムをコンパイルします。
  3. 検証ケースで選択を行います。
  4. 勝者は、各 predictor の指示文と、モジュールのコンパイル済みの状態全体です。この状態には few-shot デモが含まれます。

最終スコアは、Skynet が保存するのと同じプログラムを測定します。

オプティマイザーフィードバックの文章を読むか
DSPy GEPAはい
DSPy MIPROv2いいえ、スコアのみ
DSPy BootstrapFewShotいいえ、スコアのみ

DSPy BootstrapFewShot はリフレクションモデルを使いません。

Auto

Auto は、ウィザードの既定の選択です。

  • プロンプト、コード、テキストのアーティファクトでは、Auto は 5 つのネイティブエンジンで探索し、その後、最良のバージョンから GEPA で続行します。
  • DSPy プログラムでは、Auto は DSPy GEPA を実行します。

どちらの形の Auto も、メトリクスからのフィードバックの文章を読みます。

どのエンジンを選ぶか

状況使うもの
モデルが実行するプロンプトがあるプロンプトのアーティファクト。Auto から始めます。
より速く、より安く、またはより正確にしたいコードがあるコードのアーティファクト。Auto から始めます。
ドキュメントや設定ファイルがあるテキストのアーティファクト。Auto から始めます。
DSPy プログラムがあるDSPy プログラムのアーティファクト。Auto から始めます。
データから few-shot デモを選びたいDSPy BootstrapFewShot または DSPy MIPROv2 を使う DSPy プログラムのアーティファクト

関連ページ