transformers.js è un interessante progetto Open Source basato su JavaScript che permette di implementare dei transformer direttamente nel browser. Senza la necessità di dover fare riferimento a ad alcun server sarà possibile sviluppare soluzioni di Machine Learning per il Web.
Ma per spiegare quale è la sua utilità bisogna prima capire..
Cosa sono i transformer
L'importanza dei transformer è evidenziata dal nome del più popolare tra i chatbot animati da un modello generativo. ChatGPT si basa infatti sull'LLM (Large Language Model) GPT il cui acronimo sta per "Generative Pre-trained Transformer".
Semplificando all'estremo i transformer sono un tipo di architettura di rete neurale artificiale utilizzata soprattutto per il Deep Learning e l'elaborazione del linguaggio naturale. Essa si basa su "meccanismi di attenzione" che consentono ad una rete neurale di concentrarsi su componenti specifici di input, tipicamente sequenze di dati, in fase di elaborazione.
I transformer consentono di operare tramite un approccio alternativo rispetto alle architetture RNN (Recurrent Neural Network) e CNN (Convolutional Neural Network). Con essi infatti le sequenze di dati vengono elaborate in parallelo, rendendo più efficienti le applicazioni per lo svolgimento di task come la traduzione automatica e la generazione di testo.
I vantaggi di transformers.js
transformers.js lavora in modo simile alla libreria Python di Hugging Face per i trasformer. Questo vuol dire che permette di eseguire modelli preaddestrati interagendo come quest'ultima con delle API. La si potrà quindi utilizzare per compiti che vanno dalla creazioni di sommari alla speech recognition automatica. Dalla produzione di testi alla classificazione dell'audio. Dalla rilevazione di oggetti nelle immagini alla modellazione del linguaggio.
Qualsiasi modello PyTorch o TensorFlow preaddestrato potrà essere facilmente convertito per l'esecuzione su browser grazie al runtime ONNX. Mentre l'installazione risulta molto semplice grazie alla possibilità di poter utilizzare npm:
npm i @xenova/transformers
Dato che si tratta di una libreria JavaScript, è anche possibile scaricarla per poi includerla nel proprio progetto Web. Così come sono supportate le chiamate via CDN ed è possibile l'importazione tramite moduli JavaScript:
<script type="module">
import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.0';
</script>