技术指南
桌边还是集群:模型开发究竟应该在哪里进行
多数机构将开发工作放在集群上,只因为 GPU 在那里,随后又困惑于训练队列为何始终无法疏通。
多数机构将开发工作放在集群上运行,只因为加速卡在那里。随后训练队列始终无法疏通,而得出的结论往往是需要扩容集群。
队列里实际排的是什么
观察共享集群的时间去向,会发现其中很大一部分并非训练任务,而是有人在测试脚本能否运行、检查数据加载器、评估检查点,或调试一个在头三十秒就失败的问题。这些工作各自占用一个调度槽位,而训练任务只能排在其后。
这些工作都不需要八张加速卡与高带宽互联,只需要一张加速卡,以及足以容纳模型的显存。
桌边设备如何改变这笔账
一台拥有足够统一内存以承载较大模型、置于桌面并使用市电供电的设备,可以完全承接上述工作。开发、微调与评估不再争抢集群资源,集群则专注于真正只能由它完成的任务。
其经济性来自利用率,而非设备本身的价格。利用率 40% 的集群,其运行成本与 80% 的集群相差无几,因为闲置的加速卡依然耗电,场地开销也基本固定。将交互式工作移出集群,可提高集群时间中用于「别处无法运行的任务」的比例。
使这一方案成立的前提
两套环境必须完全一致,而非「基本一致」:相同的软件栈、相同的容器运行时、相同代次的驱动。「基本一致」正是时间被消耗掉的地方:本地运行正常,到集群上却失败或性能悄然下降,然后一整天都花在查明原因上。
这才是采购桌边设备前应当核实的规格,其重要性高于算力指标。一台需要独立工具链的设备,是额外的维护负担,而非大型系统的缩小版本。
界线划在哪里
开发、微调、评估,以及针对可放入本地内存的模型进行的推理,都应当在桌边完成;需要跨多张加速卡的训练,以及任何有交付期限的任务,则应当在集群上运行。真正的失误不是选错了一边,而是从未划出这条界线。