Hugging Face è un’azienda con la missione di democratizzare l’accesso ai sistemi di Natural Language Processing, contribuendo allo sviluppo di tecnologie che migliorino il mondo attraverso le Intelligenze Artificiali.
In passato abbiamo incontrato a più riprese l’affascinante mondo del Natural Language Processing.
Qui abbiamo individuato alcune applicazioni comuni.
Ora parliamo di Hugging Face !
Molti sono i progetti open source gratuitamente consultabili sulla loro repository di GitHub.
Tra questi, uno dei più noti e apprezzati, con oltre 19k stelle su GitHub è Transformers.
Hugging Face Transformers
Transformers è una repository contenente architetture stato dell’arte a scopo generale (state-of-the-art general purpose) per lo sviluppo di sistemi di Natural Language Understanding (NLU) e Natural Language Generation (NLG).
Hugging Face mette qui a disposizione la bellezza di 32 modelli allenati e pronti all’uso in oltre 100 lingue differenti.
Tra questi troviamo:
- BERT (Google)
- GPT-2 (OpenAI)
- RoBERTa (Facebook)
- DistilBert (Hugging Face), una versione leggera di BERT
- XLnet, un modello di Generalized Autoregressive Pretraining for Natural Language Understanding
- CTRL, a Conditional Transfomer Language Model for Controllable Generation (
n.d.rnota mia, molto interessante)
Molto comoda a versatile l’intercompatibilità con sistemi basati su PyTorh e Tensorflow 2.0.
Nella documentazione della repository ufficiale è presenta una dettagliata guida sull’installazione e l’avvio di un primo modello demo.
In alternativa fatti conquistare dal sorprendente funzionamento di questa live demo:
Magari pensi non sia abbastanza.
Devi sapere che molte organizzazioni contribuiscono alla causa, allenando potenti modelli sui loro sistemi e rilasciandoli al pubblico: da un’occhiata alla fantastica collezione sul sito di Hugging Face.
Sappi che Google è una di queste e ha rilasciato alcuni modelli allenati e pronti all’uso: li trovi tutti qui.
Hugging Face Tokenizers
Tokenizers è l’implementazione dei più popolari tokenizers (ma non mi dire…) con un focus su versatilità e performance per ambienti di ricerca e produzione.
I tokenizers andrebbero approfonditi in un post a parte, per il momento tralasciamo la loro definizione e andiamo oltre.
Con questa implementazione di Hugging Face possiamo infatti:
- Allenare nuovi vocaboli e tokenizzare usando i più comuni tokenizers.
- Sfruttare le grandi performance offerte da Rust che permettono la tokenizzazione di un intero GB di dati in poche decine di secondi sulle CPU di server
- Sfruttarne la facilità e versatilitÃ
- Sviluppare progetti di ricerca e usare modelli in quelli di produzione
- Eseguire operazioni di pulizia dati (Tranucate, Pad e sfruttare token speciali richiesti dal modello)
L’implementazione originale in Rust, è stata estesa a Python e Nodejs.
Web Developer nel cuore, qui la documentazione from zero to one per la versione Node.js
Immaginiamo per un momento di voler allenare un nuovo modello linguistico da zero usando sia transfomers che tokenizers.
Hugging Face viene in contro anche a questa evenienza con una strepitosa guida!
Question Answering for Node.js
A questa repository è possibile invece reperire un sistema di Question Answering basato su DistilBERT, il modello di Hugging Face, production-ready e scritto in Node.js un popolarissimo runtime JavaScript Open Source.
Moltissimi siti e applicazioni web si basano su Node.js.
Avere un sistema simile su una piattaforma così diffusa e versatile significa massimizzarne la flessibilità e compatibilità con sistemi già esistenti.
TorchMoji
Questo sistema è un modello stato dell’arte per l’emotion detection a partire da semplici emoji!

I dettagli implementativi sono ampiamente spiegati nel post su medium a cui ti rimando, mentre l’implementazione open source la puoi trovare (per keras) qui.
Per il momento è tutto!
Un caldo abbraccio, Andrea.