使用说明
皮质
MCP服务器,让AI代理实时监控和调整神经网络训练。
与其盯着损失曲线并手动调整超参数,不如将AI代理连接到你的训练循环。它监视指标,检测异常情况,并采取谨慎的干预措施——用安全围栏防止它弊大于利。
建筑
┌─────────────────┐ ┌──────────────────┐ ┌───────────────┐
│ Training Loop │────▶│ Telemetry │◀────│ AI Agent │
│ │ │ (tracker.log) │ │ (via MCP) │
│ PyTorch / MLX │◀────│ │────▶│ │
│ JAX / any │ │ ┌────────────┐ │ │ diagnose() │
│ │ │ │ Detectors │ │ │ adjust_param()│
│ tracker.poll() │ │ │ Guardrails │ │ │ rollback() │
│ get_override() │ │ │ Log │ │ │ save/restore │
└─────────────────┘ └──────────────────┘ └───────────────┘
三层:
- 遥测 --指标、配置、检查点、历史记录
- 探测器 --基于规则的异常检测产生类型化结果(熵崩溃、损失发散、梯度尖峰、评估平台、损失不平衡)
- 护栏 --干预的安全约束(最大变化百分比、冷却、速率限制、行动前检查点要求、完整干预日志)
快速开始
在您的培训代码中
from cortex import tracker
tracker.config(total_steps=100000, lr=3e-4, batch_size=64)
@tracker.on_checkpoint
def save(tag):
torch.save(model.state_dict(), f"checkpoints/{tag}.pt")
@tracker.on_rollback
def rollback(tag):
model.load_state_dict(torch.load(f"checkpoints/{tag}.pt"))
return True
for step in range(100000):
loss = train_step()
tracker.log(step=step, loss=loss, entropy=ent, grad_norm=gnorm)
# Process agent commands (checkpoint, rollback, pause/resume)
tracker.poll()
# Pick up live param adjustments
new_lr = tracker.get_override("lr")
if new_lr is not None:
optimizer.lr = new_lr
连接代理
{
"mcpServers": {
"cortex": {
"command": "cortex"
}
}
}
MCP工具
观察
| 工具 | 说明 |
|---|---|
get_status |
步数、进度百分比、预计到达时间、步数/秒、阶段 |
get_metrics |
所有跟踪指标的最新值 |
get_metric_history |
趋势分析的时间序列 |
get_config |
超参数配置 |
list_metrics |
正在跟踪的所有指标名称 |
检测
| 工具 | 说明 |
|---|---|
diagnose |
运行所有异常检测器,获得具有严重性和建议的结构化发现 |
干预
| 工具 | 说明 |
|---|---|
adjust_param |
更改超参数(受保护:最大变化百分比,冷却时间,需要检查点) |
save_checkpoint |
保存模型状态以供以后回滚 |
rollback |
将模型还原到检查点 |
pause_training |
暂停循环以进行分析和决定 |
resume_training |
暂停后继续 |
审查
| 工具 | 说明 |
|---|---|
get_intervention_log |
每个变化的完整历史记录,包括之前/之后的指标 |
get_guardrail_status |
速率限制、冷却、干预计数 |
探测器
产生结构化发现的内置异常检测器:
| 探测器 | 它捕捉到了什么 |
|---|---|
entropy_collapse |
策略承诺过早(熵快速下降而没有改善) |
loss_divergence |
NaN/inf损失,或损失迅速增加 |
loss_imbalance |
价值损失淹没保单损失信号 |
grad_instability |
发散前的梯度范数峰值 |
eval_plateau |
Eval评分停止提高 |
learning_stall |
损失停止下降 |
每个发现都包括严重性、解释、具体的度量值和建议的行动。
护栏
每次干预在执行前都经过验证:
- 最大变化百分比:不能一次更改参数超过50%(可配置)
- 冷却:对同一参数进行调整之间的最小间隔为30秒
- 速率限制:每小时最多20次干预
- 需要检查点:在进行任何调整之前,必须保存检查点
- 完整日志记录:每次干预都记录了之前/之后的指标和原因
安装
pip install cortex-mcp
或来源:
pip install -e .