# 運行

> 運行狀態、你可以對運行做嘅操作，同埋運行點樣停止。

一次運行就係一次最佳化。佢有一個狀態、一個花費上限，同埋一組已儲存嘅版本。呢頁講解運行嘅狀態、你可以對運行做嘅操作，同埋運行停止嘅原因。

## 運行狀態

每次運行都係以下其中一個狀態：

| 狀態         | 意思                                                       |
| ------------ | ---------------------------------------------------------- |
| `pending`    | 運行喺佇列入面等緊。                                       |
| `validating` | 最佳化開始之前，Skynet 檢查緊設定。                        |
| `running`    | 優化器提出新版本，再幫佢哋評分。                           |
| `success`    | 運行完成咗。最佳版本已經儲存。                             |
| `failed`     | 有錯誤令運行停咗。                                         |
| `cancelled`  | 有人取消咗運行。                                           |
| `paused`     | 運行喺檢查點停咗。你可以繼續佢。                           |
| `stopped`    | 運行用到預算上限停咗。佢會保留搵到嘅最佳版本。             |

`success`、`failed`、`cancelled`、`stopped` 同 `paused` 係終止狀態。優化器唔會再處理終止狀態嘅運行。`paused` 係唯一一個專登留畀你繼續嘅終止狀態。

## 操作

運行頁面會顯示適用於目前狀態同你角色嘅操作。API 都有同樣嘅操作。

| 操作       | 幾時可以用                                                                                   | 會做乜                                                    |
| ---------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| **暫停**   | 運行緊，而且有已儲存嘅檢查點。                                                               | 喺檢查點停止運行。狀態會變成 `paused`。                   |
| **取消**   | 運行係 `pending`、`validating` 或者 `running`。                                              | 停止運行。取消咗就冇得復原。                              |
| **繼續**   | 運行係 `failed`、`cancelled`、`paused`，或者因預算而 `stopped`，而且有已儲存嘅檢查點。       | 由最後一個檢查點繼續同一次運行。運行會保留佢嘅 id。       |
| **複製**   | 只要你睇到個運行，任何時候都得。                                                             | 打開提交精靈，帶住一份設定嘅副本。                        |
| **刪除**   | 運行處於終止狀態。只限擁有者。                                                               | 永久刪除運行同佢所有數據。                                |

對於 `failed` 或者 `cancelled` 嘅運行，API 仲有多兩個操作：

- **重試** 用同一套設定開始一次新運行。新運行會有新嘅 id。
- **重新執行** 由頭再開始同一次運行。運行會保留佢嘅 id。

> [!NOTE]
> 重試、重新執行同 API 複製都會拒絕有自己花費上限嘅運行。喺提交精靈打開設定，開始新運行之前先設定一個新預算。運行頁面上面嘅 **複製** 掣會幫你做呢件事。

API 複製一次請求可以整 1 至 5 個副本。每個副本都會計入你嘅運行限制。睇 [限制](/docs/yue/limits)。

### 邊個可以做操作

你喺個運行嘅角色決定你睇到邊啲操作：

- **擁有者** 可以做所有操作、管理分享，同埋刪除運行。
- **編輯者** 可以暫停、取消、繼續同重試運行，亦可以提高佢嘅花費上限。
- **檢視者** 可以打開運行同複製佢。

想了解更多角色嘅資料，睇 [分享同發佈](/docs/yue/guides/sharing)。

## 運行點樣停止

運行會因為以下四個原因之一停止。

### 完成

優化器做完佢嘅工作。狀態變成 `success`。Skynet 會儲存最佳版本，再做最終測試。睇 [睇結果](/docs/yue/guides/results)。

### 預算

運行開始之前冇成本估算。佢嘅花費上限就係佢可以用嘅預算。Skynet 會喺運行期間量度每次評分器運行嘅實際成本：

1. Skynet 會等 10 次已結算嘅評分器運行。喺嗰之前，單次呼叫嘅成本波動太大，用唔到。
2. Skynet 用到目前為止嘅平均成本，為下一輪迭代估價。佢會將價錢乘以 1.5，因為後面嘅迭代通常貴啲。
3. 當剩低嘅預算唔夠付下一輪迭代，Skynet 就唔再接受新工作。優化器會喺下一次付費呼叫時停止。

之後運行嘅狀態會係 `stopped`，停止原因係 `budget_reached`。運行頁面會顯示 **已達預算上限** 通知。通知會話你知 Skynet 儲存咗邊個版本：

- 你評估過嘅最佳版本。
- 如果搵唔到更好嘅版本，就係你評估過嘅起始版本。
- 如果預算喺任何候選版本評估完之前就用晒，就冇版本。你嘅輸入同記錄會保留。

想繼續嘅話，喺通知上面用 **提高上限並繼續**。Skynet 會由最後一個檢查點繼續個運行。

> [!TIP]
> 設定咗 **無上限** 嘅運行會一直用你嘅帳戶結餘，直到完成為止。如果結餘用晒，運行會停止，並保留已有嘅成果。通知會顯示 **帳戶餘額已用晒**。增值之後，再繼續運行。

有啲舊運行以停止原因 `budget_projected` 暫停咗。你可以用同樣方法繼續佢哋。

### 失敗

有錯誤令運行停止。狀態變成 `failed`。**記錄** 分頁會顯示發生咗乜事。如果運行有已儲存嘅檢查點，你可以繼續佢。你亦可以重試。

如果有個 worker 喺處理你嘅工作期間停咗，Skynet 會恢復個工作再試過。試咗 3 次之後，Skynet 會將個工作標記為失敗。喺失敗或者取消之後繼續，都會計做一次嘗試。喺暫停或者預算停止之後繼續，就唔計。

### 取消

你取消咗個運行。狀態變成 `cancelled`。取消咗就冇得復原。之後你可以由已儲存嘅檢查點繼續個運行，或者重試佢。

## 相關頁面

- [預算同收費](/docs/yue/concepts/billing)
- [用精靈開始運行](/docs/yue/guides/submit)
- [限制](/docs/yue/limits)

---

Source: https://staging.skynetml.com/docs/yue/concepts/runs
