SeamlessM4T: rivoluzionare la traduzione in un mondo multilingue e multimodale
Introduzione
Nel nostro mondo sempre più interconnesso, la presenza diffusa di Internet, dei dispositivi mobili, dei social media e delle piattaforme di comunicazione ha fornito alle persone un accesso senza precedenti ai contenuti multilingue. In questo contesto, la capacità di comunicare e comprendere informazioni on-demand in qualsiasi lingua sta diventando sempre più cruciale. Sebbene questa capacità sia sempre stata un sogno nella fantascienza, l’intelligenza artificiale è sulla buona strada per trasformare questa visione in una realtà tecnica.
In questo articolo presentiamo SeamlessM4T: un modello multilingue e multitasking innovativo per la traduzione e la trascrizione senza interruzioni di parlato e testo. Supporta il riconoscimento vocale automatico, la traduzione da voce a testo, la traduzione da voce a voce, la traduzione da testo a testo e la traduzione da testo a voce per quasi 100 lingue, con 35 lingue aggiuntive supportate per l'output, incluso l'inglese.
SeamlessM4T segna un importante progresso nel campo delle tecnologie di sintesi vocale e di sintesi vocale, superando le limitazioni associate alla copertura linguistica limitata e alla dipendenza da sistemi distinti.
Prerequisiti
- Conoscenze linguistiche di base: comprensione della sintassi, della semantica e delle sfumature della traduzione.
- Fondamenti di intelligenza artificiale/ML: familiarità con i concetti di machine learning, in particolare il deep learning.
- PNL e AI multimodale: Conoscenza dell'elaborazione del linguaggio naturale (PNL) e della gestione dei dati multimodali (testo, immagini, audio).
- Strumenti e framework: esperienza con framework come PyTorch, TensorFlow e Hugging Face.
- Gestione dei dati: competenze nella gestione e nella preelaborazione di set di dati multilingue di grandi dimensioni.
- Utilizzo della GPU: consapevolezza dell'utilizzo delle GPU per l'addestramento di modelli linguistici di grandi dimensioni.
Approccio utilizzato da Seamless M4T
Per creare un toolkit di modellazione di sequenze leggero ed efficiente, Meta ha riprogettato fairseq, uno dei primi e più popolari toolkit di modellazione di sequenze. Fairseq2 ha dimostrato di essere più efficiente e ha contribuito a potenziare la modellazione alla base di SeamlessM4T.
Un'architettura modello Multitask UnitY, è in grado di generare direttamente sia il testo tradotto che il parlato. Questo framework avanzato supporta varie funzioni, tra cui il riconoscimento vocale automatico, le traduzioni da testo a testo, da testo a voce, da voce a testo e da voce a voce, perfettamente integrate dal modello Vanilla UnitY. Il modello multitasking UnitY comprende tre componenti chiave: i codificatori di testo e parlato riconoscono l'input vocale in quasi 100 lingue, il decodificatore di testo traduce il significato del testo in quasi 100 lingue e un modello testo-unità lo decodifica in unità acustiche discrete per 36 discorsi. lingue. Per migliorare la qualità e la stabilità del modello, il codificatore auto-supervisionato, i componenti di sintesi vocale, di traduzione da testo a testo e il modello da testo a unità sono sottoposti a pre-addestramento. Il passaggio finale prevede la conversione delle unità discrete decodificate in parlato utilizzando un vocoder di unità HiFi-GAN multilingue.
Fonte Architettura
1.Il codificatore elabora il parlato:
Il codificatore vocale autocontrollato, w2v-BERT 2.0, è una versione aggiornata di w2v-BERT. Questo è progettato in modo tale da migliorare la stabilità della formazione e la qualità della rappresentazione. È anche in grado di apprendere e comprendere la struttura e il significato del parlato analizzando grandi quantità di dati vocali multilingue nel corso di milioni di ore. Questo codificatore elabora i segnali audio, li scompone in componenti più piccoli e costruisce una rappresentazione interna del contenuto parlato. Per allinearsi con le parole reali, dato che le parole pronunciate sono costituite da vari suoni e caratteri, viene utilizzato un adattatore di lunghezza per una mappatura più accurata.
2.Il codificatore elabora il testo:
Il codificatore di testo si basa sul modello NLLB (NLLB Team et al., 2022) ed è addestrato a comprendere 100 lingue che vengono poi utilizzate per la traduzione.
3.Produzione del testo:
Il decodificatore di testo è in grado di gestire parlato codificato o rappresentazioni di testo, rendendolo versatile per attività all'interno della stessa lingua, incluso il riconoscimento vocale automatico e la traduzione multilingue. Attraverso la formazione multitasking, viene utilizzato un robusto modello di traduzione da testo a testo (NLLB) per guidare in modo efficace il modello di traduzione da parlato a testo, utilizzando la distillazione della conoscenza a livello di token per prestazioni migliorate.
4.Produrre il discorso:
Nel modello UnitY, l'uso di unità acustiche rappresenta il parlato. Il componente text-to-unit (T2U) crea queste unità vocali dall'output di testo. Prima di mettere a punto UnitY, T2U viene pre-addestrato sui dati ASR. Infine, un vocoder multilingue dell'unità HiFi-GAN trasforma queste unità in forme d'onda audio.
5.Ridimensionamento dei dati:
Il modello SeamlessM4T richiedeva una grande quantità di dati da addestrare, preferibilmente anche dati di alta qualità. Gli sforzi precedenti nell'estrazione da testo a testo vengono ulteriormente estesi in questa ricerca con una misura di somiglianza in uno spazio di incorporamento congiunto e viene incorporata anche l'espansione del lavoro iniziale nell'estrazione del parlato. Questi contributi aiutano a creare risorse aggiuntive per la formazione del modello SeamlessM4T.
Qui è stato creato SONAR (__S__entence-level m__O__dality- e la__N__guage-__A__gnostic __R__epresentations), un testo multilingue e multimodale altamente efficace che incorpora spazio per 200 lingue, superando i metodi esistenti come LASER3 e LaBSE nella ricerca di similarità multilingue. Per lavorare con queste rappresentazioni SONAR, viene utilizzato un approccio insegnante-studente per includere la modalità vocale. Le attività di data mining hanno coinvolto enormi quantità di dati provenienti da archivi web (decine di miliardi di frasi) e discorsi (quattro milioni di ore).
6.Risultati raggiunti:
Il Data Scaling come discusso si traduce in SeamlessAlign, un corpus significativo con oltre 443.000 ore di parlato allineato con i testi e circa 29.000 ore di allineamenti da parlato a parlato. SeamlessAlign è ad oggi il più grande corpus parallelo aperto per parlato/parlato e parlato/testo in termini sia di volume che di copertura linguistica.
SeamlessM4T ha dimostrato di ottenere risultati all'avanguardia per ASR, sintesi vocale, sintesi vocale, sintesi vocale e traduzione da testo a testo, il tutto in un unico modello. BLASER 2.0 è ora utilizzato per la valutazione metrica.
Meta afferma che SeamlessM4T supera i precedenti concorrenti SOTA.
Qualità della traduzione misurata con il modello SOTA (Fonte)
Dimostrazione
Impostare
Fatto ciò, vai per aprire un notebook seamlessM4T.ipynb. Questo notebook contiene tutto il codice necessario per eseguire il modello e ottenere i risultati.
1.Installa il "trasformatore", "frasepezzo" utilizzando "pip install"
!pip install git+https://github.com/huggingface/transformers.git sentencepiece
Questo comando installa il pacchetto "transformers" dal repository GitHub specificato e installa anche il pacchetto "sentencepiece". La libreria "transformers", sviluppata da Hugging Face, è comunemente utilizzata per attività di elaborazione del linguaggio naturale, mentre "sentencepiece" è una libreria per la tokenizzazione del testo.
2. Una volta completata l'installazione, passare alla cella successiva. Ciò importerà le librerie necessarie per lavorare con il modello SeamlessM4T.
#import the necessary libraries
from transformers import AutoProcessor, SeamlessM4Tv2Model
import torchaudio
3. Successivamente, caricare il modello pre-addestrato utilizzando la libreria e il processore Hugging Face Transformers della famiglia "SeamlessM4T" di Facebook.
#load the pre-trained model and processor
processor = AutoProcessor.from_pretrained("facebook/seamless-m4t-v2-large")
model = SeamlessM4Tv2Model.from_pretrained("facebook/seamless-m4t-v2-large")
Queste due righe di codice caricano un modello SeamlessM4T pre-addestrato e il processore associato, rendendolo pronto per l'uso nelle attività di PNL. Il processore è responsabile della tokenizzazione e della preelaborazione del testo di input, mentre il modello è responsabile dell'esecuzione delle attività effettive.
4. La parte di codice seguente ci aiuterà a utilizzare il modello e il processore SeamlessM4T caricati in precedenza per generare parlato da un determinato testo o audio di input.
# from text
text_inputs = processor(text = "Hello, my dog is cute", src_lang="eng", return_tensors="pt")
audio_array_from_text = model.generate(**text_inputs, tgt_lang="ben")[0].cpu().numpy().squeeze()
# from audio
audio, orig_freq = torchaudio.load("https://www2.cs.uic.edu/~i101/SoundFiles/preamble10.wav")
audio = torchaudio.functional.resample(audio, orig_freq=orig_freq, new_freq=16_000) # must be a 16 kHz waveform array
audio_inputs = processor(audios=audio, return_tensors="pt")
audio_array_from_audio = model.generate(**audio_inputs, tgt_lang="ben")[0].cpu().numpy().squeeze()
5. Il passaggio finale per visualizzare e riprodurre l'audio generato dal modello. Lo snippet di codice seguente viene utilizzato per utilizzare la classe "Audio" per visualizzare e riprodurre l'audio in un ambiente IPython. I dati audio vengono forniti sotto forma di array NumPy (audio_array_from_text e audio_array_from_audio) e la frequenza di campionamento viene specificata per garantire una riproduzione corretta.
#import the Audio class from the IPython.display module.
from IPython.display import Audio
#retrieve the sampling rate of the audio generated by the SeamlessM4T model
sample_rate = model.config.sampling_rate
#create an Audio object using the generated audio array and specify sample rate
Audio(audio_array_from_text, rate=sample_rate)Audio(audio_array_from_audio, rate=sample_rate)
Ciò che rende SeamlessM4T diverso
Creare un traduttore universale è stato difficile a causa della presenza di un vasto numero di lingue nel mondo. Inoltre, è necessario che un’ampia gamma di attività di traduzione come sintesi vocale, sintesi vocale e testo-testo facciano affidamento su vari modelli di intelligenza artificiale.
Questi tipi di attività richiedono generalmente un'enorme quantità di dati di addestramento. SeamlessM4T, fungendo da modello multilingue unificato in tutte le modalità, affronta le sfide sopra menzionate. Il modello consente inoltre traduzioni su richiesta senza soluzione di continuità, facilitando notevolmente la comunicazione tra parlanti di lingue diverse. Inoltre, il modello ha anche migliorato significativamente le prestazioni di traduzione delle lingue con risorse medio-basse.
Su Fleurs, SeamlessM4T alza il livello delle traduzioni in più lingue di destinazione, superando il precedente stato dell'arte nella traduzione diretta da parlato a testo con un impressionante miglioramento del 20% BLEU. Rispetto ai robusti modelli a cascata, SeamlessM4T migliora la qualità della traduzione in inglese di 1,3 punti BLEU nella sintesi vocale e di 2,6 punti ASR-BLEU nella sintesi vocale.
Il modello è anche sensibile a bias e tossicità. Per affrontare la questione della tossicità, Meta ha ampliato il proprio classificatore di tossicità multilingue per analizzare il parlato, identificando e filtrando le parole tossiche sia negli input che negli output. Sono state adottate ulteriori misure per mitigare la tossicità sbilanciata nei dati di addestramento rimuovendo le coppie in cui l'input o l'output mostravano diversi livelli di tossicità.
Vale la pena menzionarlo: per rendere il modello il più eticamente valido possibile, i ricercatori sull’intelligenza artificiale di Meta hanno seguito un quadro responsabile che è ancora una volta guidato dai cinque pilastri dell’IA responsabile.
Pensieri conclusivi
Sebbene i modelli basati su testo abbiano fatto enormi sviluppi per coprire oltre 200 lingue per la traduzione automatica, i modelli di traduzione unificata da parlato a parlato sono ancora indietro. I tradizionali sistemi di sintesi vocale utilizzano approcci a cascata con più sottosistemi, questo approccio ostacola lo sviluppo di sistemi di traduzione vocale unificati scalabili e ad alte prestazioni. Per colmare queste lacune, viene introdotto SeamlessM4T, che funge da modello completo che supporta la traduzione in varie modalità. Questo singolo modello supporta attività di sintesi vocale, sintesi vocale, sintesi vocale, sintesi vocale e riconoscimento vocale automatico per un massimo di 100 lingue.
Detto questo, come affermato nel documento di ricerca originale, esiste ancora un margine per migliorare ulteriormente il modello per le attività ASR. Inoltre, la competenza del modello nella traduzione di slang o nomi propri potrebbe variare tra lingue ad alto e basso livello di risorse.
È importante notare qui che la traduzione del parlato rappresenta una sfida in più perché avviene istantaneamente e gli oratori non hanno molto tempo per controllare o correggere gli errori durante una conversazione dal vivo. A differenza della lingua scritta, dove le parole vengono pianificate e riviste, le parole pronunciate non possono essere facilmente modificate. Pertanto, la traduzione vocale potrebbe presentare maggiori rischi in termini di incomprensioni o linguaggio offensivo, poiché ci sono meno possibilità di correggere gli errori sul posto.
Le applicazioni sviluppate utilizzando SeamlessM4T dovrebbero essere considerate come un assistente e non uno strumento che sostituisce i traduttori umani o la necessità di imparare nuove lingue.
Il discorso non è solo poche parole ma è espressione di emozioni!
Ci auguriamo fortemente che SeamlessM4T apra nuove possibilità per applicazioni industriali e anche in aree di ricerca.
Grazie per aver letto!
Riferimenti
- Documento di ricerca originale-SeamlessM4T: traduzione automatica massivamente multilingue e multimodale
- Metablog
- Avvicinare il mondo con un modello multimodale fondamentale per la traduzione vocale