τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Το BERT, Αμφίδρομες Αντιπροσωπείες Κωδικοποιητή από το Transformers, είναι ένα προεκπαιδευμένο μοντέλο γλώσσας που κυκλοφόρησε από την Google το 2018. Η εμφάνιση του BERT σηματοδοτεί ένα σημαντικό ορόσημο στον τομέα της επεξεργασίας φυσικής γλώσσας, καθώς βελτιώνει σημαντικά την απόδοση πολλαπλών γλωσσικών εργασιών. Αυτό το άρθρο θα εισαγάγει λεπτομερώς τον τρόπο χρήσης του BERT για εργασίες μεταγενέστερης ροής για να βοηθήσει όλους να κατανοήσουν και να εφαρμόσουν καλύτερα αυτό το ισχυρό εργαλείο.
Το BERT είναι ένα μοντέλο γλώσσας που βασίζεται στην αρχιτεκτονική του Transformer. Σε αντίθεση με τα προηγούμενα γλωσσικά μοντέλα, το BERT υιοθετεί μια αμφίδρομη μέθοδο εκπαίδευσης και μπορεί να λαμβάνει υπόψη πληροφορίες συμφραζομένων ταυτόχρονα, γεγονός που το κάνει να αποδίδει καλά σε μια ποικιλία εργασιών. Η βασική ιδέα του BERT είναι να επιτύχει εξαιρετική απόδοση μέσω εκτεταμένης προεκπαίδευσης χωρίς επίβλεψη και στη συνέχεια λεπτομέρειας σε συγκεκριμένες εργασίες.
Η εκπαιδευτική διαδικασία του BERT χωρίζεται σε δύο στάδια: προ-προπόνηση και τελειοποίηση.
προ-προπόνηση : Σε αυτό το στάδιο, ο BERT εκπαιδεύεται μέσω μεγάλου όγκου δεδομένων κειμένου και οι εργασίες περιλαμβάνουν Μοντέλο Μασκοφόρου Γλώσσας (MLM) και Πρόβλεψη Επόμενης Προτάσεως (NSP). Η εργασία MLM απαιτεί από το μοντέλο να προβλέψει καλυμμένες λέξεις, ενώ η εργασία NSP απαιτεί από το μοντέλο να προβλέψει εάν δύο προτάσεις είναι συνεχείς.
τελειοποίηση : Αφού ολοκληρωθεί η προεκπαίδευση, πρέπει να ρυθμίσουμε το μοντέλο σύμφωνα με συγκεκριμένες εργασίες κατάντη. Οι μεταγενέστερες εργασίες μπορεί να είναι η ταξινόμηση, η παλινδρόμηση, η απάντηση σε ερωτήσεις, η αναγνώριση ονομαστικής οντότητας κ.λπ. Με περαιτέρω εκπαίδευση σε σύνολα δεδομένων για συγκεκριμένες εργασίες, το BERT μπορεί να προσαρμοστεί καλύτερα στις ανάγκες συγκεκριμένων εργασιών.
Στη συνέχεια, θα εισαγάγουμε τον τρόπο χρήσης του BERT για εργασίες ταξινόμησης κειμένου μέσω ενός συγκεκριμένου παραδείγματος.
Αρχικά, πρέπει να εγκαταστήσουμε τη βιβλιοθήκη Transformers, η οποία είναι μια πολύ δημοφιλής βιβλιοθήκη που παρέχεται από την Hugging Face, η οποία μας επιτρέπει να χρησιμοποιούμε διάφορα προεκπαιδευμένα μοντέλα γλώσσας.
pip install transformers
pip install torch
Πρέπει να φορτώσουμε το προεκπαιδευμένο μοντέλο BERT και το αντίστοιχο Tokenizer από τη βιβλιοθήκη μοντέλων του Hugging Face.
from transformers import BertTokenizer, BertForSequenceClassification
from transformers import Trainer, TrainingArguments
# 加载预训练的BERT模型和Tokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
Για να πραγματοποιήσουμε ταξινόμηση κειμένου, πρέπει να μετατρέψουμε τα δεδομένα κειμένου σε μια μορφή εισόδου αποδεκτή από το μοντέλο. Αυτό συνήθως περιλαμβάνει τη δημιουργία διακριτικών και τη μετατροπή κειμένου σε αναγνωριστικά διακριτικών και τη δημιουργία μασκών προσοχής.
# 示例数据
texts = ["I love programming.", "I hate bugs."]
labels = [1, 0]
# 数据预处理
inputs = tokenizer(texts, return_tensors='pt', padding=True, truncation=True)
inputs['labels'] = torch.tensor(labels)
Χρησιμοποιώντας το Trainer API, μπορούμε εύκολα να προσαρμόσουμε το μοντέλο. Πρώτα, πρέπει να ορίσετε τις παραμέτρους εκπαίδευσης και, στη συνέχεια, να καλέσετε τον Εκπαιδευτή για εκπαίδευση.
training_args = TrainingArguments(
output_dir='./results', # 输出目录
num_train_epochs=3, # 训练的epoch数
per_device_train_batch_size=4, # 训练时每个设备的batch size
per_device_eval_batch_size=8, # 评估时每个设备的batch size
warmup_steps=500, # 预热步数
weight_decay=0.01, # 权重衰减
logging_dir='./logs', # 日志目录
logging_steps=10,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=inputs,
eval_dataset=inputs
)
# 开始训练
trainer.train()
Αφού ολοκληρωθεί η εκπαίδευση, μπορούμε να χρησιμοποιήσουμε το εκπαιδευμένο μοντέλο για αξιολόγηση και πρόβλεψη. Για την αξιολόγηση, μπορούμε να χρησιμοποιήσουμε το σύνολο επικύρωσης για να υπολογίσουμε δείκτες όπως η ακρίβεια για την πρόβλεψη, μπορούμε να εισάγουμε νέο κείμενο και να πάρουμε τα αποτελέσματα ταξινόμησης.
# 评估
results = trainer.evaluate()
print(results)
# 预测
test_texts = ["I enjoy learning new things.", "I dislike errors."]
test_inputs = tokenizer(test_texts, return_tensors='pt', padding=True, truncation=True)
predictions = model(**test_inputs)
print(predictions)
Εκτός από την ταξινόμηση κειμένου, το BERT αποδίδει επίσης καλά σε άλλες εργασίες επεξεργασίας φυσικής γλώσσας. Για παράδειγμα:
Ως ένα ισχυρό προεκπαιδευμένο μοντέλο γλώσσας, το BERT έχει επιτύχει αξιοσημείωτα αποτελέσματα σε πολλαπλές εργασίες επεξεργασίας φυσικής γλώσσας. Μέσα από δύο στάδια προ-εκπαίδευσης και λεπτομέρειας, το BERT μπορεί να προσαρμοστεί αποτελεσματικά σε διάφορες εργασίες κατάντη. Ελπίζω ότι μέσω της εισαγωγής αυτού του άρθρου, όλοι μπορούν να κατανοήσουν και να εφαρμόσουν καλύτερα το BERT και να λύσουν πρακτικά προβλήματα.
Για πιο συναρπαστικό περιεχόμενο, δώστε προσοχή στα εξής: Κινεζικός ιστότοπος ChatGPT