Crea il tuo traduttore con LLMs e Hugging Face

Crea traduttore con LLMs e Hugging Face

Introduzione

Le barriere linguistiche possono ostacolare la comunicazione globale, ma l’IA e l’elaborazione del linguaggio naturale offrono soluzioni. I modelli di linguaggio (LLM) addestrati su vasti dati di testo hanno una profonda comprensione del linguaggio, consentendo una traduzione senza soluzione di continuità tra persone di diverse lingue. Gli LLM superano i tradizionali metodi basati su regole, migliorando l’accuratezza e la qualità. Questo articolo spiega come creare un traduttore utilizzando LLM e Hugging Face, una rinomata piattaforma di elaborazione del linguaggio naturale.

Dall’installazione della libreria a un’app web facile da usare, imparerai a creare un sistema di traduzione. L’uso degli LLM apre infinite opportunità per una comunicazione interlinguistica efficace, colmando le lacune nel nostro mondo interconnesso.

Obiettivi di apprendimento

Alla fine di questo articolo, sarai in grado di:

  • Capire come importare e utilizzare i trasformatori Hugging Face e i modelli OpenAI per svolgere i compiti.
  • Costruire il tuo traduttore in qualsiasi lingua e adattarlo alle esigenze degli utenti.

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Comprensione dei traduttori e della loro importanza

I traduttori sono strumenti o sistemi che convertano testo da una lingua all’altra preservando il significato e il contesto. Ci aiutano a colmare il divario tra persone che parlano lingue diverse e consentono una comunicazione efficace su scala globale.

L’importanza dei traduttori è evidente in vari settori, tra cui affari, viaggi, istruzione e diplomazia. Che si tratti di tradurre documenti, siti web o conversazioni, i traduttori facilitano lo scambio culturale e favoriscono la comprensione reciproca.

Recentemente ho affrontato lo stesso problema quando sono andato in un tour dove non capivo la loro lingua e loro non capivano la mia lingua, ma alla fine ce l’ho fatta con Google Translation. (haha)

Panoramica di OpenAI e Hugging Face

Nessuno ha bisogno di presentazioni per OpenAI, è un noto gruppo di ricerca focalizzato sull’intelligenza artificiale. Hanno creato modelli di linguaggio come la serie GPT e l’API dei modelli di linguaggio. Questi modelli hanno cambiato il modo in cui vengono eseguiti la traduzione e altri lavori di NLP.

C’è un’altra piattaforma chiamata Hugging Face che offre una varietà di modelli e strumenti NLP. Per lavori come la traduzione, forniscono modelli preaddestrati, opzioni di messa a punto fine e pipeline semplici. Hugging Face è diventata una fonte di riferimento per sviluppatori e ricercatori di NLP.

Vantaggi dell’uso di LLM per la traduzione

I modelli di linguaggio, come il GPT di OpenAI e il T5 di Hugging Face, hanno rivoluzionato il campo della traduzione. Ecco alcuni vantaggi dell’uso di LLM per la traduzione:

  • Comprensione contestuale: gli LLM sono stati addestrati su una vasta quantità di dati di testo, consentendo loro di catturare significati e contesti sfumati.
  • Aumento dell’accuratezza: gli LLM hanno migliorato notevolmente la qualità della traduzione rispetto ai metodi tradizionali basati su regole.
  • Supporto multilingue: gli LLM possono gestire la traduzione tra più lingue, rendendoli versatili ed adattabili.
  • Apprendimento continuo: gli LLM possono essere messi a punto e aggiornati con nuovi dati, migliorando continuamente la qualità della traduzione.

Ora, immergiamoci nel processo passo-passo di costruzione di un traduttore utilizzando LLM e Hugging Face.

Costruire un traduttore

Installazione delle librerie necessarie

Per iniziare, è necessario installare le librerie necessarie per svolgere i compiti.

Apri il tuo ambiente Python preferito (ho fatto questo nell’ambiente base). Puoi creare un nuovo ambiente eseguendo il comando python -m venv “nome ambiente”. Stiamo installando trasformatori e dataset, per caricare da Hugging Face. Puoi eseguire questi comandi nel tuo notebook Jupyter o nel terminale.

%pip install sacremoses==0.0.53
%pip install datasets
%pip install transformers
%pip install torch torchvision torchaudio
%pip install "transformers[sentencepiece]"

Configurazione del modello T5-Small con Hugging Face

Come accennato in precedenza, utilizzeremo i modelli di Hugging Face nel nostro progetto. In particolare, utilizzeremo il modello T5-Small per la traduzione di testo. Sebbene siano disponibili altri modelli nei modelli di traduzione di Hugging Face, ci concentreremo sul modello T5-Small. Per configurarlo, utilizzare il seguente codice:

Prima di configurare il T5-Small, importiamo alcune delle nostre librerie installate.

# importiamo le librerie

from datasets import load_dataset
from transformers import pipeline

Stiamo salvando il modello nella cache_dir, quindi non è necessario scaricarlo ripetutamente.

# Creazione di una pipeline per il modello T5-Small e salvataggio nella cache_dir

t5_small_pipeline = pipeline(
    task="text2text-generation",
    model="t5-small",
    max_length=50,
    model_kwargs={"cache_dir": '/Users/tarakram/Documents/Translate/t5_small' },
)

Traduzione del testo con T5-Small

Ora, traduciamo del testo utilizzando il modello T5-Small:

Nota: Uno svantaggio del modello T5-Small è che non supporta tutte le lingue. Tuttavia, in questa guida, illustrerò il processo di utilizzo dei modelli di traduzione nei nostri progetti.

# Inglese a Rumeno
t5_small_pipeline(
    "translate English to Romanian : Hey How are you ?"
)

# Inglese a Spagnolo

t5_small_pipeline(
    "translate English to Spanish: Hey How are you ?"
)

# come sappiamo che il modello non è supportato da molte lingue, è limitato a
# poche lingue soltanto

La t5_small_pipeline genererà traduzioni per il testo fornito nella lingua di destinazione specificata.

Migliorare la traduzione con i LLM di OpenAI

Anche se il modello T5-Small copre più lingue, possiamo migliorare la qualità della traduzione sfruttando i LLM di OpenAI. Per fare ciò, abbiamo bisogno di una chiave API di OpenAI. Una volta ottenuta la chiave, è possibile procedere con il seguente codice:

# importiamo le librerie
import openai
from secret_key import openapi_key
import os
# Inserisci qui la tua chiave di OpenAI
os.environ['OPENAI_API_KEY'] = openapi_key

# creazione di una funzione che prende il testo e chiede la
# lingua di origine e anche la lingua di destinazione

def translate_text(text, source_language, target_language):
    
    response = openai.Completion.create(
        engine='text-davinci-002',
        prompt=f"Traduci il seguente testo da {source_language} a {target_language}:\n{text}",
        max_tokens=100,
        n=1,
        stop=None,
        temperature=0.2,
        top_p=1.0,
        frequency_penalty=0.0,
        presence_penalty=0.0,
    )

    translation = response.choices[0].text.strip().split("\n")[0]
    return translation

# Ottieni l'input dell'utente
text = input("Inserisci il testo da tradurre: ")
source_language = input("Inserisci la lingua di origine: ")
target_language = input("Inserisci la lingua di destinazione: ")

translation = translate_text(text, source_language, target_language)

# stampa il testo tradotto

print(f'Testo tradotto: {translation}')

Il codice fornito configura una funzione di traduzione utilizzando i LLM di OpenAI. Invia una richiesta all’API di OpenAI per la traduzione e recupera il testo tradotto.

Creazione di un’applicazione web di traduzione con Streamlit

Per rendere la nostra traduzione accessibile tramite un’interfaccia utente amichevole, è possibile creare un’applicazione web di traduzione utilizzando Streamlit. Ecco un esempio di frammento di codice:

# importiamo le librerie
import streamlit as st
import os
import openai
from secret_key import openapi_key
# Inserisci qui la tua chiave di OpenAI
os.environ['OPENAI_API_KEY'] = openapi_key

# Definisci la lista delle lingue disponibili
languages = [
    "Inglese",
    "Hindi",
    "Francese",
    "Telugu",
    "Albanese",
    "Bengalese",
    "Bhojpuri",
    # Aggiungi altre lingue se necessario, se vuoi
    ]
    
# creazione di una funzione

def translate_text(text, source_language, target_language):
    response = openai.Completion.create(
        engine='text-davinci-002',
        prompt=f"Traduci il seguente testo da {source_language} 
                a {target_language}:\n{text}",
        max_tokens=100,
        n=1,
        stop=None,
        temperature=0,
        top_p=1.0,
        frequency_penalty=0.0,
        presence_penalty=0.0
    )

    translation = response.choices[0].text.strip().split("\n")[0]
    return translation

# App web Streamlit
def main():
    st.title("Traduci il mio testo")

    # Testo di input
    text = st.text_area("Inserisci il testo da tradurre")

    # Dropdown per selezionare la lingua di origine
    source_language = st.selectbox("Seleziona la lingua di origine", languages)

    # Dropdown per selezionare la lingua di destinazione
    target_language = st.selectbox("Seleziona la lingua di destinazione", languages)

    # Pulsante Traduci per tradurre
    if st.button("Traduci"):
        translation = translate_text(text, source_language, target_language)
        st.markdown(f'<p style="color: blue; font-size: 25px;"> 
                    {translation}</p>', unsafe_allow_html=True)

if __name__ == '__main__':
    main()

Questo codice utilizza la libreria Streamlit per creare un’applicazione web. Gli utenti possono inserire il testo da tradurre, selezionare la lingua di origine e di destinazione e cliccare il pulsante “Traduci” per ottenere la traduzione. Ecco alcuni esempi di output per familiarizzare con l’applicazione.

Le traduzioni sono utilizzate in molti modi; ecco alcuni dei successi delle traduzioni nelle applicazioni del mondo reale:

  • Google Translate è un servizio di traduzione ampiamente utilizzato che utilizza LLM per fornire traduzioni accurate in molte lingue.
  • DeepL Translator è noto per le sue traduzioni di alta qualità e si basa su LLM per ottenere risultati precisi e naturali.
  • I sistemi di traduzione di Facebook utilizzano LLM per facilitare la comunicazione senza soluzione di continuità tra diverse lingue sulla piattaforma.
  • I sistemi di traduzione automatica della lingua parlata sfruttano LLM per consentire la traduzione in tempo reale della lingua parlata, beneficiando di conferenze internazionali e teleconferenze.

 Conclusioni

Questo articolo riassume i passaggi per creare un traduttore utilizzando Hugging Face e OpenAI LLM. Sottolinea il valore dei traduttori nel mondo moderno e i benefici che apportano nel superare le barriere linguistiche e promuovere una comunicazione globale efficiente. ora puoi sviluppare i tuoi sistemi di traduzione utilizzando LLM e piattaforme come Hugging Face.

Punti Chiave

  • I modelli di linguaggio, come GPT-3 o 4 di OpenAI e T5 di Hugging Face, hanno trasformato il campo della traduzione; offrono comprensione del contesto, precisione migliorata, supporto multilingue e la capacità di imparare e adattarsi in base al contesto in modo continuo.
  • Con Hugging Face, puoi facilmente accedere a modelli pre-addestrati, affinarli per compiti specifici e sfruttare pipeline pronte all’uso per vari compiti di elaborazione del linguaggio naturale, inclusa la traduzione.
  • Sfruttando LLM e costruendo traduttori, possiamo favorire la comprensione globale, facilitare la comunicazione interculturale e promuovere la collaborazione e lo scambio in vari domini.

Ecco il link del progetto – GitHub

Puoi connetterti con me su LinkedIn

Domande Frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e sono utilizzati a discrezione dell’autore.