Nous sommes heureux d’annoncer les premières versions de hfhub et je t’aime sont maintenant sur CRAN. hfhub est une interface R pour Visage câlinpermettant aux utilisateurs de télécharger et de mettre en cache des fichiers depuis Hugging Face Hub tandis que tok implémente les liaisons R pour le Tokeniseurs de visage câlin
bibliothèque.
Visage câlin est rapidement devenu le plate-forme pour créer, partager et collaborer sur des applications d’apprentissage en profondeur et nous espérons que ces intégrations aideront les utilisateurs de R à commencer à utiliser les outils Hugging Face ainsi qu’à créer de nouvelles applications.
Nous avons également annoncé précédemment le tenseurs de sécurité
package permettant de lire et d’écrire des fichiers au format safetensors.
hfhub
hfhub est une interface R pour Hugging Face Hub. hfhub implémente actuellement une seule fonctionnalité : télécharger des fichiers à partir des référentiels Hub. Les référentiels Model Hub sont principalement utilisés pour stocker les poids de modèle pré-entraînés ainsi que toutes les autres métadonnées nécessaires au chargement du modèle, telles que les configurations d’hyperparamètres et le vocabulaire du tokenizer.
Les fichiers téléchargés sont téléchargés en utilisant la même présentation que la bibliothèque Python, ainsi les fichiers mis en cache peuvent être partagés entre les implémentations R et Python, pour une commutation plus facile et plus rapide entre les langues.
Nous utilisons déjà hfhub dans le minhub paquet et dans le Article de blog « GPT-2 à partir de zéro avec Torch » pour télécharger des poids pré-entraînés depuis Hugging Face Hub.
Vous pouvez utiliser hub_download()
pour télécharger n’importe quel fichier à partir d’un référentiel Hugging Face Hub en spécifiant l’identifiant du référentiel et le chemin d’accès au fichier que vous souhaitez télécharger. Si le fichier est déjà dans le cache, alors la fonction renvoie immédiatement le chemin du fichier, sinon le fichier est téléchargé, mis en cache puis le chemin d’accès est renvoyé.
<- hfhub::hub_download("gpt2", "model.safetensors")
path
path#> /Users/dfalbel/.cache/huggingface/hub/models--gpt2/snapshots/11c5a3d5811f50298f278a704980280950aedb10/model.safetensors
je t’aime
Les tokenizers sont chargés de convertir le texte brut en séquence d’entiers qui est souvent utilisée comme entrée pour les modèles NLP, ce qui en fait un composant essentiel des pipelines NLP. Si vous souhaitez un aperçu de plus haut niveau des pipelines NLP, vous souhaiterez peut-être lire notre précédent article de blog « Que sont les grands modèles linguistiques ? Qu’est-ce qu’ils ne sont pas ?.
Lorsque vous utilisez un modèle pré-entraîné (à la fois pour l’inférence ou pour un réglage précis), il est très important que vous utilisiez exactement le même processus de tokenisation que celui utilisé lors de l’entraînement, et l’équipe de Hugging Face a fait un travail incroyable en s’assurant que ses algorithmes correspondent. les stratégies de tokenisation utilisaient la plupart des LLM.
tok fournit des liaisons R à la bibliothèque 🤗 tokenizers. La bibliothèque tokenizers est elle-même implémentée dans Rust pour des raisons de performances et nos liaisons utilisent le projet d’extension
pour faciliter l’interface avec R. En utilisant tok, nous pouvons tokeniser le texte exactement de la même manière que la plupart des modèles NLP, ce qui facilite le chargement de modèles pré-entraînés dans R ainsi que le partage de nos modèles avec la communauté PNL plus large.
tok peut être installé à partir de CRAN, et actuellement son utilisation est limitée au chargement de vocabulaires de tokenizers à partir de fichiers. Par exemple, vous pouvez charger le tokenizer pour le modèle GPT2 avec :
<- tok::tokenizer$from_pretrained("gpt2")
tokenizer <- tokenizer$encode("Hello world! You can use tokenizers from R")$ids
ids
ids#> [1] 15496 995 0 921 460 779 11241 11341 422 371
$decode(ids)
tokenizer#> [1] "Hello world! You can use tokenizers from R"
Les espaces
N’oubliez pas que vous pouvez déjà héberger
Shiny (pour R et Python) sur Hugging Face Spaces. À titre d’exemple, nous avons créé une application Shiny qui utilise :
- flambeau pour implémenter GPT-NeoX (l’architecture de réseau neuronal de StableLM – le modèle utilisé pour discuter)
- hfhub pour télécharger et mettre en cache les poids pré-entraînés à partir du Dépôt StableLM
- tok pour tokeniser et prétraiter le texte comme entrée pour le modèle de torche. tok utilise également hfhub pour télécharger le vocabulaire du tokenizer.
L’application est hébergée ici Espace. Il fonctionne actuellement sur CPU, mais vous pouvez facilement changer l’image Docker si vous souhaitez l’exécuter sur un GPU pour une inférence plus rapide.
Le code source de l’application est également open source et peut être trouvé dans les Espaces onglet fichier.
Avoir hâte de
Ce sont les tout premiers jours de hfhub et tok et il reste encore beaucoup de travail à faire et de fonctionnalités à implémenter. Nous espérons obtenir l’aide de la communauté pour prioriser le travail. Ainsi, s’il vous manque une fonctionnalité, veuillez ouvrir un ticket dans le
Dépôts GitHub.
Réutilisation
Le texte et les figures sont sous licence Creative Commons Attribution CC PAR 4.0. Les figures réutilisées à partir d’autres sources ne relèvent pas de cette licence et sont reconnaissables à une note dans leur légende : « Figure de… ».
Citation
Pour l’attribution, veuillez citer ce travail comme
Falbel (2023, July 12). Posit AI Blog: Hugging Face Integrations. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2023-07-12-hugging-face-integrations/
Citation BibTeX
@misc{hugging-face-integrations, author = {Falbel, Daniel}, title = {Posit AI Blog: Hugging Face Integrations}, url = {https://blogs.rstudio.com/tensorflow/posts/2023-07-12-hugging-face-integrations/}, year = {2023} }