可以。这个 DSec 值得**认真啃一遍**,因为它表面上是“Sandbox 基础设施”,但真正重要的是:**DeepSeek 已经把 Agentic RL 的执行环境,从一个训练脚本里的附属组件,做成了一个独立的、可弹性调度的分布式计算系统。**
我已经把你给的知乎文章作为入口,并进一步对照了 DSec 原始论文 arXiv:2609.22978 的 31 页正文、架构、机制和实验部分。知乎原文目前无法稳定抓取,所以后续我会以论文原文为主,辅以相关资料;论文明确给出的生产规模是:约 **160 个 CPU 节点、30K cores、250 TB DRAM、380K+ 并发 sandbox、5000+ sandbox/s、约 300 万 sandbox/day**。([arXiv][1])
我建议我们不要一次把 31 页“讲完”。我会把它变成一套 **DSEC Master Guide**,每一层你真正搞懂以后,再往下一层。
---
# 先给你一张地图
如果只记住一张图,我希望你脑子里是这个:
但是这张图还**不够深**。
真正理解 DSec,要同时理解下面 **6 个问题**:
其中我认为 **④⑤⑥才是 DSec 的灵魂**。
---
# 第一课:先彻底理解 DSec 到底解决什么问题
先不要看 Rust、Firecracker、EROFS、OverlayFS。
我们先站在一个训练 DeepSeek Agent 的研究员角度。
假设你训练一个 Coding Agent。
任务:
> 修复 GitHub repository
Agent 不是直接输出答案。
而是:
这就是 Agentic RL。
论文把它概括成:
> rollout → reward → policy update
即:
论文明确指出,Agentic RL 的 rollout 和 evaluation 对 sandbox 平台压力最大,因为它们是**大规模并发、状态保持、和训练循环紧密耦合**的。([arXiv][1])
---
# 第二课:为什么普通 Docker 不够?
这里是理解 DSec 最关键的转折。
假设一次 RL batch:
那么:
论文说,最大的 production job 可以一次请求 **32K sandbox**。([arXiv][1])
如果普通 Docker:
问题来了。
---
## 问题一:创建是“爆发式”的
不是:
而是:
所以:
我已经把你给的知乎文章作为入口,并进一步对照了 DSec 原始论文 arXiv:2609.22978 的 31 页正文、架构、机制和实验部分。知乎原文目前无法稳定抓取,所以后续我会以论文原文为主,辅以相关资料;论文明确给出的生产规模是:约 **160 个 CPU 节点、30K cores、250 TB DRAM、380K+ 并发 sandbox、5000+ sandbox/s、约 300 万 sandbox/day**。([arXiv][1])
我建议我们不要一次把 31 页“讲完”。我会把它变成一套 **DSEC Master Guide**,每一层你真正搞懂以后,再往下一层。
---
# 先给你一张地图
如果只记住一张图,我希望你脑子里是这个:
Agentic RL
│
▼
┌──────────────────┐
│ RL Framework │
│ Policy / Reward │
└────────┬─────────┘
│
rollout request
│
▼
┌──────────────────┐
│ DSec │
│ Elastic Compute │
└────────┬─────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
Placement Lifecycle Security
│ │ │
▼ ▼ ▼
Edge Aether eBPF
│ │ AppArmor
▼ ▼
┌───────────────────────────────┐
│ Sandbox Runtime │
├────────┬────────┬─────────────┤
│ FnCall │Container│ MicroVM │VM │
└────────┴────────┴─────────────┘
│
▼
┌──────────────┐
│ Image/Data │
│ 3FS │
└──────────────┘
但是这张图还**不够深**。
真正理解 DSec,要同时理解下面 **6 个问题**:
① 为什么 Agent RL 必须要 Sandbox?
② 为什么普通 Kubernetes / Docker 不够?
③ DSec 怎么做到几十万 Sandbox?
④ 一个 Sandbox 到底是怎么被创建出来的?
⑤ 为什么 EROFS + 3FS 是 DSec 最关键的技术之一?
⑥ RL 被抢占的时候,Sandbox 为什么还能继续?
其中我认为 **④⑤⑥才是 DSec 的灵魂**。
---
# 第一课:先彻底理解 DSec 到底解决什么问题
先不要看 Rust、Firecracker、EROFS、OverlayFS。
我们先站在一个训练 DeepSeek Agent 的研究员角度。
假设你训练一个 Coding Agent。
任务:
> 修复 GitHub repository
repo-A 中的一个 bug。Agent 不是直接输出答案。
而是:
LLM
│
│ "我要查看 README"
▼
Sandbox
│
└── cat README.md
│
▼
stdout
│
▼
LLM
│
│ "我要 grep error"
▼
Sandbox
│
└── grep -R "error" .
│
▼
LLM
│
│ "我要修改 foo.py"
▼
Sandbox
│
└── edit foo.py
│
▼
LLM
│
│ "运行测试"
▼
Sandbox
│
└── pytest
│
▼
reward = 1
这就是 Agentic RL。
论文把它概括成:
> rollout → reward → policy update
即:
┌──────────────┐
│ Current LLM │
└──────┬───────┘
│
generate action
│
▼
┌─────────────────┐
│ Sandbox │
│ │
│ repo │
│ files │
│ dependencies │
│ processes │
│ services │
└────────┬────────┘
│
result
│
▼
next LLM action
│
...
│
▼
trajectory
│
▼
reward
│
▼
policy update
论文明确指出,Agentic RL 的 rollout 和 evaluation 对 sandbox 平台压力最大,因为它们是**大规模并发、状态保持、和训练循环紧密耦合**的。([arXiv][1])
---
# 第二课:为什么普通 Docker 不够?
这里是理解 DSec 最关键的转折。
假设一次 RL batch:
32,000 个 task
那么:
task 1 → sandbox 1
task 2 → sandbox 2
task 3 → sandbox 3
...
task 32000 → sandbox 32000
论文说,最大的 production job 可以一次请求 **32K sandbox**。([arXiv][1])
如果普通 Docker:
docker run image-A
docker run image-B
docker run image-C
...
问题来了。
---
## 问题一:创建是“爆发式”的
不是:
1
1
1
1
1
而是:
████████████████████████████████ 32K
所以: