Safetensors は、高速、効率的、安全、使いやすい新しいディープラーニングツールです。

Safetensors は、高速、効率的、安全、使いやすい新しいディープラーニングツールです。

Safetensor とは何ですか?

【セーフテンソル】:https://huggingface.co/docs/safetensors/index

Hugging Face は、大規模で複雑なテンソルの保存と読み込みを簡素化および効率化することを目的とした、Safetensors と呼ばれる新しいシリアル化形式を開発しました。テンソルはディープラーニングで使用される主要なデータ構造であり、そのサイズが効率性の面で課題となる可能性があります。

Safetensors は、効率的なシリアル化と圧縮アルゴリズムの組み合わせを使用して大きなテンソルのサイズを縮小し、pickle などの他のシリアル化形式よりも高速かつ効率的になります。つまり、SafeTensors は、従来の PyTorch シリアル化形式 pytorch_model.bin および model.safetensors と比較して、CPU で 76.6 倍、GPU で 2 倍高速になります。速度の比較をご覧ください。

Safetensorsを使用する利点

使いやすさ

Safetensors には、Python でテンソルをシリアル化およびデシリアル化するためのシンプルで直感的な API があります。つまり、開発者はシリアル化とデシリアル化に時間を費やすのではなく、ディープラーニング モデルの構築に集中できるようになります。

クロスプラットフォームの互換性

Python でシリアル化し、C++、Java、JavaScript などのさまざまなプログラミング言語やプラットフォームを使用して結果のファイルを簡単に読み込むことができます。これにより、さまざまなプログラミング環境間でモデルをシームレスに共有できるようになります。

スピード

Safetensor は速度が最適化されており、大きなテンソルのシリアル化と逆シリアル化を効率的に処理できます。したがって、大規模な言語モデルを使用するアプリケーションに最適です。

サイズの最適化

効率的なシリアル化と圧縮アルゴリズムを組み合わせて大きなテンソルのサイズを縮小し、pickle などの他のシリアル化形式よりも高速で効率的なパフォーマンスを実現します。

安全性

シリアル化されたテンソルが保存中または転送中に破損するのを防ぐために、Safetensors はチェックサム メカニズムを使用します。これにより、セキュリティがさらに強化され、Safetensors に保存されているすべてのデータが正確で信頼できるものになります。さらに、DOS 攻撃を防ぐこともできます。

遅延読み込み

複数のノードまたは GPU を使用する分散環境で作業する場合は、各モデルにテンソルのサブセットのみをロードすると便利です。 BLOOM はこの形式を使用して、8 つの GPU にモデルをわずか 45 秒でロードしますが、通常の PyTorch の重み付けでは 10 分かかります。

Safetensors を使い始める

このセクションでは、safetensors API と、テンソル ファイルを保存および読み込む方法について説明します。

SafeTensors は pip マネージャーを使用してインストールできます。

 pip install safetensors

この記事では、Torch 共有テンソルの例を使用して、単純なニューラル ネットワークを構築し、PyTorch の safetensors.torch API を使用してモデルを保存します。

 from torch import nn class Model(nn.Module): def __init__(self): super().__init__() self.a = nn.Linear(100, 100) self.b = self.a def forward(self, x): return self.b(self.a(x)) model = Model() print(model.state_dict())

ご覧のとおり、モデルは正常に作成されました。

 OrderedDict([('a.weight', tensor([[-0.0913, 0.0470, -0.0209, ..., -0.0540, -0.0575, -0.0679], [ 0.0268, 0.0765, 0.0952, ..., -0.0616, 0.0146, -0.0343], [ 0.0216, 0.0444, -0.0347, ..., -0.0546, 0.0036, -0.0454], ...,

ここで、モデル オブジェクトとファイル名を指定してモデルを保存します。次に、保存したファイルを nn.Module を使用して作成されたモデル オブジェクトに読み込みます。

 from safetensors.torch import load_model, save_model save_model(model, "model.safetensors") load_model(model, "model.safetensors") print(model.state_dict())
 OrderedDict([('a.weight', tensor([[-0.0913, 0.0470, -0.0209, ..., -0.0540, -0.0575, -0.0679], [ 0.0268, 0.0765, 0.0952, ..., -0.0616, 0.0146, -0.0343], [ 0.0216, 0.0444, -0.0347, ..., -0.0546, 0.0036, -0.0454], ...,

この 2 番目の例では、torch.zeros を使用して作成されたテンソルを保存してみます。これを行うには、 save_file 関数を使用します。

 import torch from safetensors.torch import save_file, load_file tensors = { "weight1": torch.zeros((1024, 1024)), "weight2": torch.zeros((1024, 1024)) } save_file(tensors, "new_model.safetensors")

テンソルをロードするには、load_file 関数を使用します。

 load_file("new_model.safetensors")
 {'weight1': tensor([[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]]), 'weight2': tensor([[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]])}

Safetensors API は、Pytorch、Tensorflow、PaddlePaddle、Flax、Numpy で利用できます。 Safetensors のドキュメントを読むことで、これについて学ぶことができます。

Torch APIからの画像

結論は

つまり、Safetensors は、ディープラーニング アプリケーションで使用される大きなテンソルを保存する新しい方法です。他のテクノロジーと比較して、より高速で、より効率的で、ユーザーフレンドリーです。さらに、さまざまなプログラミング言語とプラットフォームをサポートしながら、データの機密性とセキュリティを確保します。 Safetensors を使用することで、機械学習エンジニアは時間を最適化し、より優れたモデルの開発に集中できます。

プロジェクトでは Safetensor を使用することを強くお勧めします。 Hugging Face、EleutherAI、StabilityAI などのトップ AI 企業の多くが、プロジェクトで Safetensor を使用しています。

参考文献

ドキュメント: セーフテンソル

ブログ: https://medium.com/@zergtant/what-is-safetensors-and-how-to-convert-ckpt-model-to-safetensors-13d36eb94d57

GitHub: https://github.com/huggingface/safetensors

<<:  精度が極めて低いです! OpenAIがAI検出器を削除、ICMLの傑出した論文が非難される

>>:  特大サイズのStable Diffusionが無料で付いてきます!文勝図の最強オープンモデル、プロンプトワードもシンプルに

ブログ    

推薦する

認知AIの台頭:2025年にAIは質的に飛躍する

[[441939]] AIの概念が初めて提唱されたのは1956年なので、60年以上の歴史があります。...

アルゴリズム エンジニアはなぜ一日中データを扱うのでしょうか。また、どのような種類のデータを扱うのでしょうか。

[[353273]]なぜ私たちはモデルをほとんど作らないのでしょうか?アルゴリズムエンジニアの仕事...

人工知能サイバーセキュリティの市場価値は2030年までに1018億ドルに達する

[[418355]]調査会社Research And Marketsの最新レポートによると、人工知能...

人工知能のおかげで、赤信号待ちは過去のものになるだろう

私たちは市内を運転中に、このようなことが何度も起こるのを見てきました。人々は前方の交通状況を気にせず...

第16回(2017年)中国政府ウェブサイトパフォーマンス評価結果発表および経験交流会議が北京で成功裏に開催されました。

2017年11月17日、中国情報産業発展センターの指導の下、中国ソフトウェア評価センターが主催し、...

教師なし機械学習は産業オートメーションにどのようなメリットをもたらすのでしょうか?

現代の産業環境にはセンサーやスマート コンポーネントが満載されており、それらすべてが組み合わさって大...

...

AI | 人工知能プロジェクトを成功させるための 8 つの重要な役割

企業が AI プロジェクトをさらに展開するにつれて、特定の役割がビジネスの成功に不可欠であることがわ...

製造業における人工知能の8つの応用シナリオ

スマート製造ブームの到来により、設計、生産、管理、サービスなど、製造業のあらゆる側面に人工知能アプリ...

...

科学春節祭、それはBステーションに違いない:志会君のロボットアームが広漢宮殿を建設し、アカデミー会員の下半身が直接消えた

Bilibiliが科学春節祭-スーパーサイエンス祭を開催すると聞きました。この興奮を味わうには、現地...

ドイツ反トラスト長官:AIは大企業の支配を強める可能性がある

ドイツ独占禁止局のアンドレアス・ムント局長は10月10日、人工知能によって大手テクノロジー企業の市場...

陳丹奇チームの新作:5%のコストでSOTAを達成、「アルパカの毛刈り」法が人気

わずか3% の計算労力と5% のコストで SOTA を達成し、1B-3B 規模の大規模オープンソース...

ドイツの中小企業の35%以上がすでに人工知能技術を活用

序文ドイツ連邦政府は2018年に「ドイツ人工知能開発戦略」を発表し、人工知能分野におけるドイツの研究...

IDCは、年平均成長率31.4%で、世界のAIソフトウェアの収益は2027年に2,790億ドルに達すると予測している。

11月2日、市場調査会社IDCが発表した最新の予測レポートによると、世界のAIソフトウェア市場規模...