优化数据传输和预处理工作流 | AI生成和翻译
以下是对这个序列中发生事情的分解:
1. 问题
您有一个 VPS 和一个 GPU droplet(可能是配备 H200 GPU 的云服务器)。
最初,通过 external (public) network 在它们之间传输 61 GB 数据 将花费 ~5 小时(可能是由于带宽有限或延迟高)。
2. 设置内部网络通信
两个服务器都在同一个 internal network(私有 IP:
- VPS 在
10.100.0.2 - GPU droplet 在
10.100.3
您验证了它们可以通过内部网络通信,延迟非常低(1.56 ms),比通过互联网快得多。
SSH Key Setup
您从 VPS → GPU droplet 设置了 SSH key authentication,这样传输就不需要密码。
一个小问题:密钥连接时没有换行,导致认证失败;您修复了它。
3. 内部网络传输速度
一旦内部网络路径准备好,您直接传输了 61 GB 数据集:
- 速度峰值 ~450 MB/s
- 总传输时间:~5 分钟
(对比外部网络的 5 小时)
这种巨大的加速来自于:
- Private network — 无互联网路由瓶颈
- 高内部带宽(可能 10 Gbps 或更高)
- 节点之间 低延迟
4. GPU Droplet 上的数据准备
传输后,您在 GPU droplet(H200 机器)上开始 data preprocessing。
您运行了 12 个并行 workers,每个使用 ~93% CPU — 意味着在预处理期间任务是 CPU 绑定的,还未到 GPU 绑定。
处理速度
- ~40 million tokens 每秒
- 每个 shard(可能是数据集的一个块)处理时间 ~2 秒
- 总 shards:~610
- ~1 分钟后:42 个 shards 完成(7.9 GB 输出) → ~7% 完成
- ETA:~14–20 分钟 完成预处理
5. 为什么重要
这个工作流程展示了 常见的 ML data pipeline 优化:
- 内部传输数据 — 不在公共互联网上 — 以避免慢速。
- 使用高性能存储和计算(H200 + 多个 CPU 核心)快速预处理。
- 并行化 tokenization/shuffling/writing 以最大化吞吐量。
结果:
从 VPS 上的原始数据 → 在 GPU 服务器上准备好的预处理数据集,总共 不到 30 分钟,而朴素方法仅传输就需要几小时。
如果您想了解内部网络设置、并行预处理逻辑或如何监控此类管道的更深入解释,请告诉我。