BERT: differenze tra le versioni
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