什么是 Weaver?
Weaver 是面向大语言模型训练的 API 和托管训练服务。你在本地编写 Python 训练循环,定义数据、loss、采样与评估逻辑;Weaver 负责在远端 GPU 集群上执行前向、反向、优化、权重导出和采样服务。
它适合希望快速迭代 SFT、RLHF、agentic training 或自定义训练算法的研究者和工程团队。你保留训练循环的控制权,同时不用自己搭建分布式训练、推理权重同步、checkpoint 管理和任务调度基础设施。
Weaver 的设计受 Thinking Machines Lab 的 Tinker 启发,并围绕 Nex-AGI 的 Agent 生态做了深度集成,例如 NexRL 和 NexAU。
核心理念
传统的大模型训练需要同时处理数据管道、分布式并行、显存规划、故障恢复、权重导出和推理服务。Weaver 把这些复杂度封装成一组稳定 API:
- 你提交 tokenized training data 和 loss 输入。
- Weaver 在托管训练后端执行
forward()或forward_backward()。 - 你按自己的算法节奏调用
optim_step()。 - 需要评估或 rollout 时,导出权重并创建
SamplingClient。 - 需要恢复实验时,用 checkpoint API 保存和加载训练状态。
换模型时通常只需要修改 base_model 字符串;长上下文变体可使用形如 Qwen/Qwen3-8B:262144 的后缀。
职责分工
| 你负责 | 你编写 | Weaver 负责 |
|---|---|---|
| 训练数据、环境和评估逻辑 | 本地 Python 训练脚本 | 远端 GPU 训练与调度 |
| loss、采样策略、训练循环 | Datum、loss 输入、优化器参数 | 模型加载、并行训练、权重同步 |
| SFT/RL/Agent 算法细节 | forward_backward()、optim_step()、sample() 调用 | 任务排队、故障恢复、checkpoint 存储 |
当前能力
- 训练模式:默认 LoRA 微调,支持通过
training_mode="full_ft"发起全参数微调。 - 可配置 LoRA:支持 rank、seed、attention、MLP、unembedding 等 LoRA 开关。
- 核心训练 API:支持
forward()、forward_backward()、optim_step()和自定义 loss 的forward_backward_custom()。 - 采样与评估:支持从训练模型导出 sampler 权重,创建采样会话,计算 prompt logprobs。
- checkpoint 管理:支持
save_state()、load_state()、load_state_with_optimizer()、list_checkpoints()和 TTL 管理。 - RL/Agent 集成:可配合 NexRL 编排 rollout、轨迹池和策略更新,也可接入 NexAU 构建工具调用 Agent。
什么时候使用 Weaver?
SFT 快速实验:用少量代码跑通数据处理、交叉熵训练、采样验证和权重保存。
强化学习训练:在本地控制 rollout、reward、advantage 和优化节奏,让 Weaver 处理训练后端。
Agentic 模型训练:把 NexAU Agent 的轨迹交给 NexRL/Weaver,训练更擅长工具使用和多步推理的模型。
自定义算法研究:使用 forward() 获取 logprobs,或通过 forward_backward_custom() 把自定义 PyTorch loss 的梯度传播回 Weaver。