← 返回 2026-07-27

交互式训练2:面向实时模型训练的可审计控制平面 Interactive Training 2: Auditable Control Plane for Live Model Training

Wentao Zhang, Xuanhe Pan, Han Zhou, Yang Lu, Yuntian Deng 📅 2026-07-17 👍 20 2026-08-01 18:30
LLM智能体 交互式训练 可审计机器学习 实验追踪 训练控制平面

提出统一协议,让训练代码、人类与LLM智能体通过同一接口共同操控实时训练流程。

前置知识

控制平面(Control Plane)

在网络与分布式系统语境中,控制平面负责做配置与管理决策,数据平面负责实际的数据搬运。本文把这一思想搬到训练里:控制平面是介于训练代码和外部控制器之间的一层,定义哪些东西可以改、改动何时生效、以及哪些操作被记录。

理解本文要把'训练逻辑(数据平面)'和'谁在决策、何时决策、如何记录(控制平面)'分开看,否则会误以为它只是个回调库。

实验追踪器(Aim / Weights & Biases)

Aim、W&B 这类工具持久化训练指标,用曲线展示训练在如何进行,但本身不提供通用的干预手段。本文用 Aim 作为监控与控制 UI,但由训练应用、而非追踪器决定哪些设置可以被改变。

读懂本文要明白现有追踪器只解决'看见'而不解决'动手',这正是本文要补的缺口。

训练回调与控制点(Callback / Control Point)

训练循环里可以被插入逻辑的钩子,例如 Hugging Face Trainer 的回调。本文里的控制点是应用自己选定的安全边界,在下一个训练步之前,排队请求会在此处被依次校验、应用并记录。

'改动何时生效'由循环而非控制器决定,这是可审计与安全性的根基,也是与 v1 回调特化方案的核心区别。

优化器与超参数旋钮(AdamW / Muon / learning rate $\eta$)

优化器(如 AdamW、Muon)负责用学习率 $\eta$、动量等更新模型权重。本文用 register_knob 把学习率 $\eta$、Muon 动量、源采样权重、课程难度等都统一成同一种'类型化设置'。

理解'同一个协议能表达多种变化'需要知道这些旋钮差异很大但都可被抽象成 getter/setter 加类型与范围。

RLVR(Reinforcement Learning with Verifiable Rewards)

奖励可以被客观验证的强化学习,例如 Countdown 谜题答案对错可判定。本文第五个工作流就是直接 RL 循环,把策略、裁剪、熵、课程难度作为可被控制的旋钮。

这是协议覆盖到强化学习、且不依赖 HF Trainer 的关键证据,理解它能体会'直接集成路径'的普适性。

研究动机

研究者几乎从不把模型训练当成纯被动的过程:他们会盯着损失曲线、检查评测结果,然后决定是否降低学习率 $\eta$、是否重平衡数据、是否保存检查点或终止一个不稳定的 run。Aim、Weights & Biases 这类现代实验追踪器让'看到发生了什么'变得容易,却没有提供任何通用的'动手'手段。要把一个观察落实成动作,通常仍需要写一段只服务于某个 trainer、只服务于某次实验的自定义回调。作者指出研究者其实已经在根据实时表现来 steer 训练(引用 Zhang et al. 2022、Walsh et al. 2025),但工具链是碎片化的。更早的 Interactive Training v1(2025)证明了人或受限 LLM 可以修改一个活的 Hugging Face 训练任务,但它建立在一套固定命令词表、且强绑定 HF Trainer 回调之上,是 trainer 专用的。

本文的目标是把实时训练干预从'为单次实验写的特化逻辑'升级为'可复用的接口/协议'。具体目标是:训练应用声明哪些设置允许被改、这些改动可以在哪些安全点生效;人类与自动化控制器(脚本、启发式、LLM 智能体)通过同一套共享协议来决定请求什么;日志按顺序记录下每一次决策与结果。最终让训练任务更易于 steer、复用和审视,并跨越不同框架与工作流。作者明确这是面向'人类或智能体引导训练'的工具基础与系统研究的起点。

与已有工作不同的是,独特切入点在于'关注点分离':训练代码声明控制项、循环挑选控制点、控制器共享一个协议。v1 是 trainer 专用的,v2 把它抽象成可复用协议——任何应用注册自己的设置与动作,任何循环选自己的控制点,任何控制器(人/脚本/启发式/LLM)走同一接口。与超参优化(HPO)这类'用搜索策略挑配置'的工作相比,本文的系统只提供可改动作、生效位置和审计轨迹,而把搜索/决策算法留给上层,因此 Optuna、PBT、动态算法配置都可以作为控制器叠加在上面。这种'控制平面与决策策略解耦'是它和追踪器、HPO、orchestration 都不同的本质区别。

核心方法

直觉是:训练像一个人类已在凭直觉微调的过程,给它配一个统一的'遥控器+飞行记录仪'。技术上,一个 TrainingSession 常驻训练进程内;训练应用用 register_knob 注册类型化设置(绑定到 getter/setter,附带类型、范围、步长与描述)并实现结构化动作(如 evaluate、save_checkpoint)。人、脚本、启发式与 LLM 智能体把同样格式的类型化请求投进同一队列。训练循环在开发者选定的控制点调用 session.step(metrics),按序记录指标并快照配置、触发控制器、排空请求队列、运行 handler 并 clamp 设置值、为每个请求记录结果。同一协议支持三条集成路径:HF Trainer 回调(make_interactive(Trainer))、optimizer.step() 补丁、直接调用 session.step 的自定义循环;轻量 FastAPI 暴露 /state、/actions、/events 与 WebSocket,Aim 呈现实时指标与事件日志,多轮靠 plan/act/reflect 与文本 journal 传递。

核心创新是'控制平面'这个抽象:训练代码与控制器之间的一层,定义'什么能改、何时生效、记录什么'。与 v1 的'预定义命令在 trainer 回调边界执行'截然不同,v2 是应用注册的类型化设置与结构化动作,在开发者选定的、下一个训练步之前的控制点生效,并对人/脚本/启发式/智能体使用同一个类型化协议。关键是训练循环始终保有控制权:它决定请求何时生效、校验任务相关动作、可以对 LLM 智能体隐藏危险动作。一个 HTTP 请求会立刻返回标识符,稍后的 action_result 事件汇报是被应用还是被拒绝;重连的客户端可用 since 游标恢复错失的事件。最重要的保证是:当 session.step 调用返回时,所有被接受的改动都已在下一个训练步之前就位。这使得干预既安全又可审计。

方法步骤详情

每个 session.step(metrics) 内部依次为:(1) 记录新指标并对初始设置配置做快照;(2) 按各自计划触发已挂载的控制器,例如每 100 步;(3) 从同一个动作队列排空人类与自动化的请求;(4) 运行匹配的 handler、clamp 设置值、为每个请求记录一个结果;(5) 在暂停期间继续服务 resume/stop 请求。循环空闲时 session.pump() 处理待处理请求但不记录训练指标,并返回 StepControl,告诉集成层是否要停止、评测、保存/加载检查点、重置模块或更新设置。每个提交请求含动作类型、参数、标识符、时间戳、来源;结果记录成败、可选返回数据与错误信息;事件再叠加单调递增的序列号与轮次号。可选 LLM 智能体分三阶段:Plan(给定任务、目标、可用设置、剩余轮数与历史摘要,返回初始配置与策略)、Act(收到近期指标、当前设置、本轮早先决策与历史反思及由已注册动作生成的工具,可发若干 tool call 或主动不动作)、Reflect(写一条简短可执行的 lesson)。提示最多只用最近 10 条 journal 条目以约束上下文增长。

技术新颖性

技术新颖性体现在几方面:(a) register_knob 把 AdamW 学习率 $\eta$、源采样权重、Muon 动量、强化学习课程难度都统一成同一种类型化机制,而不把任务特定逻辑塞进训练会话;(b) 三条集成路径(HF Trainer 回调、optimizer.step() 补丁、直接循环)用一个 TrainingSession 覆盖 HF Trainer、可被包装的循环、以及自定义预训练/RLVR 循环;(c) 一份有序 journal 把请求-结果-指标-检查点-计划-反思在轮内与跨轮串联,作者称之为'可审计'——能重建谁请求了每个动作、请求内容、是否成功以及周围发生了什么;(d) 控制平面与监控解耦:用 Aim 做监控+控制 UI,但由训练应用而非追踪器决定什么可改。Table 3 把差异讲透:集成从'HF Trainer 回调'变成'一个 TrainingSession 被三种路径复用';可改项从'预定义命令'变成'应用注册的类型化设置';控制器从'人仪表盘+有限 LR 智能体'变成'人/脚本/启发式/智能体同一协议'。

One request from plan to result in the Aim Live workspace.
Figure 1: One request from plan to result in the Aim Live workspace.
The shared control protocol.
Figure 2: The shared control protocol.

实验结果

在五个工作流上验证(52 轮、47 个 LLM 引导轮、1207 次成功动作、3.23M/0.68M 输入/输出 token、按 GPT-5.5 计价 36.54 美元),围绕三问。其一能否表达多种变化:从优化器/检查点设置到源/类别混合、27 个分组学习率、两个优化器组、再到 RL 难度计划,全用同一 register_knob。其二每个请求是否有记录结果:Figure 1 中 6:01:46 LLM 请求 save_checkpoint,下一控制点运行 handler 后 action_result 记录成功,2 秒后 checkpoint_saved 记录 step 200、eval loss 0.2709,被拒则记显式失败。其三后续轮是否复用早期反思(Table 2):Sentiment R8 回退→R9/R10 采纳非对称类别权重到 Macro-F1 0.65612;Muon–AdamW R4 反思点名'动量没试过'→R5 降 Muon 动量 0.95→0.90 后达 4.4291;Countdown R5 卡在 0.154→R6/R7 加宽裁剪到 0.232。各任务分数:BERT 验证损失 0.354→0.220;Sentiment Macro-F1 0.568→0.656;Layerwise GPT 5.346→5.055;Muon–AdamW 4.797→4.429;Countdown 最难准确率 0.032→0.232。作者强调这些是'上下文'而非受控比较。

What the five released workflows expose.
Table 1: What the five released workflows expose.
Failed rounds appear in the next plan.
Table 2: Failed rounds appear in the next plan.
From a trainer-specific demonstration to a reusable control protocol.
Table 3: From a trainer-specific demonstration to a reusable control protocol.
Setup details for the five recorded runs.
Table 4: Setup details for the five recorded runs.
Per-workflow journal and usage summary.
Table 5: Per-workflow journal and usage summary.
Scores recorded during five example runs.
Figure 3: Scores recorded during five example runs.
查看结构化数据
任务指标本文基线提升
BERT/IMDB 情感分类 验证损失(越低越好) 0.220(最佳轮,11 轮、1000 步/轮、88 次动作、3.84 美元) R0 无 LLM 参考 0.354 相对降低约 37.9%
Sentiment mixing(tweet/finance/product 多源情感) Macro-F1(越高越好) 0.656(11 轮、2000 步/轮、399 次动作、10.10 美元) R0 无 LLM 参考 0.568 相对提升约 15.5%
Layerwise GPT(24×512 Qwen3 风格) 验证损失(越低越好) 5.055(11 轮、3000 步/轮、355 次动作、11.98 美元) R0 无 LLM 参考 5.346 相对降低约 5.4%
Muon–AdamW GPT(12×768 Qwen3 风格) 验证损失(越低越好) 4.429(11 轮、3000 步/轮、137 次动作、6.40 美元) R0 无 LLM 参考 4.797 相对降低约 7.7%
RLVR Countdown(Qwen3-0.6B LoRA) 最难课程准确率(越高越好) 0.232(8 轮、100 迭代/轮、228 次动作、4.22 美元) R0 无 LLM 参考 0.032 绝对 +0.20,相对约 +625%

局限与改进

作者明确承认:训练循环会在等待 LLM 响应时阻塞;系统还不能处理训练已经推进之后才到达的响应;应用仍需自己校验自定义动作;值边界、类型检查、权限与人类控制能限制智能体能做什么,但无法保证动作安全或最优;高风险场景需要审批闸、资源预算、回滚策略与任务相关的安全检查。发布的 journal 不含硬件、墙钟时间与逐步遥测。分数并非受控比较。我的额外观察:47 个 LLM 轮里只有 22 个刷新了 running best,意味着超过一半的 LLM 轮没赢过当前最佳(Sentiment 在 R9-R10 反弹前有连续五轮未改进),决策质量对成本(36.54 美元、3.23M 输入 token)的性价比值得追问;验证全部来自作者自己的演示,没有与 Optuna/PBT 这类自动 HPO 作为控制器在同一预算下的正面比较;LLM 同步阻塞在高调用频率(如每 10 迭代)下可能显著拖慢训练吞吐。

独立分析的弱点

(1) 决策质量不足:47 个 LLM 轮仅 22 个新最佳,多数后续轮未改进,改进方向是引入更强的规划先验、用廉价策略/启发式做 warm-start,或做不确定性感知的反思。(2) 同步阻塞:LLM 响应期间训练停摆,改进方向是异步/预测式智能体——在训练继续的同时预计算计划,并补齐对迟到响应的处理。(3) 缺乏正面对比:没有把 HPO/PBT/Optuna 作为控制器在同等预算下与 LLM 智能体比较,LLM 智能体的边际价值不清晰,应补一组 controlled study。(4) 安全保证偏软:值边界与权限只是软约束,对 RLHF、前沿预训练等高风险场景需要形式化审批闸、沙箱 dry-run、以及在指标回退时自动回滚。(5) 模型泛化未测:所有录制 run 只用 GPT-5.5(high reasoning effort),换更小的开源智能体是否会退化未知。(6) 单会话视角:尚无对分布式或并行多 run 的多会话/舰队级控制。

未来方向

作者方向:把它作为交互式训练工具的基础,并系统研究人类与自动化智能体如何监督进行中的学习;HPO、PBT、动态算法配置可作为上层控制器。可延伸方向:形式化安全/审批闸与回滚策略;异步/预测式智能体以消除阻塞等待;多 run/舰队级协调;更丰富的控制器(受限/预算受限智能体、集成智能体);超越 Aim 的更紧追踪器集成(W&B、MLflow);把 journal 当作训练语料蒸馏出一个小的 steering 策略;接入 AutoML 基准做受控比较;扩展到 fine-tuning-as-a-service 与 RLHF 这类审计至关重要的场景。

复现评估

整体很强。代码开源在 github.com/yuntian-group/interactive-training,公开站点 interactivetraining.ai/live 提供一个由确定性无 LLM 策略驱动的 queued tiny-BERT CPU 沙箱,评审者无需 GPU 或 API key 即可改设置并观察 action_result。核心冒烟测试(tag v2.0.2,tests/run_tests.py)在不依赖 Aim fork 的情况下演练了 session、动作协议、HTTP 接口、内置集成与 journal。产物含五份 JSONL journal 与一张完整 3842×1856 Aim 截图;Table 5 的 SHA-256 清单把每行链回源 journal,Table 4 列出模型/数据/预算/评测频率/控制项。注意点:完整 Aim 界面需配套 Aim 分支与 demo/aim.lock.json;录制 LLM run 需 GPT-5.5 key(写专用并脱敏);journal 缺硬件/墙钟/逐步遥测;36.54 美元按 GPT-5.5 配置价计。