top of page

Cos’è Google BERT dalla spiegazione al codice Python

Dall'invio di lettere in cassette postali fisiche ai messaggi diretti tramite la tua applicazione di social media preferita, l'esplosione di testo è stata astronomica. L'innovazione e lo sviluppo di dispositivi mobili e computer hanno contribuito a spingere questo aumento e questa crescita geometrica ha richiesto modi innovativi per comprendere ed elaborare il testo. Con l'apprendimento automatico che ha compiuto alcuni progressi significativi all'inizio degli anni 2010, la creazione e la previsione del modello sono state perfezionate per rispecchiare la comprensione umana delle espressioni linguistiche.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

C'è stato un salto significativo nell'elaborazione del linguaggio naturale (NLP) negli ultimi anni. Da BERT ELMO (Embedding from Language Models) a GPT (Generative Pre-trained Transformer), i ricercatori hanno cercato e sono riusciti, in una certa misura, a far comprendere ai modelli il significato contestuale delle parole. La creazione di BERT ha aiutato in modo significativo gli scienziati della NLP a fare notevoli progressi nell'ottenere una soluzione. Ora è semplice cercare nuove parole e tradurre da una lingua all'altra in una più adatta. Le rappresentazioni di encoder bidirezionali di Transformers (BERT) sono uno dei modelli più utilizzati nell'elaborazione del linguaggio naturale nell'ultimo decennio. Tutto grazie a BERT NLP Model, il modello linguistico all'avanguardia.



Sommario

  • Che cos'è il modello BERT NLP?

    • Modello di linguaggio mascherato

    • Trasformatori

  • Spiegazione dettagliata dell'architettura del modello BERT

    • Esempio dell'architettura originale del trasformatore

    • Come si usa BERT?

    • Tutto quello che devi sapere su come funziona BERT

  • Applicazioni BERT

    • Vantaggi dell'utilizzo del modello BERT rispetto ad altri modelli

    • Svantaggi del BERT

    • Errori comuni da evitare quando si lavora con il modello BERT

  • Uso di BERT per l'analisi del sentimento PyTorch

    • Impostare l'ambiente

    • Installazione delle dipendenze richieste

  • BERT - Conclusioni



Che cos'è Google BERT ?

Il modello Google BERT , acronimo di “Bidirectional Encoder Representations from Transformers”, è l’ultimo algoritmo di Google basato su una tecnologia che consente di comprendere meglio il linguaggio naturale (NLP) degli utenti.


Analizziamo questa definizione di BERT:

I modelli sono l'output di un algoritmo eseguito sui dati, comprese le procedure utilizzate per fare previsioni sui dati.


Un modello linguistico è un modello numerico della probabilità di parole, frasi o testi. Un esempio di modello linguistico che può restituire è il seguente:


Probabilità della frase "Il blog di I.A. Italia è informativo" come output è maggiore di (>) Probabilità di restituire "Informativo è I.A. Italia" come output basato su un gruppo di testo da cui ha appreso.


Probabilità significa semplicemente ciò che è più probabile che accada. Ad esempio, in questo caso, le frasi che hanno una migliore possibilità di essere emesse dalla macchina escono dopo aver appreso da un gruppo di testo.


Più il modello linguistico apprende dal set di formazione per fornire previsioni più accurate, migliore sarà il modello.


Perché è stato creato il modello Google BERT ?

Una delle maggiori sfide della NLP è la mancanza di dati di addestramento sufficienti. Nel complesso è disponibile un'enorme quantità di dati di testo, ma se vogliamo creare set di dati specifici per attività, dobbiamo dividere quella pila in moltissimi campi diversi. E quando lo facciamo, finiamo con solo poche migliaia o poche centinaia di migliaia di esempi di addestramento etichettati dall'uomo. Sfortunatamente, per funzionare bene, i modelli NLP basati sull'apprendimento profondo richiedono quantità di dati molto maggiori: vedono importanti miglioramenti quando vengono addestrati su milioni, o miliardi, di esempi di formazione annotati. Per aiutare a colmare questa lacuna nei dati, i ricercatori hanno sviluppato varie tecniche per addestrare modelli di rappresentazione linguistica di uso generale utilizzando le enormi pile di testo non annotato sul web (questo è noto come pre-formazione). Questi modelli pre-addestrati per scopi generici possono quindi essere perfezionati su set di dati specifici per attività più piccoli, ad esempio quando si lavora con problemi come la risposta alle domande e l'analisi del sentiment.


Questo approccio si traduce in grandi miglioramenti della precisione rispetto all'addestramento da zero sui set di dati specifici per attività più piccoli. BERT è una recente aggiunta a queste tecniche per la pre-formazione della NLP; ha suscitato scalpore nella comunità del deep learning perché ha presentato risultati all'avanguardia in un'ampia varietà di attività della NLP, come la risposta alle domande.


La parte migliore di BERT è che può essere scaricato e utilizzato gratuitamente: possiamo utilizzare i modelli BERT per estrarre caratteristiche linguistiche di alta qualità dai nostri dati di testo, oppure possiamo mettere a punto questi modelli su un'attività specifica, come l'analisi del sentimento e risposte alle domande, con i nostri dati per produrre previsioni all'avanguardia.


Come funziona Google BERT ?

BERT si basa su un Transformer (il meccanismo di attenzione che apprende le relazioni contestuali tra le parole in un testo). Un trasformatore di base è costituito da un codificatore per leggere l'input di testo e un decodificatore per produrre una previsione per l'attività. Poiché l'obiettivo di BERT è generare un modello di rappresentazione del linguaggio, necessita solo della parte del codificatore. L'input dell'encoder per BERT è una sequenza di token, che vengono prima convertiti in vettori e quindi elaborati nella rete neurale. Ma prima che l'elaborazione possa iniziare, BERT ha bisogno che l'input venga massaggiato e decorato con alcuni metadati extra:

  1. Incorporamenti di token : un token [CLS] viene aggiunto ai token delle parole di input all'inizio della prima frase e un token [SEP] viene inserito alla fine di ogni frase.

  2. Incorporamenti di segmenti : a ciascun gettone viene aggiunto un segnalino che indica la Frase A o la Frase B. Ciò consente al codificatore di distinguere tra le frasi.

  3. Incorporamenti posizionali : viene aggiunto un incorporamento posizionale a ciascun token per indicarne la posizione nella frase.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

In sostanza, Transformer impila uno strato che associa sequenze a sequenze, quindi l'output è anche una sequenza di vettori con una corrispondenza 1:1 tra token di input e output allo stesso indice.


Modello di linguaggio mascherato di BERT

Uno dei contributi significativi del documento di contributo BERT è il mascheramento. Il mascheramento implica la rimozione di parti di frasi e il fatto che il modello colmi le lacune. I modelli del linguaggio mascherato stanno diventando molto utili perché sono uno dei modi in cui viene eseguito l'incorporamento contestuale. Uno degli svantaggi dell'incorporamento di parole tradizionale utilizzato nei modelli linguistici precedenti è la mancanza di significato contestuale.


Prendiamo ad esempio le seguenti parole:

Il motoscafo era fermo vicino a un banco di legno
Eddy è andato in un banco dei pegni per impegnare dei gioielli.

*Un banco dei pegni è un'attività che offre prestiti assicurati ai clienti in cambio di beni personali noti come pegni.



La parola banco significa cose molto diverse nelle frasi precedenti. Per le due frasi, la rappresentazione numerica (detta anche embedding) nel modello linguistico tradizionale di banco sarebbe la stessa. Il modello del linguaggio mascherato aiuta a risolvere questo problema (tra le altre cose). Più avanti in questo tutorial BERT , una sezione evidenzierà come si ottiene questo risultato.


BERT e l'utilizzo dei Trasformatori

BERT è stato creato sull'architettura Transformer, una famiglia di architetture di reti neurali . L'idea generale dell'architettura Transformer si basa sull'auto-attenzione e il documento in cui è stato proposto è Attention is All You Need . L'auto-attenzione sta imparando a soppesare la relazione tra ogni elemento o parola in una sequenza di input con altre parole nella sequenza di input.


Considera la frase:


L'animale ha impiegato troppo tempo ad attraversare la strada perché era troppo lento.

Se questa frase viene passata attraverso un algoritmo, questo avrebbe difficoltà a collare "era troppo lento" all'animale piuttosto che alla strada. Sebbene ciò possa essere facile da capire per una persona, è difficile per l'algoritmo decifrarlo a colpo d'occhio. L'auto-attenzione assicura che mentre il modello esamina ciascuna delle parole in sequenza, esamina il testo di input per suggerimenti che possono aiutare a codificare meglio la parola.


Spiegazione dettagliata dell'architettura del modello BERT

L'architettura originale di Transformer utilizza il modello da sequenza a sequenza con un codificatore e un decodificatore. Il codificatore trasforma l'input in incorporamento e il decodificatore trasforma l'incorporamento in output di stringa.

Esempio dell'architettura originale del trasformatore

Di seguito è riportata un'architettura di un'architettura del trasformatore per l'interpretazione del linguaggio.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

L' architettura BERT ha una struttura diversa. A seconda del caso d'uso, impila gli encoder l'uno sull'altro (12 encoder di base o 24 di grandi dimensioni).


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

Come si usa il modello BERT?

  • Utilizzato per modificare l'input in rappresentazione numerica (modificando il testo in incorporamenti di parole).

  • BERT può essere utilizzato come modello pre-addestrato per tutti gli usi, messo a punto per compiti specifici.

Tutto quello che devi sapere su come funziona BERT

Il modello BERT NLP , al centro, è stato addestrato su 2500 milioni di parole in Wikipedia e 800 milioni sui libri . BERT è stato formato su due metodi di modellazione:

  1. MODELLO IN LINGUA MASCHERA (MLM)

  2. PREVISIONE DELLA PROSSIMA FRASE (NSP)

Questi modelli vengono utilizzati in pratica anche per mettere a punto il testo quando si esegue l'elaborazione del linguaggio naturale con BERT .


Modello di linguaggio mascherato (MLM)

C'era una piccola introduzione al modello del linguaggio mascherato nella sezione precedente. In MLM, una certa percentuale del corpus è nascosta o mascherata e addestrata. A BERT viene assegnato un gruppo di parole o frasi e i pesi contestuali vengono massimizzati per produrre la frase sull'altro lato. Una frase incompleta viene inserita in BERT e un output viene ricevuto nei termini più semplici.


Consideriamo la seguente frase di esempio:


In un anno, ci sono [MASK] mesi in cui [MASK] è il primo.

Le parole chiave [MASKS] nella frase sopra rappresentano le maschere. È una forma di Colmare le lacune (usata nelle scuole per impostare le domande utilizzate nei test/questionari).


Puoi indovinare cosa c'è negli spazi vuoti delle maschere nella frase sopra per renderlo completo. La prima parte della frase In un anno ci aiuta a sbloccare la frase, e da lì diventa molto semplice capire. La parola mese funge da soggetto per l'ultima parte della frase e in cui viene utilizzata per combinare le diverse parti della frase. Questo è stato facile da scomporre perché comprendiamo il peso contestuale di queste parole e, soprattutto, conosciamo le espressioni linguistiche della lingua inglese.


Affinché BERT completi la frase, deve leggere molto e imparare molto bene i modelli linguistici della lingua. BERT potrebbe non sapere quale mese, anno siano --- ma è inevitabile che, dato il vasto corpus di parole per apprendere gli schemi e il contesto delle parole, le risposte siano probabilmente dodici e gennaio.


In pratica, il 15% delle parole di una frase o di un corpus di testo viene mascherato per ottimizzare il risultato di output. Se ci sono 20 parole in una frase, 2/3 possono essere mascherate. Una funzione di mascheramento alla fine dell'input (dall'immagine sopra) può aiutare a creare la frase mascherata. Ricordiamo che la base di questo modello è aiutare a migliorare la comprensione contestuale tra le parole di una frase.


Previsione Prossima Frase (Next Sentence Predict NSP)

Mentre il MLM sta allenando la relazione tra le parole, la previsione della frase successiva (NSP) cerca di creare una relazione a lungo termine tra le frasi. Il documento BERT originale di Google menzionava che il modello funzionava male in ogni metrica misurata quando non veniva utilizzato NSP .

Cos'è l'NSP e cosa centra BERT?

NSP prevede di dare a BERT due frasi, la frase 1 e la frase 2. Quindi, a BERT viene posta la domanda: "Ehi BERT, LA FRASE 1 VIENE DOPO LA FRASE 2?" --- e BERT risponde con isNextSentence o NotNextSentence.


Considera le seguenti tre frasi di seguito:

  1. Marco è tornato a casa dopo aver giocato a calcio davanti alla casa del suo amico per tre ore.

  2. Nella Via Lattea ci sono otto pianeti e la Terra non è né la più piccola né la più grande.

  3. Una volta a casa, Marco mangiò il cibo rimanente che aveva lasciato nel frigorifero e si addormentò sul pavimento.

Quale delle frasi diresti seguisse l'altra logicamente? 2 dopo 1? Probabilmente no. Queste sono le domande a cui BERT dovrebbe rispondere.


La frase 3 viene dopo 1 a causa del follow-up contestuale in entrambe le frasi. In secondo luogo, un facile takeaway è che entrambe le frasi contengono "Marco". Formazione BERT con NSP dopo MLM rende comprensibile in misura ragionevole le connotazioni linguistiche e le proprietà della lingua in buona misura.

Applicazioni del modello BERT

  • Abbinamento e recupero di documenti in base a un testo o a un gruppo di parole fornite.

  • Riepilogo del testo: riepilogo di corpus/documenti di grandi dimensioni in porzioni più piccole da consumare.

  • Evidenzia i paragrafi con punti di ingresso cruciali quando viene posta una domanda.

  • Ricerca Google: in precedenza, la corrispondenza delle parole veniva utilizzata durante la ricerca di parole su Internet. Se una persona cercava "Voli da Lagos al Kenya", c'era un'alta probabilità di mostrare siti che includevano voli "Kenya a Lagos" tra i primi risultati. BERT utilizza invece la corrispondenza contestualizzata invece della sola corrispondenza delle parole.

  • Analisi del sentimento

  • Risposte alle domande

  • Traduzione in lingua

Vantaggi dell'utilizzo del modello BERT rispetto ad altri modelli

  • BERT funziona bene per modelli specifici per attività. Il modello BERT è stato addestrato su un corpus di grandi dimensioni, il che lo rende più facile per compiti più piccoli e definiti. Le metriche possono essere ottimizzate e utilizzate immediatamente.

  • L'accuratezza del modello è eccezionale perché viene aggiornato frequentemente. Puoi raggiungere questo obiettivo con una messa a punto di successo.

  • Il modello BERT è disponibile e pre-addestrato in più di 100 lingue. Questo può essere utile per progetti che non sono basati sull'inglese.

Svantaggi del modello BERT

La maggior parte degli svantaggi di BERT può essere collegata alle sue dimensioni. Sebbene l'addestramento dei dati su un corpus di grandi dimensioni aiuti in modo significativo il modo in cui il computer prevede e apprende, c'è anche un altro aspetto. Loro includono:

  • Il modello è grande a causa della struttura e del corpus di formazione.

  • È lento da allenare perché è grande e ci sono molti pesi da aggiornare.

  • È costoso. Richiede più calcoli a causa delle sue dimensioni, il che ha un costo.

  • È progettato per essere inserito in altri sistemi (non un programma autonomo) e, per questo motivo, deve essere messo a punto per le attività a valle, che possono essere complicate.

Errori comuni da evitare quando si lavora con il modello BERT

Questi sono alcuni errori comuni che gli ingegneri NLP o i data scientist commettono quando utilizzano BERT -

  • Tipo di token utilizzato: il tokenizer WordPiece deve essere utilizzato quando si utilizza BERT. Devi usare lo stesso tipo di tokenizer originariamente utilizzato per addestrare BERT ad addestrare il tuo modello.

  • Modello BERT di formazione da zero. Usa modelli pre-addestrati invece di addestrare nuovi modelli quando usi BERT. Questo è molto costoso e non è consigliabile farlo.

  • Problemi specifici del compito. Per alcune attività, durante la messa a punto, i risultati delle esecuzioni non convergeranno (noto anche come degenerazione). Questo di solito dipende dalle attività e si consiglia di essere aggressivi con l'arresto anticipato durante la messa a punto da soli.


Tutorial con python e un modello BERT

Uso di BERT per l'analisi del sentimento PyTorch

L'analisi del sentimento è una tecnica di elaborazione del linguaggio naturale utilizzata per determinare il sentimento di un corpus di parole. Viene utilizzato per determinare il grado di positività o negatività di un gruppo di parole. L'analisi del sentimento trova enormi applicazioni nell'analisi di recensioni, valutazioni o feedback.


Le aziende e le organizzazioni utilizzano l'analisi del sentiment per analizzare i propri prodotti o servizi in movimento. Questo feedback aiuta l'organizzazione a conoscere le aree in cui migliorare e illumina il pubblico futuro e gli utenti dei prodotti su cosa aspettarsi. Questa è anche una buona indicazione se una persona interessata acquista il prodotto o servizio. L'innovazione e il miglioramento dei modelli linguistici degli ultimi anni hanno fatto sì che il management delle aziende richieda solitamente questo tipo di analisi. Quasi tutte le attività redditizie hanno una piattaforma di feedback per i propri clienti.


Esploreremo un breve esempio di BERT per l'analisi del sentimento per capire come BERT viene utilizzato nella pratica.


Impostare l'ambiente di lavoro per usare BERT

Una buona pratica consiste nell'impostare un nuovo ambiente virtuale per i progetti, soprattutto quando si installano nuove dipendenze sul computer. Questo per garantire che le librerie principali non siano interessate se un problema di installazione richiede un ripristino. Il notebook Jupyter verrà utilizzato per questo progetto. Per anaconda, puoi creare un ambiente virtuale con il seguente comando:



conda create --name nlp_bert

Qui, per un facile richiamo, nlp_bert viene utilizzato come nome. Puoi sostituirlo con qualsiasi nome con cui ti senti più a tuo agio.

Installazione delle dipendenze richieste per lavorare con BERT

PyTorch

Sul sito Web di PyTorch , ci sono alcune selezioni tra cui scegliere a seconda del sistema operativo e del metodo di installazione che verranno utilizzati:


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

L'opzione CUDA è per computer con una scheda grafica (ad esempio, la scheda grafica NVidia), quindi la CPU rimane l'opzione più sicura. La maggior parte dei data scientist utilizza anaconda, quindi verrà selezionata l'opzione conda.


Modello BERT pre-addestrato

Per questo esempio di progetto NLP , utilizzeremo il modello BERT pre-addestrato di Huggingface . Il codice per l'installazione della dipendenza è:



conda install -c huggingface transformers

Ricordiamo che uno dei punti precedenti (nella sezione degli errori standard) sta creando un modello BERT da zero. Huggingface ha sviluppato un modello BERT open source che possiamo usare per questo esempio.


Importare le librerie richieste per usare il modello BERT


import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

Istanziazione del modello BERT

Creerai il token in questa sezione di codice e il modello caricato da Huggingface. La prima volta che il modello viene caricato, verrà scaricato sul tuo computer e potrebbe richiedere del tempo.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

I collegamenti tra parentesi rappresentano la sezione finale all'URL del sito Web, fungendo di fatto da API (Application Programming Interface).


Analisi del sentimento con il Modello BERT

Calcoleremo il Sentimento per tre diverse frasi per spiegare come funziona. Va da 1 a 5 dove 1 è negativo e 5 è positivo.


Diamo un'occhiata ai sentimenti delle frasi nell'immagine che viene mostrata sopra:

  1. Il film è fantastico. Lo consiglierei a chiunque.

  2. Il film è proprio lì. Avrebbe potuto essere migliore.

  3. Ho perso tempo a guardare quel film. Era così assolutamente terribile

Per la prima frase, il token viene creato tokenizzando il testo di input. I sensori di ritorno sono impostati su "pt" che significa PyTorch. I nostri token sono in un elenco di elenchi, quindi l'indicizzazione restituisce l'elenco con i token delle frasi.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

La funzione tokenizer.decode() sopra non è necessaria per l'analisi del sentiment ed è per evidenziare i token speciali che sono stati spiegati in precedenza nella prima sezione. [CLS] e [SEP] sono caratteri speciali che rappresentano rispettivamente la classificazione e il separatore di frase.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

I logit con il valore più alto sono da dove verrà il valore analitico del sentiment. Logits è lo strato finale in una rete neurale che restituisce i valori grezzi per la previsione. Logit è il tensore utilizzato dalla funzione argmax per restituire la classe prevista.


Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

A prima vista, il punteggio semantico può essere facilmente calcolato perché il modello utilizzato è stato pre-addestrato utilizzando i metodi spiegati nelle sezioni precedenti. A seconda del progetto e del caso d'uso, è possibile ottimizzare i parametri per soddisfare i requisiti.


Per calcolare i sentimenti per le tre recensioni campione. Creerai una funzione come mostrato di seguito :

Cos’è Google BERT dalla spiegazione al codice python
Cos’è Google BERT dalla spiegazione al codice python

Per ciascuna delle frasi, il punteggio semantico corrisponde logicamente alle nostre frasi. “Il film è fantastico. Lo consiglierei” è una recensione molto positiva e come tale ha il punteggio positivo più alto, che è 5.


Puoi fare il passo successivo raccogliendo sul web numerose recensioni o feedback da una piattaforma di prodotti e generando un punteggio sematico del feedback complessivo del prodotto o servizio.


Modello BERT Conlusioni

La comprensione contestuale delle frasi ha creato limiti significativi nell'elaborazione del linguaggio naturale. La continua innovazione su questo argomento diventerà ancora più precisa in futuro. Tutti questi miglioramenti possono essere ricondotti all'attenzione – l' auto-attenzione .


Questo articolo semplifica il moello google BERT per una facile comprensione. Abbiamo iniziato con la frase : BERT è un modello linguistico preciso, enorme, mascherato . La scomposizione dei termini tecnici utilizzati nella frase ha aiutato a fornire una breve panoramica di cosa tratta il modello e di cosa cerca di ottenere.


Il modo in cui viene creato offre una panoramica di ciò che accade dietro le quinte e l'analisi del sentimento è un esempio di come viene utilizzato nella pratica questo moello.


Vuoi mettere in pratica quello che hai letto ?


Oppure segui i tutorial correlati :



PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page