2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
BERT (Bidirektionale Encoder-Repräsentationen von Transformers) ist ein vorab trainiertes Sprachmodell, das 2018 von Google veröffentlicht wurde. Das Aufkommen von BERT stellt einen wichtigen Meilenstein auf dem Gebiet der Verarbeitung natürlicher Sprache dar, da es die Leistung mehrerer Sprachaufgaben erheblich verbessert. In diesem Artikel wird detailliert beschrieben, wie BERT für nachgelagerte Aufgaben verwendet wird, damit jeder dieses leistungsstarke Tool besser verstehen und anwenden kann.
BERT ist ein Sprachmodell, das auf der Transformer-Architektur basiert. Im Gegensatz zu früheren Sprachmodellen verwendet BERT eine bidirektionale Trainingsmethode und kann Kontextinformationen gleichzeitig berücksichtigen, wodurch es bei einer Vielzahl von Aufgaben gut funktioniert. Die Kernidee von BERT besteht darin, durch umfangreiches, unbeaufsichtigtes Vortraining und anschließende Feinabstimmung auf bestimmte Aufgaben hervorragende Leistungen zu erzielen.
Der Trainingsprozess von BERT ist in zwei Phasen unterteilt: Vortraining und Feinabstimmung.
Vortraining : In dieser Phase wird BERT anhand einer großen Menge an Textdaten trainiert. Zu den Aufgaben gehören das Masked Language Model (MLM) und die Next Sentence Prediction (NSP). Bei der MLM-Aufgabe muss das Modell maskierte Wörter vorhersagen, während bei der NSP-Aufgabe das Modell vorhersagen muss, ob zwei Sätze zusammenhängend sind.
Feinabstimmung : Nach Abschluss des Vortrainings müssen wir das Modell entsprechend spezifischer nachgelagerter Aufgaben verfeinern. Nachgelagerte Aufgaben können Klassifizierung, Regression, Beantwortung von Fragen, Erkennung benannter Entitäten usw. sein. Durch weitere Schulungen zu aufgabenspezifischen Datensätzen kann sich BERT besser an die Anforderungen spezifischer Aufgaben anpassen.
Als Nächstes stellen wir anhand eines konkreten Beispiels vor, wie BERT für Textklassifizierungsaufgaben verwendet wird.
Zuerst müssen wir die Transformers-Bibliothek installieren, eine sehr beliebte Bibliothek von Hugging Face, die es uns ermöglicht, verschiedene vorab trainierte Sprachmodelle zu verwenden.
pip install transformers
pip install torch
Wir müssen das vorab trainierte BERT-Modell und den entsprechenden Tokenizer aus der Modellbibliothek von Hugging Face laden.
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)
Um eine Textklassifizierung durchzuführen, müssen wir die Textdaten in ein für das Modell akzeptables Eingabeformat konvertieren. Dies umfasst typischerweise die Tokenisierung und Konvertierung von Text in Token-IDs sowie die Erstellung von Aufmerksamkeitsmasken.
# 示例数据
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)
Mithilfe der Trainer-API können wir das Modell problemlos verfeinern. Zuerst müssen Sie die Trainingsparameter einstellen und dann den Trainer zum Training anrufen.
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()
Nach Abschluss des Trainings können wir das trainierte Modell zur Bewertung und Vorhersage verwenden. Zur Auswertung können wir den Validierungssatz verwenden, um Indikatoren wie die Genauigkeit für die Vorhersage zu berechnen, wir können neuen Text eingeben und die Klassifizierungsergebnisse erhalten.
# 评估
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)
Neben der Textklassifizierung schneidet BERT auch bei anderen Aufgaben der Verarbeitung natürlicher Sprache gut ab. Zum Beispiel:
Als leistungsstarkes vorab trainiertes Sprachmodell hat BERT bei mehreren Aufgaben der Verarbeitung natürlicher Sprache bemerkenswerte Ergebnisse erzielt. Durch zwei Phasen der Vorschulung und Feinabstimmung kann sich BERT effizient an verschiedene nachgelagerte Aufgaben anpassen. Ich hoffe, dass durch die Einführung dieses Artikels jeder BERT besser verstehen und anwenden und praktische Probleme lösen kann.
Für weitere spannende Inhalte achten Sie bitte auf: Chinesische ChatGPT-Website