什麼是 SafeTensors 檔案?
以 .safetensors 結尾的檔案使用一種簡單的模型序列化格式儲存張量及後設資料,旨在避免基於 pickle 的權重檔案所帶來的任意程式碼執行風險。它是模型產出物,而不是模型可信、緊湊或永遠可復原的保證。
格式包含什麼
SafeTensors 格式儲存一個描述張量、型別、形狀和位元組偏移的標頭,隨後是張量資料本身。特定框架庫可以載入權重,而無需讓 Python pickle 載入器在反序列化過程中執行序列化程式碼。
SafeTensors 檔案可以是基礎模型、LoRA 適配器、大型模型的元件,或多檔案模型中的一個分片。僅憑副檔名無法判斷哪個執行環境需要它、LoRA 需要哪個基礎模型,或該檔案是否是專案的完整產出物集。
“安全”意味著什麼,又不意味著什麼
格式安全不等於來源可信。與基於 pickle 的序列化相比,SafeTensors 減少了一類載入風險;它不會證明模型權重適合你的任務、來自可靠釋出者、符合創作者授權或在應用程式中表現安全。
使用兩項檢查,而不是一項。下載或保留模型前先考慮來源和授權,再使用執行環境文件指定的格式和載入器。副檔名是有用上下文,但絕不是完整安全審查。
SafeTensors 不是封存或量化
SafeTensors 是模型權重的表示形式。封存是針對已有檔案的保留與復原工作流程。量化是為了適配執行環境或資源目標而有意改變模型數值表示。這些操作可以出現在同一專案中,但解決不同問題。
如果需要復原原始位元組,不要把轉換檔案當作唯一副本。如果需要較小的、經過改變的執行環境表示,請根據量化本身的規則進行評估。有關實際區別,請閱讀SafeTensors 儲存與量化。
如何讓它在模型庫中保持易於理解
- 在你控制的名稱或清單中保持基礎模型、適配器和專案上下文之間的關聯。
- 不要假定單個 .safetensors 檔案就是自含式模型。
- 使用目標執行環境的文件確定如何載入該產出物。
- 當一個已完成的相關系列很重要時,請在適當位置保留獨立備份,並在清理前證明可以單獨還原。
下一個有用問題
如果正在選擇本機推理容器,請根據執行環境和復原目標比較SafeTensors 與 GGUF。如果面對整塊磁碟,下一個問題通常不是“我能開啟這個檔案嗎?”,而是“哪些內容應該一起保留?”請從一個基礎模型和多個適配器開始,或使用模型庫保留清單。
來源
- Hugging Face SafeTensors 文件 — 格式概覽和模型權重載入。
- Hugging Face SafeTensors 後設資料解析指南 — 標頭欄位,以及無需取得完整張量載荷即可檢查的內容。