# 使用向导启动运行

> 提交向导的每一步，从任务到契约检查。

提交向导用于设置并启动运行。它有四个步骤：**任务**、**输入**、**优化器** 和 **指标和运行**。每个步骤包含一个或多个页面。本指南从任务一直讲到契约检查和启动运行，逐一说明每个页面。

> [!NOTE]
> 向导会根据体验级别显示更多或更少的设置：**引导**、**标准** 或 **专家**。默认级别是“引导”。你可以在 **设置 → 账户** 的 **显示多少内容** 中更改级别。在“引导”级别下，部分标签更简单。本指南使用“标准”和“专家”级别的标签，并在不同之处用括号注明“引导”级别的标签。

## 第 1 步：任务

### 你想优化什么？

在 **任务访谈** 对话中向助手描述你的任务。助手会为你填写两个字段：

- **目标**（引导模式中同名）：优化后的产物必须做好什么。
- **背景**（引导：**补充信息**）：上下文、约束条件，以及好的结果是什么样子。

你可以编辑这两个字段。助手不会覆盖你的编辑。

### 要优化的内容

选择 **工件类型**：

| 工件类型  | 改动的内容                         |
| --------- | ---------------------------------- |
| 提示词    | 发送给语言模型的指令               |
| 代码      | 程序的源代码                       |
| DSPy 程序 | DSPy 模块中各预测器的指令          |
| 文本      | 任何其他文本，例如文档或模板       |

然后提供 **起始版本**（引导：**起点**）。粘贴当前版本，或让助手写一份草稿。

### 优化仓库

你也可以优化仓库中的代码。设置以下字段：

- **仓库**：选择一个仓库，或以 `owner/name` 的形式填写。
- **提交**：一个 40 个字符的 SHA。留空则使用分支上的最新提交。
- **优化器可以修改的路径**：每行一个文件或文件夹。一个点表示整个仓库。
- **安装命令**：在每次全新检出后、打分之前运行。留空时 Skynet 会自行找到命令。

## 第 2 步：输入

### 数据

为运行添加用例。你可以：

- 上传 CSV、JSON 或 Excel 文件。
- 从你的库中选择一个数据集。

请阅读[数据集与划分](/docs/zh-Hans/concepts/datasets)和[准备数据集](/docs/zh-Hans/guides/datasets)。

### 如何读取数据

助手会读取数据并建议如何使用它。请检查它的选择：

- 把每一列标记为输入、期望输出或忽略。
- 没有输出列时，Skynet 把第一行用作单个输入。
- 设置训练集、验证集和测试集的划分。划分比例之和必须为 1。

> [!WARNING]
> 当 **输入** 步骤有问题时，你无法打开后面的步骤。请修复向导显示的问题，然后继续。

## 第 3 步：优化器

在“标准”级别下，此步骤只有一个页面。它显示优化器、预算，以及在需要时显示模型。在“引导”和“专家”级别下，此步骤有三个页面：**优化器**、**模型** 和 **预算**。

### 优化器

向导只列出适合你的任务和输入的优化器。默认为你选择 **Auto**。如果需要，可以选择其他优化器。请阅读[引擎](/docs/zh-Hans/concepts/engines)和[优化的工作原理](/docs/zh-Hans/concepts/optimization)。

### 模型

- **任务模型**：你的运行代码调用的模型。如果运行代码不调用模型，请留空。DSPy 程序必须有任务模型。
- **反思模型**：读取分数和反馈并编写下一批候选的模型。使用编程智能体类优化器时，这就是智能体所用的模型。

### 预算

设置运行可以持续尝试多久，以及最多可以花费多少：

- **最大评分器运行次数**（引导：**最大尝试次数**）：Skynet 最多为多少个候选打分。部分优化器需要一个最小值。
- **停止分数**（引导：**分数达到此值时提前停止**）：当某个版本达到该分数时，运行停止。
- **最大迭代次数**（引导：**最大轮数**）：仅对支持此设置的优化器显示。
- **支出上限**：运行最多可以花费的金额。默认为 $5；如果 **开始所需** 的金额更高，则为该金额。你也可以选择 **不设上限**。

如果上限或你的余额低于开始所需的金额，向导不允许你继续。请阅读[预算与计费](/docs/zh-Hans/concepts/billing)。

## 第 4 步：指标和运行

### 代码和指标

编写两个文件：

- `run.py`：在一个用例上运行你的产物的运行代码。
- `metric.py`：为输出打分并编写反馈的指标。

**编程智能体** 可以为你编写和修改任何文件。它会检查自己的代码并修复失败的地方。你最多可以添加 20 个额外文件。请阅读[指标与评分器](/docs/zh-Hans/concepts/scorers)。

如果你的指标调用 `llm()`，请设置 **指标模型**。默认使用反思模型。

### 契约检查

**契约检查**（引导：**试运行**）会在沙箱中用 3 个样例用例运行你的代码和指标。它检查：

- 运行代码签名，
- 指标签名，
- 指标模型，
- 在样例上运行代码，
- 指标返回值。

选择 **检查**（引导：**测试一下**）。在检查通过之前，你无法开始运行。如果你在检查通过后更改了代码或设置，请再次运行检查。

> [!TIP]
> 打开每个样例，查看其输入、输出和反馈。好的反馈比单纯的分数能给优化器提供更多信息。

### 定时运行

优化成功后，你可以按计划再次运行它。默认为 **已关闭**。

### 准备运行

最后一个页面在五个标签页中显示摘要：**常规**、**数据**、**模型**、**预算** 和 **奖励**。检查设置，然后开始优化。

摘要还会显示运行的可见性。新运行默认是公开的。之后可以在运行页面的 **共享与隐私** 对话框中更改。请阅读[分享与发布](/docs/zh-Hans/guides/sharing)。

> [!NOTE]
> 仓库运行在此步骤中只有 **代码和指标** 页面和摘要。当你开始运行时，Skynet 会针对仓库检查设置。

## 开始之后

运行页面随即打开。请阅读[运行](/docs/zh-Hans/concepts/runs)和[查看结果](/docs/zh-Hans/guides/results)。

---

Source: https://staging.skynetml.com/docs/zh-Hans/guides/submit
