专栏名称: 芋道源码
纯 Java 源码分享公众号,目前有「Dubbo」「SpringCloud」「Java 并发」「RocketMQ」「Sharding-JDBC」「MyCAT」「Elastic-Job」「SkyWalking」「Spring」等等
目录
相关文章推荐
芋道源码  ·  实战|记一次MySQL亿级数据的平滑迁移 ·  23 小时前  
芋道源码  ·  MyBatis-Plus 还手写 Join ... ·  23 小时前  
芋道源码  ·  某节大瓜,GPU集群投毒! ·  昨天  
芋道源码  ·  SpringBoot + ... ·  5 天前  
芋道源码  ·  GitHub 账号被盗了 ·  6 天前  
51好读  ›  专栏  ›  芋道源码

某节大瓜,GPU集群投毒!

芋道源码  · 公众号  · Java  · 2024-10-19 17:12

正文

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

前些日子,宇宙厂爆出了个惊天大瓜。

自回归团队某实习生,被公司直接送进号子,喜提银手镯一副。原因是实习生对商业化整个GPU集群里恶意注入病毒。最终导致,8000 多张 H100 的 GPU 集群,一个多月的训练结果,全是错的...

这事儿在朋友圈已经停不下来了,内容实在太炸裂了!具体什么程度?技术总监亲自给副总裁汇报的程度!!

网传,事情的起因大致是,leader 把调度给了 dit 生图团队,冷落了自回归团队。实习生作为北大毕业的高材生,可能心生怨气,于是选择了恶意报复。最后直接给公司整了波大的,当然,也把自己的前程断送了。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

据传,此人的“投毒”操作主要是利用了 Huggingface 的load ckpt函数漏洞。

load ckpt是用于加载模型的保存状态的函数。具体的问题,是TFPreTrainedModel()类的load_repo_checkpoint()函数在反序列化未受信任的数据时使用了pickle.load(),而 pickle 模块在反序列化时会执行数据中的任意代码。

攻击者可以通过构造一个恶意的序列化数据(如恶意的checkpoint文件),利用这个存在漏洞的函数的反序列化机制来执行任意代码。这直接导致,任何使用这个函数的人,在正常的训练或推理过程中只要加载了这个checkpoint,攻击者的恶意代码都会直接执行。

因此,存在的攻击方式包括修改或注入恶意代码,使得在模型加载时执行攻击者指定的操作,如篡改模型权重、修改训练参数或截取模型数据;以及通过操作文件路径,访问或修改其他用户的模型文件。

而此人使用的大概是第一种方法,注入代码,动态修改别人的optimer,修改参数梯度的方向,以及在各种地方随机sleep一小段时间。众所周知,深度学习中的训练过程依赖于梯度下降来更新模型参数,从而不断优化损失。修改梯度方向意味着攻击者对模型的反向传播过程中计算出的梯度进行了篡改,导致模型更新时,一直朝错误的方向优化。而sleep操作通常不太可能引发程序崩溃或报错,但会明显降低模型训练的速度。

这两个操作只能用惊为天人来形容了。一方面,疯狂的sleep导致训练集群的利用率只有50%,另一方面,连参数梯度的方向都被更改了,别人训出来的模型,可全都是错的啊!他还加了个条件,只有256卡以上的任务才会触发这个条件,不斩无名之辈!

除此之外,他还修改了一个公用的 HuggingFace 的ckpts目录,只要别人用这里的pretrain模型,就会直接gf(go fail),相当于直接挂了。不过也有网友说到,他可能修改了自己的pretrained model,而这个model parameters是用ckpt文件保存的,其他人在训练的时候会load他的模型参数(也就是注入恶意代码的ckpt文件),所以会导致训练一直出问题也不容易发现。

最狠的是,这哥们直接潜伏在debug群里,只要同事们查到啥,他就改啥,实现最极致的攻防。最后是查了一个多月,恢复了一些被删除的文件,才查到代码注入。

经过粗略计算,只是单纯的集群成本,造成的损失就是八位数级别的。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

不过后续,当事人又进行了辟谣:

这件事,确有发生,但到底是谁做的,就不得而知了,大概率也等不到官方通告。

那么,对于这个事件,你怎么看?


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)