2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
BERT, Bidirectionnel Encoder Representations from Transformers, est un modèle de langage pré-entraîné publié par Google en 2018. L’émergence du BERT marque une étape importante dans le domaine du traitement du langage naturel, car il améliore considérablement les performances de tâches multilinguistiques. Cet article présentera en détail comment utiliser BERT pour les tâches en aval afin d'aider chacun à mieux comprendre et appliquer cet outil puissant.
BERT est un modèle de langage basé sur l'architecture Transformer. Contrairement aux modèles de langage précédents, BERT adopte une méthode de formation bidirectionnelle et peut prendre en compte simultanément les informations contextuelles, ce qui lui permet de bien fonctionner sur une variété de tâches. L'idée principale de BERT est d'obtenir d'excellentes performances grâce à une pré-formation approfondie non supervisée, puis à un ajustement précis sur des tâches spécifiques.
Le processus de formation du BERT est divisé en deux étapes : la pré-formation et la mise au point.
pré-formation : À ce stade, BERT est formé à partir d'une grande quantité de données textuelles et les tâches incluent le modèle de langage masqué (MLM) et la prédiction de la phrase suivante (NSP). La tâche MLM nécessite que le modèle prédise les mots masqués, tandis que la tâche NSP nécessite que le modèle prédise si deux phrases sont continues.
réglage fin : Une fois la pré-formation terminée, nous devons affiner le modèle en fonction de tâches spécifiques en aval. Les tâches en aval peuvent être la classification, la régression, la réponse aux questions, la reconnaissance d'entités nommées, etc. En poursuivant la formation sur les ensembles de données spécifiques à des tâches, le BERT peut mieux s'adapter aux besoins de tâches spécifiques.
Ensuite, nous présenterons comment utiliser BERT pour les tâches de classification de texte à travers un exemple spécifique.
Tout d’abord, nous devons installer la bibliothèque Transformers, qui est une bibliothèque très populaire fournie par Hugging Face, qui nous permet d’utiliser divers modèles de langage pré-entraînés.
pip install transformers
pip install torch
Nous devons charger le modèle BERT pré-entraîné et le Tokenizer correspondant à partir de la bibliothèque de modèles de 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)
Afin d'effectuer une classification de texte, nous devons convertir les données textuelles dans un format d'entrée acceptable pour le modèle. Cela implique généralement la tokenisation et la conversion du texte en identifiants de jeton, ainsi que la création de masques d'attention.
# 示例数据
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)
Grâce à l'API Trainer, nous pouvons facilement affiner le modèle. Tout d'abord, vous devez définir les paramètres de formation, puis appeler le formateur pour la formation.
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()
Une fois la formation terminée, nous pouvons utiliser le modèle formé pour l'évaluation et la prédiction. Pour l'évaluation, nous pouvons utiliser l'ensemble de validation pour calculer des indicateurs tels que l'exactitude ; pour la prédiction, nous pouvons saisir un nouveau texte et obtenir les résultats de la classification.
# 评估
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)
En plus de la classification de texte, BERT fonctionne également bien dans d'autres tâches de traitement du langage naturel. Par exemple:
En tant que puissant modèle de langage pré-entraîné, BERT a obtenu des résultats remarquables dans plusieurs tâches de traitement du langage naturel. Grâce à deux étapes de pré-formation et de mise au point, BERT peut s'adapter efficacement à diverses tâches en aval. J'espère que grâce à l'introduction de cet article, tout le monde pourra mieux comprendre et appliquer le BERT et résoudre des problèmes pratiques.
Pour un contenu plus passionnant, veuillez prêter attention à : Site Web chinois ChatGPT