详细内容或原文请订阅后点击阅览
safetensors 0.1.0
宣布推出 safetensors,这是一个新的 R 包,允许以 safetensors 格式读取和写入文件。
来源:RStudio AI博客safetensors 是一种用于存储张量的新型、简单、快速且安全的文件格式。该文件格式的设计及其原始实现由 Hugging Face 主导,并在其流行的“transformers”框架中得到广泛采用。 safetensors R 包是纯 R 实现,允许读取和写入 safetensor 文件。
文件格式 广泛采用safetensors 的初始版本 (0.1.0) 现在在 CRAN 上。
动机
Python 社区使用 safetensors 的主要动机是安全性。如官方文档中所述:
官方文档这个 crate 的主要理由是消除在 PyTorch 上使用默认使用的 pickle 的需要。
此 crate 的主要原理是消除在 PyTorch 上使用 pickle 的需要,默认情况下会使用 pickle。
Pickle 被认为是一种不安全的格式,因为加载 Pickle 文件的操作可能会触发任意代码的执行。这从来都不是 torchfor R 用户的担忧,因为 LibTorch 中包含的 Pickle 解析器仅支持 Pickle 格式的子集,其中不包括执行代码。
但是,与其他常用格式相比,该文件格式还有其他优势,包括:
- 支持延迟加载:您可以选择读取文件中存储的张量的子集。零拷贝:读取文件所需的内存不会超过文件本身。(从技术上讲,当前的 R 实现确实会进行一次复制,但如果我们真的需要它,可以对其进行优化)。简单:实现文件格式很简单,不需要复杂的依赖关系。这意味着它是在 ML 框架之间和不同编程语言之间交换张量的良好格式。例如,您可以在 R 中编写一个安全的张量文件并在 Python 中加载它,反之亦然。
支持延迟加载:您可以选择读取文件中存储的张量的子集。
此处