[

我们之前已经写过, 强化学习(RL)是一个基础设施问题, 以及我们过去 五年 所做的工作如何提供了 高性能, 可用, 且 可扩展 的基础设施,让你可以放心地训练模型。即便不考虑基础设施方面的顾虑,RL 依然很难!系统中有许多更高层的组件会决定你的结果:你需要合适的基础模型、高保真的环境、清晰且稳健的奖励函数,以及经过调优、确实有效的训练配方。

但如果你已经在生产环境中部署了智能体框架,并且从该部署中收集了评估结果和智能体轨迹,那么你已经完成了 80%。你只需要一种简单的方法来基于你的数据开始训练。

这就是我们构建 Modal Dojo的原因:这个库为你提供了所需的构建模块、调优好的默认值和可观测性,让你能够轻松进行生产级 LLM 训练。

它现在已经可用。只需一个提示词:

Use Modal Dojo to train [X model] on [Y proprietary dataset]
to replace [Z agent].

继续阅读,了解我们如何构建它以及为什么这样做。

押注开源

公司只有拥有自己的智能,才能构建差异化价值。后训练让你能够按每美元的任务智能进行有效竞争——特别是通过基于专有数据训练并快速迭代训练配方。要有效做到这一点,需要对训练栈拥有完全控制权,直至源代码。而这正是 Modal 的设计目标。我们构建可靠且可扩展的抽象,并公开其内部机制,以随用户需求一同成长。

我们的训练库建立在多个久经考验的开源框架之上,例如 Miles 和 Slime。它们为你提供了构建稳健后训练的基础,而无需依赖闭源提供商,也无需从零开始重新造轮子。我们甚至自己 修补 并 向上游提交 了 几个 PR 。.

当你拥有整个技术栈时,就可以随心所欲地定制。我们设计这个库,让你能够调优配方以获得最大性能、构建复杂环境、修补底层框架,甚至 重塑开箱即用的可观测性仪表盘 。

不到 100 行代码实现生产级 LLM 训练

使用我们的训练库就像这样简单:

import re

from modal_dojo import (
    HuggingFaceDataset,
    Qwen3_8_27B,
    Qwen3_8_27B_Recipe,
    TrainConfig,
)

model = Qwen3_8_27B()

async def gsm8k_rm(args, sample, **kwargs) -> float:    BOXED_RE = re.compile(r"\\boxed\{([^}]+)\}")
    NUMBER_RE = re.compile(r"-?[\d,]+(?:\.\d+)?")

    text = model.parse_response(sample.response or "").content
    boxed = BOXED_RE.findall(text)
    pred = boxed[-1] if boxed else (NUMBER_RE.findall(text) or [""])[-1]
    try:
        return float(float(pred.replace(",", "")) == float(sample.label))
    except ValueError:
        return 0.0
config = TrainConfig(
    model=model,
    dataset=HuggingFaceDataset(
        hf_repo="skrishna/gsm8k_only_answer",
        hf_split="train[:120]",
        input_column="text",
        output_column="label",
        input_format="text",
    ),
    recipe=Qwen3_8_27B_Recipe(
        custom_rm_function=gsm8k_rm,
    ),
)

run = config.launch()
print(run.training_run_id)

让我们逐一拆解。

  1. 首先,你必须 选择一个要训练的模型. 这个训练库已在从 五亿到数万亿参数模型 的范围内得到验证,并支持自带模型。你只需对这些模型运行评估,就能确定合适的选项。
  2. 然后,你需要 用于训练模型的数据. 从 Hugging Face 加载数据集、导入 Harbor 环境,或者使用你的框架和评估结果自行创建数据集,都很容易。利用生产轨迹,你可以为该环境生成任务,从而形成训练集和测试集。
  3. 最后,在开始烹饪之前,你需要一份配方。 模型和数据集决定了 要训练什么 ,而配方则通过指定硬件、并行策略、总 rollout 规模、环境等参数,决定了 训练将如何进行 。我们为所有支持的模型提供了自动优化的配方,这些配方源自我们与各领域团队合作、训练出卓越前沿性能模型的经验。当你需要针对特定用例扩展这些配方时,只需 修改几个参数.

,然后就可以 开始训练!

了。 指标可观测性

要在奖励黑客行为发生时及时捕捉、调试停滞的运行,并跟踪众多并发运行的进度,你需要对训练稳定性和子步骤计时的关键指标进行可观测性监控。

Modal 的训练库开箱即带一个 可观测性仪表盘。其背后是我们构建的稳健指标收集器,可向你展示跟踪运行进度所需的一切:损失和奖励曲线、框架输出的指标、训练期间每次 rollout 的智能体轨迹、细粒度到子步骤的性能剖析,以及容器日志,便于轻松识别瓶颈并调试运行。

它如此简单,连你的智能体都能做到!

当你需要验证假设或并行运行大量实验时,智能体尤其有用。然而,如果被迫创建并筛选数千行配置文件和源代码,或在没有资深专家指导的情况下推理如何修复训练中的 bug,它们的效率就会大打折扣。

训练模型所需的一切都随时可供你的智能体使用。如上所示,API 直观且精简。通过 CLI,智能体可以轻松获取运行状态、元数据、日志和智能体轨迹。而我们精心打造的 技能 能以可预测且有方向性的方式引导它们。有了这一切,强化学习就变成了你的智能体可以一次性跑出基线的问题。

以下是一个单一提示词能做到什么的示例:

如果你在做更高级的事情并需要指导,请 联系我们.

客户前进的速度前所未有

我们看到在 Modal Dojo 之上,后训练正以前所未有的速度进行。

Axiom Bio 训练模型以减少 意外的药物毒性

Axiom Bio 训练大型开放模型,从质谱数据中识别分子。借助 Modal Dojo,他们能够快速开展大规模、长上下文的强化学习实验。

“我们使用 Modal 训练模型,从质谱数据中识别分子,这需要对大型开放模型进行长上下文强化学习。Modal Dojo 让我们在保持快速推进的同时,对训练运行拥有完全控制权。我们立即启动了训练,并扩展到在 64 张 B300 上运行 64k 上下文的 DeepSeek V4.1 Flash,几天之内,我们就基于可靠的默认配方,进一步提升了我们任务的性能。”—— Nishkrit Desai,Axiom Bio 创始工程师

Afterquery 策划跨多个领域的专家数据

Afterquery 从领域专家处策划数据,供模型训练使用。借助 Modal Dojo,他们能够在现有数据集上启动 自动研究 ,以进行性能爬山优化。

“我们使用 Modal Dojo 在多种前沿领域以 256k 上下文长度训练 Kimi 和 DeepSeek 等大型语言模型。Dojo 配方支持自动研究,因此我们的研究团队可以花更多时间设计实验并提升模型能力。”—— Spencer Mateega,Afterquery 首席执行官

立即开始

在 Modal,我们的目标是帮助你拥有自己的智能。到目前为止,我们已经通过 端点将 LLM 推理投入生产,通过 端点候选支持测试替代部署,并通过 推测解码加速了万亿参数模型的推理。 现在,我们让你能够朝着自己的帕累托前沿进行训练。

立即开始训练 LLM。

]