开源项目 `safetensors` 使用教程
2026-01-16 10:11:55作者:咎竹峻Karen
项目介绍
safetensors 是一个新的、简单的格式,用于安全地存储张量(与 pickle 相反),同时保持快速(零拷贝)。这个项目由 Hugging Face 开发,旨在提供一个高效且安全的张量存储解决方案。safetensors 的主要特点包括:
- 安全性:避免使用
pickle,减少安全风险。 - 速度:实现零拷贝加载,提高性能。
- 兼容性:支持多种深度学习框架,如 PyTorch、TensorFlow 等。
项目快速启动
安装
首先,你需要安装 safetensors。你可以通过 pip 或 conda 进行安装:
pip install safetensors
或者使用 conda:
conda install -c huggingface safetensors
加载张量
以下是一个简单的示例,展示如何加载 safetensors 格式的张量:
from safetensors import safe_open
tensors = {}
with safe_open("model.safetensors", framework="pt", device=0) as f:
for k in f.keys():
tensors[k] = f.get_tensor(k)
保存张量
以下是一个示例,展示如何将张量保存为 safetensors 格式:
import torch
from safetensors.torch import save_file
tensors = {
"embedding": torch.zeros((2, 2)),
"attention": torch.zeros((2, 3))
}
save_file(tensors, "model.safetensors")
应用案例和最佳实践
案例一:在多 GPU 环境下加载部分张量
在多 GPU 环境下,你可能只需要加载部分张量。以下是一个示例:
from safetensors import safe_open
tensors = {}
with safe_open("model.safetensors", framework="pt", device=0) as f:
tensor_slice = f.get_slice("embedding")
vocab_size, hidden_dim = tensor_slice.get_shape()
tensor = tensor_slice[:vocab_size, :hidden_dim]
最佳实践
- 安全性:始终使用
safetensors格式来存储模型权重,避免使用pickle。 - 性能:利用
safetensors的零拷贝特性,提高模型加载速度。 - 兼容性:确保你的项目支持多种深度学习框架。
典型生态项目
safetensors 已经被多个领先的 AI 企业和项目采用,以下是一些典型的生态项目:
- Hugging Face Transformers:用于自然语言处理的库,广泛使用
safetensors格式。 - Stable Diffusion WebUI:用于图像生成的项目,采用
safetensors格式存储模型权重。 - ColossalAI:一个大规模深度学习库,支持
safetensors格式。
这些项目展示了 safetensors 在不同领域的应用和其强大的生态支持。
通过以上内容,你应该对 safetensors 项目有了全面的了解,并能够快速上手使用。希望这篇教程对你有所帮助!
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0280
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
JoyAI-VL-Interaction-Preview京东开源首个开源、视觉驱动的实时交互模型——它能实时监控视频流,并自主决定何时发言、保持沉默或委托任务。Jinja00
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0188
MaxKB强大易用的开源企业级智能体平台Python02
note-gen一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。TSX011
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Dockerfile
789
5.19 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
901
2.1 K
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
723
1.45 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
473
484
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.14 K
1.18 K
deepin linux kernel
C
32
16
Ascend Extension for PyTorch
Python
769
997
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.51 K
692
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
2.53 K
280
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Python
1.08 K
687