跳到內容
Skynet文件
頁面

概念

最佳化點樣運作

運行同評分嘅合約、成品類型,同埋每種類型用嘅引擎。

Skynet 就係 Optimize Anything:一個產品,用你嘅數據同指標去改良任何成品。每次運行都用同一份運行合約同同一份指標合約。成品類型決定邊啲引擎可以處理佢。

共用合約

每次運行都有兩個檔案。run.py 喺一個案例上運行成品。metric.py 幫輸出評分。

from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input)
  • artifact 係優化器提出嘅當前版本。
  • input 係一個 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

引擎分兩大類:

  • 原生引擎 將成品當做黑盒處理。佢哋用喺提示詞、程式碼同文字成品上。
  • DSPy 優化器 喺 DSPy 程式入面運作。佢哋只用喺 DSPy 程式成品上。

DSPy MIPROv2 同 DSPy BootstrapFewShot 需要成對數據(有預期輸出嘅案例)。如果得單一輸入,DSPy 程式只可以用 Auto 同 DSPy GEPA。

提示詞、程式碼同文字成品

原生引擎將成品當做黑盒處理。引擎會提出一個新版本,喺案例上運行 run(artifact, input),再讀取分數同回饋。

六個原生引擎用唔同嘅搜尋方法:

  • GEPA 透過反思去演化版本,並保留一個 Pareto 前沿。
  • Best-of-N 叫反思模型提出獨立嘅提案,然後保留最好嗰個。
  • AutoResearch、Meta-Harness、AutoSaddler 同 ShinkaEvolve 用編程代理去提出版本。

每個引擎同佢嘅設定,請睇 引擎。

DSPy 程式成品

DSPy 程式係一種成品類型。你嘅 run.py 喺模組層級建立一個 dspy.Module,再喺 run 入面呼叫佢。如果檔案有多過一個模組,就將要最佳化嗰個命名為 program。

DSPy 優化器運行時會發生乜事:

  1. Skynet 搵到你嘅模組,再用你嘅 run 函數包住佢。每個案例都會經過你自己嘅 run。
  2. DSPy 優化器喺訓練案例上編譯個程式。
  3. 佢喺驗證案例上揀選。
  4. 勝出者係每個預測器嘅指令文字,加上模組完整嘅編譯狀態。呢個狀態包括 few-shot 示範。

最終分數量度嘅,就係 Skynet 儲存嗰個程式。

優化器讀唔讀回饋文字
DSPy GEPA讀
DSPy MIPROv2唔讀,只睇分數
DSPy BootstrapFewShot唔讀,只睇分數

DSPy BootstrapFewShot 唔用反思模型。

Auto

Auto 係精靈入面嘅預設選擇。

  • 喺提示詞、程式碼或者文字成品上,Auto 會用五個原生引擎探索,然後由最佳版本開始用 GEPA 繼續。
  • 喺 DSPy 程式上,Auto 運行 DSPy GEPA。

兩種形式嘅 Auto 都會讀你指標嘅回饋文字。

揀邊個引擎

你嘅情況用乜
你有一個由模型運行嘅提示詞提示詞成品。由 Auto 開始。
你有程式碼想變得更快、更平或者更正確程式碼成品。由 Auto 開始。
你有一份文件或者一個設定檔文字成品。由 Auto 開始。
你有一個 DSPy 程式DSPy 程式成品。由 Auto 開始。
你想由你嘅數據揀出 few-shot 示範DSPy 程式成品,配 DSPy BootstrapFewShot 或者 DSPy MIPROv2

相關頁面