BERT: differenze tra le versioni

Da Wiki AI.
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
Modello bidirezionale, Encoder-only, implementato da Google nel 2018, basato sull'architettura transformer originale proposta [[Attention Is All You Need (2017)|Attention Is All You Need (2017).]] E' un modello pensato, da design, per essere oggetto di fine-tuning successivo utilizzando per esempio una "testa" di classificazione o di [[Named Entity Regognition (NER)|named entity recognition]],
=== Pre-training auto-supervisionato in BERT ===
L'obiettivo del pre-training è duplice basato su [[Masked-Language-Modeling (MLM)|Masked-Language-Modeling (MLM]] e [[Next Sentence Prediction (NSP)]]. La codifica dell'input [https://github.com/google-research/bert/blob/master/create_pretraining_data.py] è d'interesse.
Nel '''Modello di Lingua Mascherato''' (MLM, ''Masked Language Model''), token casuali in una sequenza vengono sostituiti con un token '''[MASK]''', e il modello viene addestrato a prevedere il token originale basandosi sul suo contesto. La funzione ''create_masked_lm_predictions'' nello script gestisce ciò selezionando i token da mascherare e preparando i token mascherati (''masked_lm_ids'') e le loro posizioni (''masked_lm_positions''). Durante l'addestramento, il modello produce previsioni per le posizioni mascherate, e la perdita viene calcolata in base a quanto bene il modello prevede i token originali (''masked_lm_labels'').
Per il compito di '''Predizione della Prossima Frase''' (NSP, ''Next Sentence Prediction''), al modello vengono date coppie di frasi e deve prevedere se la seconda frase segue logicamente la prima. Nello script, coppie di frasi (segmenti A e B) sono preparate con una probabilità del 50% che il segmento B segua il segmento A (''is_random_next=False'') o sia una frase casuale dal corpus (''is_random_next=True''). Il flag ''is_random_next'' serve come etichetta per questo compito. Il modello produce una previsione per questo compito binario, e la perdita viene calcolata in base all'accuratezza di queste previsioni.
- Per MLM, le etichette sono gli ID dei token originali dei token mascherati. La perdita viene calcolata come l'entropia incrociata tra le probabilità predette delle posizioni mascherate e gli ID dei token veri.
- Per NSP, l'etichetta è se la seconda frase segue veramente la prima (''is_random_next''). La perdita è l'entropia incrociata binaria tra la previsione del modello e la relazione reale.
Entrambe le perdite possono essere combinate per addestrare BERT in modo auto-supervisionato, sfruttando dati di testo non etichettati per imparare rappresentazioni ricche della lingua.




=== Links ===
=== Links ===
[https://arxiv.org/pdf/1810.04805.pdf BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (24/05/2019)]
[https://arxiv.org/pdf/1810.04805.pdf BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (24/05/2019)]
https://github.com/google-research/bert


[https://arxiv.org/pdf/1905.05583.pdf How to Fine Tune Bert for Sequence Classification?]  
[https://arxiv.org/pdf/1905.05583.pdf How to Fine Tune Bert for Sequence Classification?]  

Versione delle 06:06, 24 mar 2024

Modello bidirezionale, Encoder-only, implementato da Google nel 2018, basato sull'architettura transformer originale proposta Attention Is All You Need (2017). E' un modello pensato, da design, per essere oggetto di fine-tuning successivo utilizzando per esempio una "testa" di classificazione o di named entity recognition,

Pre-training auto-supervisionato in BERT

L'obiettivo del pre-training è duplice basato su Masked-Language-Modeling (MLM e Next Sentence Prediction (NSP). La codifica dell'input [1] è d'interesse.

Nel Modello di Lingua Mascherato (MLM, Masked Language Model), token casuali in una sequenza vengono sostituiti con un token [MASK], e il modello viene addestrato a prevedere il token originale basandosi sul suo contesto. La funzione create_masked_lm_predictions nello script gestisce ciò selezionando i token da mascherare e preparando i token mascherati (masked_lm_ids) e le loro posizioni (masked_lm_positions). Durante l'addestramento, il modello produce previsioni per le posizioni mascherate, e la perdita viene calcolata in base a quanto bene il modello prevede i token originali (masked_lm_labels).

Per il compito di Predizione della Prossima Frase (NSP, Next Sentence Prediction), al modello vengono date coppie di frasi e deve prevedere se la seconda frase segue logicamente la prima. Nello script, coppie di frasi (segmenti A e B) sono preparate con una probabilità del 50% che il segmento B segua il segmento A (is_random_next=False) o sia una frase casuale dal corpus (is_random_next=True). Il flag is_random_next serve come etichetta per questo compito. Il modello produce una previsione per questo compito binario, e la perdita viene calcolata in base all'accuratezza di queste previsioni.

- Per MLM, le etichette sono gli ID dei token originali dei token mascherati. La perdita viene calcolata come l'entropia incrociata tra le probabilità predette delle posizioni mascherate e gli ID dei token veri. - Per NSP, l'etichetta è se la seconda frase segue veramente la prima (is_random_next). La perdita è l'entropia incrociata binaria tra la previsione del modello e la relazione reale.

Entrambe le perdite possono essere combinate per addestrare BERT in modo auto-supervisionato, sfruttando dati di testo non etichettati per imparare rappresentazioni ricche della lingua.


Links

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (24/05/2019)

https://github.com/google-research/bert

How to Fine Tune Bert for Sequence Classification?

https://www.kaggle.com/discussions/questions-and-answers/86510

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks (SBERT): modello successivo a BERT con migliori risultati sui benchmark di Semantic Textual Similarity (STS)

https://discuss.huggingface.co/t/significance-of-the-cls-token/3180