前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【AI大模型】Transformers大模型库(十六):safetensors存储类型

【AI大模型】Transformers大模型库(十六):safetensors存储类型

作者头像
LDG_AGI
发布2024-08-13 16:21:01
3610
发布2024-08-13 16:21:01
举报
文章被收录于专栏:人工智能极简应用

一、引言

这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。

🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。 🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。 🤗 Transformers 支持三个最热门的深度学习库: Jax, PyTorch 以及 TensorFlow — 并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载和推理。

本文重点介绍safetensors库用法。

二、safetensors

2.1 概述

safetensors是一个库,旨在安全地存储和加载机器学习模型的权重,特别是针对PyTorch模型。它通过加密和验证模型数据来增强安全性,防止数据篡改。

2.2 使用方法

2.2.1 安装safetensors

首先,确保你安装了safetensors库。可以通过pip安装:

代码语言:javascript
复制
   pip install safetensors
2.2.2 保存模型权重

使用safetensors保存模型权重,而不是直接使用PyTorch的.save()方法。

代码语言:javascript
复制
   import torch
   from safetensors.torch import save_file

   # 假设model是你的模型实例
   model_state_dict = model.state_dict()
   # 保存模型到safetensors格式
   save_file(model_state_dict, "model.safetensors")

对应的pytorch保存模型的方法

代码语言:javascript
复制
# 保存模型状态字典
torch.save(model.state_dict(), 'model.pth')

# 加载模型状态字典
model = YourModelClass()  # 初始化模型实例
model.load_state_dict(torch.load('model.pth'))  # 加载权重
model.eval()  # 如果是预训练模型,通常设置为评估模式
2.2.3 加载模型权重

加载时,同样使用safetensors的专用函数。

代码语言:javascript
复制
   from safetensors.torch import load_file

   # 加载模型权重
   loaded_state_dict = load_file("model.safetensors")
   # 加载到模型中
   model.load_state_dict(loaded_state_dict)

使用safetensors时,模型的加载和保存方式与直接使用PyTorch的.pt.pth文件不同,它提供了额外的安全特性,特别是在模型的分发和共享方面

三、总结

本篇内容展示了如何使用safetensors库,主要功能旨在安全地存储和加载机器学习模型的权重,特别是针对PyTorch模型。它通过加密和验证模型数据来增强安全性,防止数据篡改。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、引言
  • 二、safetensors库
    • 2.1 概述
      • 2.2 使用方法
        • 2.2.1 安装safetensors
        • 2.2.2 保存模型权重
        • 2.2.3 加载模型权重
    • 三、总结
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档