解決方案
開放的模型分享讓 PyTorch pickle 檢查點成為散布信任的管道。Pickle 雖然方便,但 Hugging Face 的安全文件說明,反序列化 pickle 可能執行程式碼,包括 eval 或 exec 等危險的內建函式。
SafeTensors 的答案是縮小格式範圍。它安全地儲存張量,透過零拷貝存取維持快速載入,並允許部分載入,因此大型模型分片不必一次全部反序列化。其巧妙之處在於減法:模型權重只成為資料。
在 2023 年 Trail of Bits 稽核之後,Hugging Face、EleutherAI 與 Stability AI 著手讓 SafeTensors 成為預設的模型儲存格式。文件列出廣泛的專案支援,而 Hugging Face 的序列化 API 如今基於安全理由建議採用安全序列化。
達成了什麼
權重永遠不應被執行
為何奏效
它移除了任意程式碼執行,而非試圖將惡意 pickle 匯入列入黑名單。
零拷貝與延遲載入讓安全變得比以往更快,而非更慢。
極小的格式表面讓外部稽核得以實際進行。
Hub 轉換工作流程讓既有模型得以遷移,無須等待每位作者學會新工具。
可借鏡之處
當檔案在網際網路規模下分享時,移除整個攻擊類別勝過試圖檢查每一個危險檔案。
後續發展
隨著開放模型成長,SafeTensors 在 AI 工具鏈中普及。Hugging Face 文件列出 Transformers、Diffusers、llama.cpp、ComfyUI 及其他專案的採用,而 2023 年的稽核文章表示 Transformers 將朝向預設以 SafeTensors 儲存模型。
追溯依據
參考來源
- Pickle Scanning Hugging Face · huggingface.co
- Audit shows that safetensors is safe and ready to become the default Hugging Face · huggingface.co ·
- Safetensors Hugging Face · huggingface.co