minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
BERT, Bidirecional Encoder Representations from Transformers, é um modelo de linguagem pré-treinado lançado pelo Google em 2018. O surgimento do BERT marca um marco importante no campo do processamento de linguagem natural, pois melhora significativamente o desempenho de múltiplas tarefas linguísticas. Este artigo apresentará em detalhes como usar o BERT para tarefas posteriores para ajudar todos a compreender e aplicar melhor esta ferramenta poderosa.
BERT é um modelo de linguagem baseado na arquitetura Transformer. Ao contrário dos modelos de linguagem anteriores, o BERT adota um método de treinamento bidirecional e pode considerar informações contextuais simultaneamente, o que o faz ter um bom desempenho em diversas tarefas. A ideia central do BERT é alcançar um desempenho excelente por meio de um extenso pré-treinamento não supervisionado e, em seguida, do ajuste fino em tarefas específicas.
O processo de formação do BERT divide-se em duas fases: pré-formação e aperfeiçoamento.
Pré treino : Nesta fase, o BERT é treinado por meio de uma grande quantidade de dados de texto, e as tarefas incluem Masked Language Model (MLM) e Next Sentence Prediction (NSP). A tarefa MLM exige que o modelo preveja palavras mascaradas, enquanto a tarefa NSP exige que o modelo preveja se duas sentenças são contínuas.
afinação : Após a conclusão do pré-treinamento, precisamos ajustar o modelo de acordo com tarefas posteriores específicas. As tarefas posteriores podem ser classificação, regressão, resposta a perguntas, reconhecimento de entidade nomeada, etc. Através de formação adicional em conjuntos de dados específicos de tarefas, o BERT pode adaptar-se melhor às necessidades de tarefas específicas.
A seguir, apresentaremos como usar o BERT para tarefas de classificação de texto por meio de um exemplo específico.
Primeiro, precisamos instalar a biblioteca Transformers, que é uma biblioteca muito popular fornecida pela Hugging Face, que nos permite usar vários modelos de linguagem pré-treinados.
pip install transformers
pip install torch
Precisamos carregar o modelo BERT pré-treinado e o Tokenizer correspondente da biblioteca de modelos do 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)
Para realizar a classificação do texto, precisamos converter os dados do texto em um formato de entrada aceitável para o modelo. Isso normalmente envolve tokenizar e converter texto em IDs de token e criar máscaras de atenção.
# 示例数据
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)
Usando a API Trainer, podemos ajustar facilmente o modelo. Primeiro você precisa definir os parâmetros de treinamento e depois chamar o Treinador para treinar.
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()
Após a conclusão do treinamento, podemos usar o modelo treinado para avaliação e previsão. Para avaliação, podemos usar o conjunto de validação para calcular indicadores como precisão para previsão, podemos inserir um novo texto e obter os resultados da classificação;
# 评估
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)
Além da classificação de texto, o BERT também funciona bem em outras tarefas de processamento de linguagem natural. Por exemplo:
Como um poderoso modelo de linguagem pré-treinado, o BERT alcançou resultados notáveis em múltiplas tarefas de processamento de linguagem natural. Através de dois estágios de pré-treinamento e ajuste fino, o BERT pode se adaptar com eficiência a várias tarefas posteriores. Espero que com a introdução deste artigo todos possam compreender e aplicar melhor o BERT e resolver problemas práticos.
Para conteúdo mais interessante, preste atenção em: Site chinês ChatGPT