BERT: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 4: | Riga 4: | ||
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. | 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 | Nel ''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 | Per il compito di ''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 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. |
Versione delle 06:07, 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 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 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