Documentation Index
Fetch the complete documentation index at: https://docs.osmosis.ai/llms.txt
Use this file to discover all available pages before exploring further.
Osmosis CLI 使用 TOML 配置文件来执行两种操作:运行评估和提交训练任务。所有配置文件存放在工作空间的 configs/ 目录下。
在以下示例中,被注释掉的字段(以 # 为前缀)是可选的。其默认值在行内标注。未注释的字段是必填项。
Eval Config
由 osmosis eval run 使用,用于对数据集评估 agent。
configs/eval/default.toml
[eval]
rollout = "my-rollout" # Rollout 名称(rollouts/ 下的目录)
entrypoint = "main.py" # 入口文件(相对于 rollout 目录)
dataset = "data/test.jsonl" # 数据集路径(相对于工作空间根目录)
# limit = # 评估的最大行数
# offset = 0 # 跳过前 N 行
# fresh = false # 丢弃缓存结果
# retry_failed = false # 仅重新运行失败行
[llm]
model = "openai/gpt-5.2" # LiteLLM 模型名称(必填)
# base_url = # 自定义 OpenAI 兼容端点
# api_key_env = "OPENAI_API_KEY" # API 密钥的环境变量名
[runs]
# n = 1 # 每行运行次数(用于 pass@n)
# batch_size = 1 # 并发批量大小
# pass_threshold = 1.0 # pass@k 的分数阈值
[output]
# log_samples = false # 将对话保存为 JSONL
# output_path = # 结构化输出目录
# quiet = false # 抑制进度输出
# debug = false # 启用调试日志 + 追踪
# [baseline]
# model = "openai/gpt-5-mini" # 用于对比的基线模型
# base_url = # 基线模型的自定义端点
# api_key_env = # 基线模型 API 密钥的环境变量名
字段参考
[eval] — 必填
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|
rollout | str | 是 | — | rollouts/ 下的 rollout 目录名称 |
entrypoint | str | 是 | — | 相对于 rollout 目录的 Python 入口文件 |
dataset | str | 是 | — | 数据集文件路径,相对于工作空间根目录 |
limit | int | 否 | 所有行 | 评估的最大行数(必须 >= 1) |
offset | int | 否 | 0 | 从头部跳过的行数(必须 >= 0) |
fresh | bool | 否 | false | 丢弃所有缓存结果并从头重新运行 |
retry_failed | bool | 否 | false | 仅重新运行之前失败的行 |
[llm] — 必填
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|
model | str | 是 | — | LiteLLM 格式的模型名称(例如 openai/gpt-5.2、anthropic/claude-sonnet-4-5) |
base_url | str | 否 | — | 自定义 OpenAI 兼容 API 端点 URL |
api_key_env | str | 否 | — | 包含 API 密钥的环境变量名(例如 OPENAI_API_KEY) |
[runs] — 可选
| 字段 | 类型 | 默认值 | 约束 | 说明 |
|---|
n | int | 1 | >= 1 | 每个数据集行的评估运行次数。使用大于 1 的值来计算 pass@n 指标。 |
batch_size | int | 1 | >= 1 | 并发评估请求数量 |
pass_threshold | float | 1.0 | 0.0 - 1.0 | 达到或超过此分数阈值的样本被视为 pass@k 计算中的”通过” |
[output] — 可选
| 字段 | 类型 | 默认值 | 说明 |
|---|
log_samples | bool | false | 将完整对话日志保存为 JSONL 文件,与结果一同存储 |
output_path | str | — | 结构化输出文件目录。会被 -o CLI 标志覆盖。 |
quiet | bool | false | 抑制进度条和中间输出 |
debug | bool | false | 启用调试级别日志和执行追踪 |
[baseline] — 可选
| 字段 | 类型 | 必填 | 说明 |
|---|
model | str | 是(如存在此节) | LiteLLM 格式的基线模型,用于对比评分 |
base_url | str | 否 | 基线模型的自定义端点 |
api_key_env | str | 否 | 基线模型 API 密钥的环境变量名 |
CLI 标志如 --fresh、--limit、--offset、--quiet、--debug、--output-path、--log-samples 和 --batch-size 会覆盖配置文件中的对应值,因此您可以保留基础配置并在命令行中调整各次运行的参数。
Training Config
由 osmosis train submit 使用,用于提交训练任务。
rollout 和 entrypoint 指向的是平台上同步过来的仓库,不是您的本地工作区 —— 训练任务执行的是通过 Git Sync 拉取的代码。默认情况下平台使用默认分支上最新的同步 commit;设置 commit_sha 可以将一次训练固定到特定版本。
configs/training/default.toml
[experiment]
rollout = "my-rollout" # Rollout 名称(rollouts/ 下的目录)
entrypoint = "main.py" # 入口文件名
model_path = "Qwen/Qwen3.5-35B-A3B" # 必须是受支持的模型
dataset = "my-dataset" # `osmosis dataset list` 中的数据集名称
# commit_sha = # 锁定到特定 commit
[training]
# lr = 1e-6 # 学习率
# total_epochs = 1 # 训练轮数
# n_samples_per_prompt = 8 # 每个提示的 rollout 采样数
# global_batch_size = 64 # 训练批量大小
# max_prompt_length = 8192 # 最大提示 token 数
# max_response_length = 8192 # 最大响应 token 数
[sampling]
# rollout_temperature = 1.0 # rollout 采样温度
# rollout_top_p = 1.0 # Top-p 采样
[checkpoints]
# eval_interval = # 每 N 次 rollout 运行评估
# checkpoint_save_freq = 20 # 每 N 次 rollout 保存检查点
字段参考
[experiment] — 必填
| 字段 | 类型 | 必填 | 说明 |
|---|
rollout | str | 是 | rollouts/ 下的 rollout 目录名称 |
entrypoint | str | 是 | Python 入口文件名(例如 main.py) |
model_path | str | 是 | HuggingFace 模型路径。必须是平台支持的模型。 |
dataset | str | 是 | osmosis dataset list 中显示的数据集名称 |
commit_sha | str | 否 | 将训练固定到同步仓库中的特定 Git commit SHA。省略时,平台使用默认分支上最新的同步 commit。适用于需要可复现性,或希望在本地继续迭代的同时用已知可用版本提交训练的场景。 |
[training] — 可选
| 字段 | 类型 | 默认值 | 说明 |
|---|
lr | float | 平台默认值 | 优化器学习率 |
total_epochs | int | 平台默认值 | 遍历数据集的次数 |
n_samples_per_prompt | int | 平台默认值 | 每个提示生成的 rollout 采样数。必须为正整数。 |
global_batch_size | int | 平台默认值 | RL 训练更新的批量大小。必须能被 n_samples_per_prompt 整除。 |
max_prompt_length | int | 平台默认值 | 提示的最大 token 数 |
max_response_length | int | 平台默认值 | 模型响应的最大 token 数 |
global_batch_size 必须能被 n_samples_per_prompt 整除。CLI 会拒绝违反此约束的配置。
[sampling] — 可选
| 字段 | 类型 | 默认值 | 说明 |
|---|
rollout_temperature | float | 平台默认值 | Rollout 生成时的采样温度。值越高,多样性越大。 |
rollout_top_p | float | 平台默认值 | Rollout 期间的 Top-p(nucleus)采样阈值 |
[checkpoints] — 可选
| 字段 | 类型 | 默认值 | 说明 |
|---|
eval_interval | int | — | 每 N 个 rollout 步骤运行一次评估 |
checkpoint_save_freq | int | 平台默认值 | 每 N 个 rollout 步骤保存一次 LoRA 检查点 |
建议从仅包含必填的 [experiment] 字段开始,让平台对训练超参数使用默认值。根据您的训练任务指标逐步调优。