AI 圈裏面拿融資的邏輯真的太奇怪了。。
24 年字節那個訓練投毒的當事人田柯宇,
現在在創業做世界模型,還拿到大結果了
不久前團隊剛拿到了三千萬美元的投資。
字節辭退起訴、一審判賠 50 萬的實習生,
現在搖身一變,
成了頂尖論文作者和明星 Founder誇髒哦
![]()
我願稱之爲真人版夜神月。
前幾天他上了elsewhere的播客。
主持人問他,這件事是偶然還是必然。
他想了一會兒,把當時的行爲叫做
「樸素的正義」。
原話是
就像走在大街上遇到什麼事情,
我可能會有比較衝動的方式去做。
《死亡筆記》中夜神月也是在撿到筆記本第一天起,
就沒覺得自己在犯罪。
![]()
也是在同一天,
五位當年同組的受害者實名發了一份材料。
兩份材料看下來,基本事實是相同的,但也有一些地方有出入
下面我講的,是受害者那邊記下來的版本。

先說他是個什麼樣的人
田柯宇 2021 年進字節實習,
在這之前他已經在商湯待了三年,還是商湯當時年紀最小的實習生。
他本科學材料的,後來轉去軟件工程,
轉系之前就把核心課自學完了。
大二大三那會兒,
他就在 NeurIPS 上發過兩篇一作。
2024 年,他又拿到了 NeurIPS 最佳論文。
NeurlIPS是人工智能和機器學習領域規模最大、
影響力最高的國際頂級學術會議之一
與ICML、ICLR並稱機器學習領域三大頂會
純純科研巨佬啊
![]()
4 月,字節啓動視頻生成項目 Goku,他跟着進了反饋羣。
此後五個月,他一邊參加故障排查會議,
一邊對集羣下手,前後共改了八個地方。
導致團隊越查越糊塗。
工程師定位到某臺機器,重啓想復現,結果程序又好了。
北京、上海、西雅圖三地團隊輪班值守,
24 小時盯着訓練進程,每天早晚開會交接。
給當時同組的人心態都搞崩了,有人甚至懷疑這些排查到底還有沒有意義。
他們一直在找的技術原因,
其實,造成問題的人,就坐在排查現場。
夜神月人間體說是
在掌握信息不對等的前提下
他永遠快一步知道要查什麼
然後提前把現場收拾乾淨

後來調查有了進展
7 月 30 日早上,
有人在一次日常 debug時順手翻了源碼,
發現被修改的跡象
查機器記錄,除了 owner 只有田柯宇登過。
第二天,7 月 31 日,
另一名同事在他的個人目錄下翻出了那批代碼,發現不對勁
8 月安全部門介入問詢,隨後辭退。
2026 年,一審判賠 50 萬元,
受害者的材料中
把田柯宇的攻擊手段分成八類,
都有一個共同點,
就是把人爲破壞僞裝成隨機的軟件故障、
數值異常或基礎設施問題。

第一類,優化器
優化器AdamW,這段代碼訓練時負責更新模型參數的。
田在裏面塞了個開關,叫 maximize,
原版是 False,被他改成 True,於是每一步都往反方向走。
還有個更隱蔽的版本,寫在 adamw2.py 裏,只在部分機器上生效,
結果是訓練照常跑,反而更難收斂了

第二類,梯度裁剪
程序裏有一道保險叫梯度裁剪,
是計算一個係數(clip_coef)把梯度壓住,
太大的時候這個係數會小於 1,
把梯度按比例壓小
防止模型單步更新幅度太大。
他把這段代碼改成 clip_coef 永遠等於 2,也就是不管梯度猛不猛,每次都強行放大兩倍。

最陰的是,
函數對外返回的數值還是正常的
所以日誌看起來一切正常。
第三類,分佈式通信。
上千張卡一起訓練,機器之間靠兩個通信操作交換數據,
all_gather和reduce_scatter。
每次通信前,代碼都會檢查一遍當前進程在不在通信組裏。
他往這個檢查裏塞了個隨機數,
讓進程以 2⁻¹⁸ 到 2⁻²¹ 的概率返回不在,直接跳過這次數據交換。
概率低到一臺機器一千個進程,
跑一天也只踩中一兩次,
而且隨機種子還取自納秒時間和內存地址,壓根復現不了。

第四類,數據採樣。
每一輪訓練的讀取順序由一個 seed 決定,
原版寫的是 self.seed + self.epoch,
寫死的,所以每臺機器算出來都一樣。
他把這個 seed 換成了 time.time_ns(),
也就是當前時間的納秒數。
結果就是每臺機器讀到的數據都不一樣,
有的樣本被重複讀,有的樣本一次都沒讀到。
數據順序本該是確定的,改成時間之後每次都不一樣,

第五類,命令後門。
後門寫在 wait.py 裏。
會一直盯着共享盤上的一個目錄,一旦發現新文件,
就把裏面的文本當成 shell 命令執行,
再把結果寫回去。
相當於隨時可以給集羣下發命令。
還有個 kill.py,
負責把這個後門寫進 init.py,訓練一啓動就自動運行。
整個過程不碰外網,常規的網絡監控看不見,
而且命令通道藏在訓練賬戶日常掛載的盤上,還只在個別進程上運行。

第六類,定向殺進程。
kill.py 還有另一個用法。
它會檢查當前的實驗編號 TRIAL_ID 和機器編號 NODE_ID,
對上了就執行 pkill torchrun 和 pkill python,直接殺掉訓練進程。
少數進程退出,整個分佈式任務跟着卡死。

第七類,checkpoint 加載。
checkpoint 是訓練中途存下來的存檔,
是模型當前的參數,下次接着跑要從這裏讀
田加了一個 nonan 文件,
使其在系統讀取存檔時自動修改。
訓練崩過之後,存檔裏會混進一些非法數值(NaN和Inf)
正常讀取到這裏會直接報錯。
nonan 把這些數值悄悄替換成 0。
本該報錯的地方不報錯,
模型看着是讀取成功了,
但狀態其實已經被動過。

第八類,安裝方式。
前七類改的都是運行中的程序,第八類,直接用 sudo mv 替換系統裏已經裝好的 PyTorch 庫文件。
事後還用 os.utime 把文件的修改時間改回原樣,再用 chown 和 chmod 把屬主、權限位都還原。
排查時看時間戳也看不出來

整篇證據看下來,
和田柯宇在訪談中說的有些不符,
他是不認自己有做這些攻擊行爲的。
但單從他拿到年度最佳論文來說,
確實是位技術大佬,
所以他創業做的世界模型可能還是有點實力的。
字節成最大輸家了,讓田柯宇賠了 50 萬,
相當於是把他在字節三年實習賺的錢吐出來而已。
人搖身一變就成了明星創業者,
這個世界還是太顛了。
曉風乾丨 大四 Base北京 AI產品在職
想縮小科技帶來的信息差 分享很酷的AI玩法。
希望得到您的點贊轉發愛心三連支持,
如果有更多想法或者問題歡迎交流~
更多遊戲資訊請關註:電玩幫遊戲資訊專區
電玩幫圖文攻略 www.vgover.com
