# 用精靈開始運行

> 提交精靈嘅每一步，由任務到合約檢查。

提交精靈會設定同開始一次運行。佢有四個步驟：**任務**、**輸入**、**優化器** 同 **指標同執行**。每個步驟有一個或者多個畫面。呢份指南會講解每個畫面，由任務一直到合約檢查同運行開始。

> [!NOTE]
> 精靈會按經驗程度顯示多啲或者少啲設定：**引導**、**標準** 或者 **專家**。預設係引導。喺 **設定 → 帳戶** 嘅 **顯示幾多內容** 改程度。喺引導程度，有啲標籤會簡單啲。呢份指南用標準同專家程度嘅標籤；如果引導程度嘅標籤唔同，會喺括號入面註明。

## 步驟 1：任務

### 你想最佳化啲乜嘢？

喺 **任務訪談** 對話入面，向助手描述你嘅任務。助手會幫你寫兩個欄位：

- **目標**（引導：**目標**）：最佳化之後嘅成品一定要做得好嘅嘢。
- **背景**（引導：**補充資料**）：背景資料、限制，同埋好結果應該係點。

兩個欄位你都可以編輯。助手唔會覆寫你改過嘅內容。

### 優化對象

揀 **成品類型**：

| 成品類型   | 會改變乜嘢                                 |
| ---------- | ------------------------------------------ |
| 提示詞     | 發送畀語言模型嘅指示                       |
| 程式碼     | 一個程式嘅原始碼                           |
| DSPy 程式  | 一個 DSPy 模組嘅預測器指示                 |
| 文字       | 任何其他文字，例如文件或者範本             |

然後提供 **起始版本**（引導：**起點**）。貼上目前嘅版本，或者叫助手寫一個草稿。

### 最佳化一個倉庫

你亦可以最佳化倉庫入面嘅程式碼。設定以下欄位：

- **倉庫**：揀一個倉庫，或者寫成 `owner/name`。
- **提交**：一個 40 字元嘅 SHA。留空就會用分支上面最新嘅提交。
- **優化器可以改嘅路徑**：每行一個檔案或者資料夾。一個點代表成個倉庫。
- **安裝指令**：評分之前，喺每個全新 checkout 入面運行。留空嘅話，Skynet 會自己搵指令。

## 步驟 2：輸入

### 資料

為運行加入案例。你可以：

- 上載 CSV、JSON 或者 Excel 檔案。
- 喺你嘅資料庫揀一個數據集。

睇 [數據集同分割](/docs/yue/concepts/datasets) 同 [準備數據集](/docs/yue/guides/datasets)。

### 點樣讀取資料

助手會讀取資料，再建議點樣用。檢查佢嘅選擇：

- 將每個欄位標記為輸入、預期輸出，或者忽略佢。
- 冇輸出欄位嘅時候，Skynet 會將第一列當做一個輸入。
- 設定點樣分成訓練集、驗證集同測試集。劃分比例加埋一定要等於 1。

> [!WARNING]
> **輸入** 步驟有問題嘅時候，你打開唔到後面嘅步驟。先修好精靈顯示嘅問題，再繼續。

## 步驟 3：優化器

喺標準程度，呢個步驟得一個畫面。佢會顯示優化器、預算，同埋有需要時嘅模型。喺引導同專家程度，呢個步驟有三個畫面：**優化器**、**模型** 同 **預算**。

### 優化器

精靈只會列出適合你任務同輸入嘅優化器。系統會幫你揀咗 **Auto**。想用其他優化器，就揀另一個。睇 [引擎](/docs/yue/concepts/engines) 同 [最佳化點樣運作](/docs/yue/concepts/optimization)。

### 模型

- **任務模型**：你嘅運行程式碼會呼叫嘅模型。如果你嘅運行程式碼唔會呼叫模型，就留空。DSPy 程式一定要有任務模型。
- **反思模型**：讀取分數同回饋，再寫下一批候選版本嘅模型。用編程代理優化器嘅時候，呢個就係代理嘅模型。

### 預算

設定運行可以試幾耐，同埋最多可以用幾多錢：

- **最多評分器執行次數**（引導：**最多嘗試次數**）：Skynet 最多會評分嘅候選版本數目。有啲優化器需要最低數目。
- **停止分數**（引導：**分數去到呢個值就提早停**）：當一個版本去到呢個分數，運行就會停。
- **最多迭代次數**（引導：**最多輪數**）：支援呢個設定嘅優化器先會顯示。
- **支出上限**：運行最多可以用嘅金額。預設係 $5；如果 **開始所需** 嘅金額更高，就用嗰個金額。你亦可以揀 **無上限**。

如果上限或者你嘅結餘低過開始所需嘅金額，精靈唔會畀你繼續。睇 [預算同收費](/docs/yue/concepts/billing)。

## 步驟 4：指標同執行

### 程式碼同指標

寫兩個檔案：

- `run.py`：喺一個案例上面運行你個成品嘅運行程式碼。
- `metric.py`：幫輸出評分同寫回饋嘅指標。

**編程代理** 可以幫你寫同改任何檔案。佢會檢查自己嘅程式碼，再修好出錯嘅地方。你最多可以加 20 個額外檔案。睇 [指標同評分器](/docs/yue/concepts/scorers)。

如果你嘅指標會呼叫 `llm()`，就要設定 **指標模型**。預設會用反思模型。

### 合約檢查

**合約檢查**（引導：**試行**）會喺沙盒入面，用 3 個樣本案例運行你嘅程式碼同指標。佢會檢查：

- 運行程式碼嘅簽名，
- 指標嘅簽名，
- 指標模型，
- 運行程式碼喺樣本上面嘅結果，
- 指標回傳值。

揀 **檢查**（引導：**試吓**）。檢查通過之前，你開始唔到運行。如果你喺通過之後改咗程式碼或者設定，就要再做一次檢查。

> [!TIP]
> 打開每個樣本，睇佢嘅輸入、輸出同回饋。好嘅回饋會畀優化器多過單單一個分數嘅資料去做嘢。

### 排程執行

最佳化成功之後，你可以按排程再運行一次。預設係 **已關閉**。

### 準備好執行

最後一個畫面會用五個分頁顯示摘要：**一般**、**資料**、**模型**、**預算** 同 **獎勵**。檢查好設定，然後開始最佳化。

摘要亦會顯示運行嘅瀏覽權限。新運行預設係公開。之後可以喺運行頁面嘅 **分享與私隱** 對話框改。睇 [分享同發佈](/docs/yue/guides/sharing)。

> [!NOTE]
> 倉庫運行喺呢個步驟只有 **程式碼同指標** 畫面同摘要。你開始運行嘅時候，Skynet 會對照倉庫檢查設定。

## 開始之後

運行頁面會打開。睇 [運行](/docs/yue/concepts/runs) 同 [睇結果](/docs/yue/guides/results)。

---

Source: https://staging.skynetml.com/docs/yue/guides/submit
