训练跑了几小时才因显存耗尽崩溃,就像长途出发后才发现油箱漏了。torch-preflight想把检查提前:它是一款面向PyTorch训练代码的Linter——类似写作软件的语法检查,不真正运行程序,就寻找可能浪费昂贵GPU时间的错误。作者称,工具目前有13条规则,无需GPU,也不用安装PyTorch。
它检查的问题很具体。例如,把每一步的loss直接存入列表,可能连带保留autograd计算图——PyTorch为计算梯度记录的运算关系——最终让显存不断累积;训练循环漏掉zero_grad,也可能让本应清零的梯度持续叠加。它还会检查多GPU训练是否缺少DistributedSampler,避免不同GPU重复处理同一批数据。另一个功能会预估任务能否装进指定GPU的显存,并列出节省空间的修改建议。作者称预测峰值显存与实测相差不到4%,但这个结果只来自一张T4上的四个模型;项目仍在开发中,误报率和更广泛硬件上的准确性尚待验证。