Da GPT2 a Stable Diffusion Hugging Face arriva alla comunità di Elixir

Hugging Face porta Stable Diffusion alla comunità di Elixir, da GPT2.

La comunità di Elixir è lieta di annunciare l’arrivo di diversi modelli di Reti Neurali, da GPT2 a Stable Diffusion, in Elixir. Questo è possibile grazie alla libreria Bumblebee appena annunciata, che è un’implementazione di Hugging Face Transformers in puro Elixir.

Per aiutare chiunque a iniziare con questi modelli, il team dietro Livebook – una piattaforma di quaderni computazionali per Elixir – ha creato una collezione di “Smart cells” che consente agli sviluppatori di creare rapidamente diverse attività di Reti Neurali in soli 3 clic. Puoi guardare il mio video di annuncio per saperne di più:

Grazie al supporto di concorrenza e distribuzione nella Macchina Virtuale Erlang, su cui Elixir è in esecuzione, gli sviluppatori possono integrare e servire questi modelli come parte delle loro applicazioni web Phoenix esistenti, integrarli nelle loro pipeline di elaborazione dati con Broadway e distribuirli insieme ai loro sistemi embedded Nerves – senza la necessità di dipendenze di terze parti. In tutti gli scenari, i modelli di Bumblebee possono essere compilati sia per la CPU che per la GPU.

Contesto

Gli sforzi per portare l’apprendimento automatico in Elixir sono iniziati quasi 2 anni fa con il progetto Numerical Elixir (Nx). Il progetto Nx implementa tensori multidimensionali insieme a “definizioni numeriche”, un sottoinsieme di Elixir che può essere compilato per la CPU/GPU. Invece di reinventare la ruota, Nx utilizza binding per Google XLA (EXLA) e Libtorch (Torchx) per la compilazione CPU/GPU.

Dal progetto Nx sono nati diversi altri progetti. Axon porta Reti Neurali funzionali componibili in Elixir, prendendo ispirazione da progetti come Flax e PyTorch Ignite. Il progetto Explorer prende spunto da dplyr e Polars di Rust per fornire dataframes espressivi e performanti alla comunità di Elixir.

Bumblebee e Tokenizers sono le nostre uscite più recenti. Siamo grati a Hugging Face per aver reso possibile l’apprendimento automatico collaborativo tra comunità e strumenti, che ha svolto un ruolo essenziale nell’accelerare l’ecosistema di Elixir.

In seguito, abbiamo intenzione di concentrarci sull’addestramento e il trasferimento di apprendimento delle Reti Neurali in Elixir, consentendo agli sviluppatori di migliorare e specializzare modelli pre-addestrati in base alle esigenze delle loro aziende e applicazioni. Speriamo anche di pubblicare ulteriori sviluppi sugli algoritmi tradizionali di apprendimento automatico.

È il tuo turno

Se vuoi provare Bumblebee, puoi:

  • Scaricare Livebook v0.8 e generare automaticamente “attività di Reti Neurali” dal menu della cella “+ Smart” all’interno dei tuoi quaderni. Stiamo lavorando attualmente per eseguire Livebook su piattaforme e spazi aggiuntivi (rimanete sintonizzati! 😉).

  • Abbiamo anche scritto applicazioni Phoenix a singolo file come esempi di modelli Bumblebee all’interno delle tue app Phoenix (+ LiveView). Questi dovrebbero fornire i blocchi di costruzione necessari per integrarli nella tua app di produzione.

  • Per un approccio più pratico, leggi alcuni dei nostri quaderni.

Se vuoi aiutarci a costruire l’ecosistema di apprendimento automatico per Elixir, dai un’occhiata ai progetti sopra menzionati e provali. Ci sono molte aree interessanti, dallo sviluppo del compilatore alla costruzione di modelli. Ad esempio, i pull requests che portano più modelli e architetture a Bumblebee sono sicuramente benvenuti. Il futuro è concorrente, distribuito e divertente!