Weblog Posit AI: safetensors 0.1.0


safetensors é um novo, simples, rápido e seguro formato de arquivo para armazenar tensores. O design do formato de arquivo e sua implementação unique estão sendo liderados pela Hugging Face, e está ficando amplamente adotado em seu widespread framework ‘transformers’. O pacote R safetensors é uma implementação R pura, permitindo ler e escrever arquivos safetensor.

A versão inicial (0.1.0) do safetensors agora está no CRAN.

Motivação

A principal motivação para os safetensors na comunidade Python é a segurança. Conforme observado no documentação oficial:

A principal justificativa para essa caixa é eliminar a necessidade de usar pickle no PyTorch, que é usado por padrão.

Pickle é considerado um formato inseguro, pois a ação de carregar um arquivo Pickle pode disparar a execução de código arbitrário. Isso nunca foi uma preocupação para usuários do torch para R, já que o analisador Pickle que está incluído no LibTorch suporta apenas um subconjunto do formato Pickle, que não inclui a execução de código.

No entanto, o formato de arquivo tem vantagens adicionais sobre outros formatos comumente usados, incluindo:

  • Suporte para carregamento lento: você pode escolher ler um subconjunto dos tensores armazenados no arquivo.

  • Cópia zero: a leitura do arquivo não requer mais memória do que o próprio arquivo. (Tecnicamente, a implementação atual do R faz uma única cópia, mas isso pode ser otimizado se realmente precisarmos em algum momento).

  • Simples: Implementar o formato de arquivo é simples e não requer dependências complexas. Isso significa que é um bom formato para trocar tensores entre frameworks de ML e entre diferentes linguagens de programação. Por exemplo, você pode escrever um arquivo safetensors em R e carregá-lo em Python, e vice-versa.

Existem vantagens adicionais em comparação com outros formatos de arquivo comuns neste espaço, e você pode ver uma tabela de comparação aqui.

Formatar

O formato safetensors é descrito na figura abaixo. É basicamente um arquivo de cabeçalho contendo alguns metadados, seguidos por buffers tensor brutos.

Weblog Posit AI: safetensors 0.1.0

Uso básico

Os tensores de segurança podem ser instalados pelo CRAN usando:

Nick Fewings sobre Desaparecer

Reutilizar

Texto e figuras são licenciados sob Artistic Commons Attribution CC BY 4.0. As figuras que foram reutilizadas de outras fontes não se enquadram nesta licença e podem ser reconhecidas por uma nota na legenda: “Figura de …”.

Citação

Para atribuição, cite este trabalho como

Falbel (2023, June 15). Posit AI Weblog: safetensors 0.1.0. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2023-06-15-safetensors/

Citação BibTeX

@misc{safetensors,
  writer = {Falbel, Daniel},
  title = {Posit AI Weblog: safetensors 0.1.0},
  url = {https://blogs.rstudio.com/tensorflow/posts/2023-06-15-safetensors/},
  yr = {2023}
}

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *