Temos o prazer de anunciar os primeiros lançamentos de hfhub e tok agora estão no CRAN. hfhub é uma interface R para Abraçando o rosto Hubpermitindo que os usuários baixem e armazenem em cache arquivos do Hugging Face Hub enquanto o tok implementa as ligações R para o Tokenizadores de rostos abraçados
biblioteca.
Abraçando o Rosto tornou-se rapidamente o plataforma para criar, compartilhar e colaborar em aplicativos de aprendizado profundo e esperamos que essas integrações ajudem os usuários do R a começar a usar as ferramentas do Hugging Face, bem como a criar novos aplicativos.
Também anunciamos anteriormente o tensores de segurança
pacote que permite ler e escrever arquivos no formato safetensors.
hfhub
hfhub é uma interface R para o Hugging Face Hub. O hfhub atualmente implementa uma única funcionalidade: baixar arquivos dos repositórios do Hub. Os repositórios do Mannequin Hub são usados principalmente para armazenar pesos de modelos pré-treinados junto com quaisquer outros metadados necessários para carregar o modelo, como as configurações de hiperparâmetros e o vocabulário do tokenizador.
Os arquivos baixados são armazenados usando o mesmo structure da biblioteca Python, portanto, os arquivos em cache podem ser compartilhados entre as implementações R e Python, para alternar entre as linguagens de forma mais fácil e rápida.
Já usamos o hfhub no mini-hub pacote e no Postagem do weblog ‘GPT-2 do zero com tocha’ para baixar pesos pré-treinados do Hugging Face Hub.
Você pode usar hub_download()
para baixar qualquer arquivo de um repositório do Hugging Face Hub especificando o id do repositório e o caminho para o arquivo que você quer baixar. Se o arquivo já estiver no cache, então a função retorna o caminho do arquivo imediatamente, caso contrário o arquivo é baixado, armazenado em cache e então o caminho de acesso é retornado.
<- hfhub::hub_download("gpt2", "mannequin.safetensors")
path
path#> /Customers/dfalbel/.cache/huggingface/hub/models--gpt2/snapshots/11c5a3d5811f50298f278a704980280950aedb10/mannequin.safetensors
tok
Os tokenizadores são responsáveis por converter texto bruto na sequência de inteiros que é frequentemente usada como entrada para modelos de PNL, tornando-os um componente crítico dos pipelines de PNL. Se você quiser uma visão geral de alto nível dos pipelines de PNL, talvez queira ler nosso artigo anterior postagem do weblog ‘O que são Massive Language Fashions? O que eles não são?’.
Ao usar um modelo pré-treinado (tanto para inferência quanto para ajuste fino), é muito importante que você use exatamente o mesmo processo de tokenização que foi usado durante o treinamento, e a equipe do Hugging Face fez um trabalho incrível garantindo que seus algoritmos correspondessem às estratégias de tokenização usadas na maioria dos LLMs.
tok fornece ligações R para a biblioteca de tokenizadores 🤗. A biblioteca de tokenizadores é implementada em Rust para desempenho e nossas ligações usam o projeto extendr
para ajudar na interface com R. Usando tok, podemos tokenizar texto exatamente da mesma forma que a maioria dos modelos de PNL, facilitando o carregamento de modelos pré-treinados em R, bem como o compartilhamento de nossos modelos com a comunidade de PNL mais ampla.
tok pode ser instalado a partir do CRAN, e atualmente seu uso é restrito ao carregamento de vocabulários de tokenizadores a partir de arquivos. Por exemplo, você pode carregar o tokenizador para o modelo GPT2 com:
<- tok::tokenizer$from_pretrained("gpt2")
tokenizer <- tokenizer$encode("Whats up world! You should use tokenizers from R")$ids
ids
ids#> (1) 15496 995 0 921 460 779 11241 11341 422 371
$decode(ids)
tokenizer#> (1) "Whats up world! You should use tokenizers from R"
Espaços
Lembre-se que você já pode hospedar
Shiny (para R e Python) em Hugging Face Areas. Como exemplo, construímos um aplicativo Shiny que usa:
- tocha para implementar GPT-NeoX (a arquitetura de rede neural de EstávelLM – o modelo usado para bate-papo)
- hfhub para baixar e armazenar em cache pesos pré-treinados do Repositório StableLM
- tok para tokenizar e pré-processar texto como entrada para o modelo torch. O tok também usa o hfhub para baixar o vocabulário do tokenizador.
O aplicativo está hospedado neste Espaço. Atualmente, ele é executado na CPU, mas você pode facilmente alternar a imagem do Docker se quiser executá-lo em uma GPU para uma inferência mais rápida.
O código-fonte do aplicativo também é de código aberto e pode ser encontrado nos Espaços guia de arquivo.
Esperando ansiosamente
Estamos nos primórdios do hfhub e do tok e ainda há muito trabalho a ser feito e funcionalidade a ser implementada. Esperamos obter ajuda da comunidade para priorizar o trabalho, portanto, se houver um recurso que esteja faltando, abra um problema no
Repositórios GitHub.
Reutilizar
Texto e figuras são licenciados sob Inventive 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, July 12). Posit AI Weblog: Hugging Face Integrations. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2023-07-12-hugging-face-integrations/
Citação BibTeX
@misc{hugging-face-integrations, creator = {Falbel, Daniel}, title = {Posit AI Weblog: Hugging Face Integrations}, url = {https://blogs.rstudio.com/tensorflow/posts/2023-07-12-hugging-face-integrations/}, 12 months = {2023} }