
公司
这事的坑在于:运维担心买到了劣质机器。系统怀疑调度框架存在问题。算法怀疑模型出问题了;谁也没想到是内部的人在作怪。大模型训练受多种因素影响,问题层出不穷:loss不降、性能低下、设备故障频发,甚至出现大模型幻觉。这些情况司空见惯。之前在推特上看到硅谷LLM创业者的经验分享,以及Meta失败的大模型案例,同样面临这些问题。要干扰训练进程,其实方法数不胜数。很多人都在讨论权限管理问题,但当下存在一个隐患:开源平台 Hugging Face 的 load_ckpt 接口。此接口用于加载模型的 checkpoint,在反序列化过程中调用了 pickle.load()。由于 pickle 模块在反序列化时会执行数据中的任意代码,因此如果有人在 checkpoint 文件中嵌入恶意代码,就可能在训练或推理阶段植入病毒,从而对系统安全造成威胁。这一漏洞亟需引起重视并加以解决。如果真是如此,那就没辙了。模型检查点不属于代码,不会提交到仓库,仅凭代码审查也看不出问题。这个接口很常见,大家都这么用。唯一可能留下的痕迹只有操作记录,这或许也是迟迟未被发现的原因。随机sleep可能引发通信超时的假象,而我们最头疼的是排查nccl报错。一方面,报错信息往往不够明确;另一方面,硬件故障或软件问题等非通信因素也会引发类似错误,这大大增加了问题定位的复杂性。更别说内鬼潜伏在debug群,别人查到什么他就改什么。程序员都懂,debug最怕无法复现,尤其是这种观测与不观测时表现完全不同的bug,实在棘手。你观察时正常,不观察时就出状况。这简直就是薛定谔的Bug,足以摧毁一名程序员的信念。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号