Βελτιωμένος συντονισμός BERT με μοντελοποίηση μάσκας γλώσσας –

Βελτιωμένος συντονισμός BERT με μοντελοποίηση μάσκας γλώσσας –

September 29, 2022 0 Von admin

Αυτό το άρθρο δημοσιεύτηκε ως μέρος του Data Science Blogathon.

Εισαγωγή

Μία από τις καλύτερες επεξεργασίες φυσικής γλώσσας είναι η ανάπτυξη του μοντέλου Transformer. Όποιος ενδιαφέρεται να κάνει μια βαθιά βουτιά στην αρχιτεκτονική ολόκληρου του μοντέλου μετασχηματιστή μπορεί να ανατρέξει σε αυτόν τον σύνδεσμο. Από ύψος 10.000 ποδιών, ο μετασχηματιστής είναι ένα μοντέλο κωδικοποιητή-αποκωδικοποιητή με πολλαπλή αυτοπροσοχή, άλλες εργασίες όπως η Ανάλυση συναισθήματος, η Αναγνώριση Ονομαστικής Οντότητας, η Ερώτηση-Απάντηση και η Επισήμανση μέρους της ομιλίας κ.λπ., δεν χρειάζονται ολόκληρο το μοντέλο μετασχηματιστή αλλά μόνο ο κωδικοποιητής ή το τμήμα του αποκωδικοποιητή.

ΜΠΕΡΤ

Το BERT σημαίνει „Αμφίδρομες αναπαραστάσεις κωδικοποιητή από τους μετασχηματιστές“ που αναπαράγει την αρχιτεκτονική κωδικοποιητή του μοντέλου μετασχηματιστή με μια βαθύτερη στοίβα κωδικοποιητή. Το μοντέλο ονομάζεται αμφίδρομο επειδή μπορεί ταυτόχρονα να συγκεντρώσει το πλαίσιο μιας λέξης από οποιαδήποτε κατεύθυνση. Οι ερευνητές στο Google Brain έχουν σχεδιάσει το μοντέλο BERT σαν ένα προεκπαιδευμένο μοντέλο που μπορεί να ρυθμιστεί με ακρίβεια προσθέτοντας μία μόνο κεφαλή μοντέλου για την επίλυση των διαφόρων προβλημάτων NLP. Για να δώσουμε περισσότερη προοπτική σε αυτό, το βασικό μοντέλο BERT είναι το ίδιο για τις δύο συγκεκριμένες εργασίες NLP, την Ανάλυση συναισθήματος και την Αναγνώριση Ονομασμένης Οντότητας, αλλά η κεφαλή του μοντέλου αλλάζει για τις δύο εργασίες. Ένα εννοιολογικό διάγραμμα για το ίδιο είναι:

μοντέλο BERT

Κίνητρο

Εκμάθηση μεταφοράς βρίσκεται στον πυρήνα της τεράστιας εξέλιξης στο Computer Vision. Στη μεταφορά μάθησης, ένα βαθύ Νευρικό σύστημα είναι προεκπαιδευμένο σε ένα μεγάλο σύνολο δεδομένων, για παράδειγμα, το σύνολο δεδομένων ImageNet, το οποίο στη συνέχεια ρυθμίζεται με ακρίβεια σε ένα σύνολο δεδομένων για συγκεκριμένη εργασία. Τα οφέλη της μάθησης μεταφοράς είναι:

  • Η εκπαίδευση απαιτεί πολύ λίγα
    δεδομένα.
  • Ο χρόνος προπόνησης είναι μικρότερος.
  • Απαιτεί πολύ λιγότερους υπολογισμούς
    εξουσία.
  • Το συνολικό αποτύπωμα άνθρακα του
    ο κόσμος είναι λιγότερος.

Ωστόσο, το ίδιο δεν ήταν δημοφιλές σε επεξεργασία φυσικής γλώσσας, και οι άνθρωποι έπρεπε να σχεδιάσουν τα μοντέλα τους, εκπαιδευμένοι από την αρχή, και έτσι να μην μπορούν να καρπωθούν τα οφέλη της μεταβίβασης της μάθησης. Η ανάπτυξη ενός προεκπαιδευμένου γλωσσικού μοντέλου όπως το BERT ήταν ένα όφελος για την κοινότητα του NLP, με αποτέλεσμα να εκτελούνται πολλές εργασίες NLP με ελάχιστο χρόνο και υπολογισμό.

Λεπτομερής Αρχιτεκτονική Μοντέλου BERT

Όπως αναφέρθηκε προηγουμένως, το BERT είναι πολλαπλά επίπεδα κωδικοποιητών Transformer που στοιβάζονται το ένα πάνω στο άλλο. Ανάλογα με τον αριθμό των στρωμάτων κωδικοποιητή, τον αριθμό των κεφαλών αυτοπροσοχής και το κρυφό διανυσματικό μέγεθος, το BERT κατηγοριοποιείται σε δύο τύπους: BERTΒΑΣΗ και ΜΠΕΡΤΜΕΓΑΛΟ. Ο παρακάτω πίνακας δίνει μια αριθμητική σύγκριση μεταξύ των δύο:

Λεπτομερής Αρχιτεκτονική

Παρακάτω είναι η εικονογραφική αναπαράσταση ενός BERTΒΑΣΗ μοντέλο που χρησιμοποιείται για την εργασία Μοντελοποίηση μάσκας γλώσσας:

Μοντέλο BERT

Η είσοδος στο μοντέλο αποτελείται από τρία μέρη:

  • Ενσωμάτωση θέσης παίρνει τον αριθμό ευρετηρίου του διακριτικού εισόδου.
  • Ενσωμάτωση τμήματος λέει τον αριθμό της πρότασης στην ακολουθία των προτάσεων.
  • Token Embedding κρατά το σύνολο των Tokens για τις λέξεις που δίνονται από το
    tokenizer.

Όλες οι ενσωματώσεις είναι προστέθηκε και τροφοδοτήθηκε στο μοντέλο BERT. Όπως φαίνεται παραπάνω, το BERTBASE μπορεί να απορροφήσει έναν μέγιστο αριθμό 512 διακριτικών. Η είσοδος στο μοντέλο διασχίζει διαδοχικά μέσα από μια στοίβα 12 στρωμάτων κωδικοποιητή (L=12), όπου το καθένα έχει 12 κεφαλές αυτοπροσοχής (A=12) και εξάγει τον ίδιο αριθμό διακριτικών όπως στην είσοδο, και έχει Διάσταση 768 Στο τελικό επίπεδο, μια κεφαλή μοντέλου για MLM στοιβάζεται πάνω από το μοντέλο πυρήνα BERT και εξάγει τον ίδιο αριθμό διακριτικών όπως στην είσοδο. Και η Διάσταση για όλα τα διακριτικά αλλάζει στο μέγεθος του λεξιλογίου εισόδου που δίνεται από Ν. Τέλος, μια συνάρτηση softmax που εφαρμόζεται στα logit εξόδου δίνει το προβλεπόμενο διακριτικό από το μοντέλο.

Tokenizer

Ένα Tokenizer WordPiece κάνει tokenize το κείμενο εισόδου. Το tokenizer έχει ένα λεξιλόγιο μεγέθους 30000. Το πρώτο διακριτικό (στη θέση ευρετηρίου 0) που δίνεται από το tokenizer στην είσοδο είναι ένα Special token που δίνεται από [CLS] ονομάζεται διακριτικό ταξινόμησης. Για εργασίες ταξινόμησης όπως η ανάλυση συναισθήματος κ.λπ., χρησιμοποιούμε την τελική κρυφή κατάσταση του τελευταίου επιπέδου κωδικοποιητή που αντιστοιχεί στο [CLS] ένδειξη. Χρησιμοποιούμε ένα διαχωριστικό διακριτικό που δίνεται από [SEP] για την ένδειξη δύο διαφορετικών προτάσεων. Και για τη συγκάλυψη μιας λέξης, το διακριτικό [MASK] χρησιμοποιείται από το tokenizer. Εκτός από αυτά τα Special token, άλλα είναι τα κανονικά. Η έξοδος του tokenizer έχει τρία μέρη:

  • input_ids: Αυτά είναι τα πραγματικά διακριτικά για τη συμβολοσειρά εισόδου.
  • προσοχή_μάσκα: Αυτά είναι ένα σύνολο από δυαδικά διακριτικά που υποδεικνύουν ποιο
    Τα διακριτικά είναι τα πραγματικά κουπόνια εισόδου και ποια είναι τα κουπόνια συμπλήρωσης.
  • token_type_ids: Αυτά είναι δυαδικά διακριτικά που καθορίζουν εάν το διακριτικό
    ανήκει στην πρώτη πρόταση ή στη δεύτερη σε μια ακολουθία δύο
    προτάσεις.

Εάν όλα αυτά φαίνονται μπερδεμένα, μην ανησυχείτε, θα καθαρίσω τον αέρα στην ενότητα κωδικών. Προς το παρόν, πιάστε όσα περισσότερα μπορείτε.

Προεκπαίδευση του μοντέλου BERT

Καθώς ο στόχος πίσω από το BERT είναι η μεταβιβαστική μάθηση, η προεκπαίδευση παραμένει στο επίκεντρο ολόκληρης της συζήτησης. Στην αρχική ερευνητική εργασία, το βασικό μοντέλο BERT εκπαιδεύεται σε δύο αυτοεποπτευόμενες μαθησιακές εργασίες με δύο επικεφαλής μοντέλων όπως δίνονται παρακάτω:

  • Μασκοφόρο μοντέλο γλώσσας: Σε αυτήν την προσέγγιση πριν από την εκπαίδευση, ορισμένα διακριτικά εισόδου καλύπτονται με το [MASK] ένδειξη. Στη συνέχεια, το μοντέλο εκπαιδεύεται να προβλέπει τα καλυμμένα Tokens συλλέγοντας το πλαίσιο από τα γύρω Tokens. Οι ερευνητές, στα πειράματά τους, βρήκαν τα καλύτερα αποτελέσματα καλύπτοντας περίπου το 15% των διακριτικών εισόδου τυχαία.
  • Πρόβλεψη επόμενης πρότασης: Αυτή είναι μια δυαδική εργασία ταξινόμησης στην οποία χρησιμοποιούμε το διακριτικό εξόδου που αντιστοιχεί στο [CLS] κουπόνι για μοντελοποίηση. Ο στόχος είναι να προβλέψουμε εάν η δεύτερη πρόταση είναι η επόμενη πρόταση. Για την εκπαίδευση του μοντέλου, δημιουργούμε με μη αυτόματο τρόπο το σύνολο δεδομένων, έτσι ώστε το 50% του χρόνου, δίνουμε την πραγματική πρόταση ως επόμενη πρόταση με ετικέτα στόχο 1, και το 50% των περιπτώσεων, η δεύτερη πρόταση είναι μια τυχαία πρόταση με μια ετικέτα στόχου 0

Τέλος, η συνολική απώλεια του προ-προπονητικού μοντέλου είναι ο μέσος όρος των δύο εργασιών που αναφέρθηκαν παραπάνω.

Βελτιστοποίηση του μοντέλου BERT

Στις προηγούμενες ενότητες, έχουμε μια ουσία της αρχιτεκτονικής ενός μοντέλου BERT βανίλιας. Εδώ θα τελειοποιήσουμε ένα ήδη προεκπαιδευμένο μοντέλο BERT χρησιμοποιώντας μοντελοποίηση γλώσσας με μάσκα.

Εισαγωγή βιβλιοθηκών

from transformers import BertTokenizer, TFBertForMaskedLM
import tensorflow as tf
import os
import numpy as np
import re
import matplotlib.pyplot as plt

Φόρτωση του προεκπαιδευμένου μοντέλου BERT

Εισάγουμε ένα προεκπαιδευμένο tokenizer BERT και ένα μοντέλο BERT με κεφαλή MLM από το αποθετήριο Hugging Face.

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = TFBertForMaskedLM.from_pretrained('bert-base-uncased')

Όπως μπορούμε να δούμε, το Wordpiece Tokenizer που χρησιμοποιείται για τελειοποίηση είναι BertTokenizer. Το μοντέλο που χρησιμοποιείται είναι TFBertForMaskedLM, ένα μοντέλο BERT με κεφαλή MLM που μπορεί να δεχθεί μόνο τανυστές Tensorflow. Και στα δύο, το σημείο ελέγχου που χρησιμοποιείται είναι μπερτ-βάση-ακάλυπτος. Ας δούμε την περίληψη του μοντέλου:

model.summary()

Layer (type)                Output Shape              Param #   

=================================================================

 bert (TFBertMainLayer)      multiple                  108891648 

 mlm___cls (TFBertMLMHead)   multiple                  24459834
=================================================================

Σύνολο παραμέτρων: 109.514.298

Εκπαιδεύσιμες παράμετροι: 109.514.298

Μη εκπαιδεύσιμες παράμετροι: 0

From the summary, we can see that there are two blocks of layers, one is the core BERT layer and the other is the MLM model head layer.

Dataset

The dataset that we will use for fine-tuning the BERT-MLM model is the textbook named The Hunger Games. The same can be downloaded using this link. Let’s read the text from a local directory:

 with open('The Hunger Games.txt','r') as f:
    file = f.read().split(".")

Λαμβάνουμε μια μόνο πρόταση που τελειώνει με τελεία ως είσοδο στο μοντέλο. Καθώς δεν προπονούμαστε σε NSP, δεν παίρνουμε ένα σύνολο δύο προτάσεων. Μια πιο προσεκτική ματιά στο αρχείο κειμένου θα αποκαλύψει ότι περιέχει πολλά σημεία στίξης και άλλους χαρακτήρες που δεν είναι ASCII που δεν προσθέτουν μεγάλη αξία στο μοντέλο και ως εκ τούτου καθαρίζονται.

def clean_text(line):
    line = re.sub(r'-+',' ',line)
    line = re.sub(r'[^a-zA-Z, ]+'," ",line)
    line = re.sub(r'[ ]+'," ",line)
    line += "."
    return line

Επίσης, παρατηρείται ότι ορισμένες προτάσεις είναι μικρές και η κάλυψη μερικών διακριτικών θα αφαιρούσε ένα σημαντικό μέρος του πλαισίου από την πρόταση. Ως εκ τούτου, οι προτάσεις λιγότερες από 20 λέξεις αφαιρούνται από το σώμα.

text_lst = []
len_lst = []
for line in file:
    if len(line.split(" ")) >=20:
        line = clean_text(line)
        text_lst.append(line)
        len_lst.append(len(line.split(" ")))

Ο κωδικός πάνω από τη λίστα text_lst, κρατά όλες τις προτάσεις με μήκος μεγαλύτερο ή ίσο με 20 και τη λίστα len_lst κρατά το μήκος όλων των προτάσεων». Μπορούμε να ελέγξουμε τον αριθμό των διαθέσιμων προτάσεων μετά το φιλτράρισμα με τον κωδικό len(text_lst) που βγαίνει ως 1567 και μπορούμε επίσης να ελέγξουμε τη μεγαλύτερη πρόταση με τον κωδικό max(len_lst) που είναι 87.

Tokenizing των δεδομένων

Η είσοδος είναι μια λίστα προτάσεων που δεν μπορούν να τροφοδοτηθούν απευθείας σε κανένα μοντέλο βαθιάς μάθησης, επειδή αυτό που μπορεί να καταλάβει μια μηχανή είναι αριθμοί και όχι κείμενα. Επομένως, διαμορφώνουμε το κείμενο σε ορισμένους αριθμούς, όπως φαίνεται στις παρακάτω γραμμές κώδικα.

inputs = tokenizer(text_lst,max_length=100,truncation=True,padding='max_length',return_tensors="tf")

print(inputs.keys())

>> dict_keys(['input_ids', 'token_type_ids', 'attention_mask'])

Στη μέθοδο του tokenizer, text_lst είναι το σώμα κειμένου, μέγιστο μήκος προτείνει τον μέγιστο αριθμό επιτρεπόμενων διακριτικών εισόδου (το μέγιστο είναι 512 για τη βάση BERT) και περικοπή Το ορισμένο σε True υποδεικνύει ότι εάν το μέγεθος εισόδου είναι μεγαλύτερο από το max_length, τότε το διακριτικό από τον αριθμό ευρετηρίου ίσο με το max_length θα περικοπεί, δηλαδή, για το παράδειγμά μας, τα διακριτικά εισόδου από τον δείκτη 100 θα απορριφθούν, υλικό παραγεμίσματος Το ορισμένο σε True υποδηλώνει ότι το μήκος εισόδου είναι μικρότερο από το max_length που συμπληρώνονται, με το διακριτικό συμπλήρωσης 0 και, τέλος, επιστροφή_τανυστών υποδεικνύει σε ποια μορφή θέλουμε ο τανυστής εξόδου και tf υποδηλώνει ότι περιμένουμε tensorflow τανύων μύς. Το tokenizer εδώ επιστρέφει τρία πεδία, όπως έχουμε αναφέρει προηγουμένως.

Τώρα αν δούμε το „εισροές» με την εκτύπωση κώδικα(εισόδους), μπορούμε να δούμε ότι το input_ids Ο τανυστής έχει σχήμα 1567×100 και κάθε σειρά ξεκινά με το διακριτικό 101, το οποίο είναι το αναγνωριστικό για το ειδικό διακριτικό [CLS] και τελειώνει με 0 που είναι το διακριτικό συμπλήρωσης που υποδεικνύει ότι το μήκος της πρότασης είναι μικρότερο από 100. Επίσης, υπάρχει ένα ειδικό διακριτικό 102, το [SEP] διακριτικό, το οποίο δεν είναι ορατό, υποδεικνύοντας το τέλος μιας πρότασης. Δεύτερον, το token_type_ids είναι όλα 0 καθώς υπάρχει μόνο μία πρόταση ως είσοδος. Τέλος, το προσοχή_μάσκα έχει ένα σε τοποθεσίες για τα πραγματικά διακριτικά εισαγωγής και μηδενικά για τα κουπόνια συμπλήρωσης.

Προσθήκη ετικετών

Ο στόχος ενός μοντέλου καλυμμένης γλώσσας είναι να προβλέψει τις καλυμμένες λέξεις συλλέγοντας το πλαίσιο από τις γύρω λέξεις. Με άλλα λόγια, μπορούμε να πούμε ότι πρέπει να ανακατασκευάσουμε την αρχική πρόταση στην έξοδο από τη συγκαλυμμένη πρόταση στην είσοδο. Επομένως, οι ετικέτες στόχου είναι οι πραγματικές input_ids από το tokenizer. Επομένως, προσθέτουμε τις ετικέτες προορισμού στο σύνολο δεδομένων ως εξής:

inputs['labels'] = inputs['input_ids']
inputs.keys()
>> dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'labels'])

Απόκρυψη διακριτικών εισόδου

Στην αρχική ερευνητική εργασία, το 15% των διακριτικών εισόδου ήταν καλυμμένα, εκ των οποίων το 80% αντικαταστάθηκαν με [MASK] μάρκες, το 10% αντικαταστάθηκε με τυχαία διακριτικά και ένα άλλο 10% παρέμεινε ως έχει. Ωστόσο, στην εργασία λεπτομέρειας, αντικαθιστούμε το 15% των διακριτικών εισόδου εκτός από τα ειδικά με [MASK] Δηλαδή, δεν θα αντικαταστήσουμε τους αριθμούς διακριτικών 101,102 και 0 με το διακριτικό μάσκας 103. Στις ακόλουθες γραμμές κωδικών, εφαρμόζεται η ίδια λογική:

inp_ids = []
lbs = []
idx = 0
for inp in inputs.input_ids.numpy():
    actual_tokens = list(set(range(100)) - 
                         set(np.where((inp == 101) | (inp == 102) 
                            | (inp == 0))[0].tolist()))
    #We need to select 15% random tokens from the given list
    num_of_token_to_mask = int(len(actual_tokens)*0.15)
    token_to_mask = np.random.choice(np.array(actual_tokens), 
                                     size=num_of_token_to_mask, 
                                     replace=False).tolist()
    #Now we have the indices where we need to mask the tokens
    inp[token_to_mask] = 103
    inp_ids.append(inp)
    idx += 1
inp_ids = tf.convert_to_tensor(inp_ids)
inputs['input_ids'] = inp_ids

Οι εισαγωγές κώδικα μπορούν να επαληθεύσουν τις τυχαίες αντικαταστάσεις με [MASK] μάρκες.input_ids

Εκπαίδευση του μοντέλου

Τώρα που είμαστε έτοιμοι με τα δεδομένα εισόδου και εξόδου, μπορούμε να προχωρήσουμε στη λεπτομέρεια του μοντέλου BERT χρησιμοποιώντας MLM. Χρησιμοποιούμε φόντο tensorflow για προπόνηση με keras. Χρησιμοποιούμε έναν βελτιστοποιητή Adam με ρυθμό εκμάθησης 0,0001 και η συνάρτηση απώλειας είναι SparseCategoricalCrossentropy με το from_logits σε True καθώς η έξοδος που δίνεται από το μοντέλο δεν κανονικοποιείται με μια συνάρτηση softmax. Επίσης, έχουμε πάρει ένα μέγεθος παρτίδας 8 που μπορεί να διαφέρει ανάλογα με τη ρύθμιση του υλικού και θα εκτελέσουμε το μοντέλο για 10 εποχές και θα παρατηρήσουμε την απώλεια σε κάθε εποχή.

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001),loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True))
history = model.fit([inputs.input_ids,inputs.attention_mask],inputs.labels,verbose=1,batch_size=8,epochs=10)

Μετά την προπόνηση, ας σχεδιάσουμε την καμπύλη απώλειας έναντι εποχής ως εξής

losses = history.history['loss']
fig = plt.figure(figsize=(5,5))
ax1 = fig.add_subplot(111)
ax1.plot(range(len(losses)),losses)
ax1.set_xlabel("Epochs")
ax1.set_ylabel("Loss")
ax1.set_title("Epoch vs Loss")
plt.grid()
plt.show()
εποχή εναντίον απώλειας

Όπως βλέπουμε, η απώλεια μειώνεται συνεχώς, γεγονός που δείχνει ότι το μοντέλο συγκλίνει. Μέχρι την 6η εποχή, η απώλεια δεν μειώνεται, πράγμα που σημαίνει ότι το μοντέλο έχει συγκλίνει πλήρως και είναι έτοιμο για συμπέρασμα.

Δοκιμή με σημείο ερωτήματος

Τώρα που το μοντέλο έχει τελειοποιηθεί με τα δεδομένα μας, ας δοκιμάσουμε το μοντέλο με ένα σημείο ερωτήματος.

query = "Good morning [MASK], have a [MASK] day"
inp = tokenizer(query,return_tensors="tf")
mask_loc = np.where(inp.input_ids.numpy()[0] == 103)[0].tolist()
out = model(inp).logits[0].numpy()
predicted_tokens = np.argmax(out[mask_loc],axis=1).tolist()
tokenizer.decode(predicted_tokens)
#outputs
>>'everybody good'

Το σημείο ερωτήματος στις παραπάνω γραμμές κώδικα είναι μια συμβολοσειρά με δύο διακριτικά μάσκας. Αφού κάνουμε tokening το κείμενο του ερωτήματος, τροφοδοτούμε τις εισόδους με διακριτικό στο μοντέλο για την πρόβλεψη των διακριτικών μάσκας. Και όπως μπορούμε να δούμε, τα δύο διακριτικά μάσκας που προβλέπει το μοντέλο είναι όλοι και Καλός και ως εκ τούτου, το προτεινόμενο κείμενο από το μοντέλο είναι „Καλημέρα σε όλους», καλή σας μέρα που φαίνεται εύλογη προπ

συμπέρασμα

Η εκπαίδευση ενός μοντέλου BERT για πολλούς από εμάς είναι ένα αίνιγμα, δεδομένου ότι δεν υπάρχει σαφής τεκμηρίωση για το ίδιο. Το πρωτότυπο ερευνητική εργασία γρατσουνίζει μόνο την επιφάνεια της προπονητικής διαδικασίας. Από τη συζήτησή μας μέχρι τώρα στο BERT, είδαμε αναλυτικά τα ακόλουθα σημεία:

  • Το βασικό μπλοκ διάγραμμα του BERT για MLM.
  • Το κίνητρο πίσω από την ανάπτυξη του μοντέλου BERT.
  • Η λεπτομερής αρχιτεκτονική για την εκπαίδευση του μοντέλου BERT.
  • Tokenizer για την εκπαίδευση του μοντέλου.
  • Οι δύο αυτοεποπτευόμενες εργασίες που χρησιμοποιούνται για την προεκπαίδευση του μοντέλου BERT.
  • Μια λεπτομερής περιγραφή κώδικα για τη λεπτομέρεια του μοντέλου χρησιμοποιώντας μια κεφαλή MLM.

Ελπίζω αυτό το άρθρο να δώσει μια γερή βάση τόσο για την προ-εκπαίδευση όσο και για τη βελτίωση του μοντέλου BERT χρησιμοποιώντας την κεφαλή του μοντέλου της γλώσσας με μάσκα. Εάν έχετε οποιεσδήποτε αμφιβολίες, σχολιάστε τις ανησυχίες σας παρακάτω. Επίσης, σε ένα μελλοντικό άρθρο, σκοπεύω να τελειοποιήσω ένα μοντέλο BERT με μια κεφαλή μοντέλου πρόβλεψης επόμενης πρότασης.

Ευχαριστώ για την ανάγνωση!!!

Τα μέσα που εμφανίζονται σε αυτό το άρθρο δεν ανήκουν στο Analytics Vidhya και χρησιμοποιούνται κατά την κρίση του συγγραφέα.