Compartir tecnología

Cómo utilizar BERT para tareas posteriores - Tutorial de Transformer

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

BERT, Representaciones de codificador bidireccional de Transformers, es un modelo de lenguaje previamente entrenado lanzado por Google en 2018. La aparición de BERT marca un hito importante en el campo del procesamiento del lenguaje natural, ya que mejora significativamente el desempeño de múltiples tareas lingüísticas. Este artículo presentará en detalle cómo usar BERT para tareas posteriores para ayudar a todos a comprender y aplicar mejor esta poderosa herramienta.

¿Qué es BERT?

BERT es un modelo de lenguaje basado en la arquitectura Transformer. A diferencia de los modelos de lenguaje anteriores, BERT adopta un método de entrenamiento bidireccional y puede considerar información contextual simultáneamente, lo que le permite desempeñarse bien en una variedad de tareas. La idea central de BERT es lograr un rendimiento excelente mediante una capacitación previa extensa y no supervisada y luego un ajuste fino en tareas específicas.

Entrenamiento previo y ajuste de BERT

El proceso de formación de BERT se divide en dos etapas: preformación y ajuste.

  1. Pre-entrenamiento : En esta etapa, BERT se entrena a través de una gran cantidad de datos de texto y las tareas incluyen el modelo de lenguaje enmascarado (MLM) y la predicción de la siguiente oración (NSP). La tarea MLM requiere que el modelo prediga palabras enmascaradas, mientras que la tarea NSP requiere que el modelo prediga si dos oraciones son continuas.

  2. sintonia FINA : Una vez completada la capacitación previa, debemos ajustar el modelo de acuerdo con tareas posteriores específicas. Las tareas posteriores pueden ser clasificación, regresión, respuesta a preguntas, reconocimiento de entidades nombradas, etc. Al recibir más capacitación sobre conjuntos de datos específicos de tareas, BERT puede adaptarse mejor a las necesidades de tareas específicas.

Cómo utilizar BERT para tareas posteriores

A continuación, presentaremos cómo utilizar BERT para tareas de clasificación de texto a través de un ejemplo específico.

Paso 1: instale las bibliotecas necesarias

Primero, necesitamos instalar la biblioteca Transformers, que es una biblioteca muy popular proporcionada por Hugging Face, que nos permite utilizar varios modelos de lenguaje previamente entrenados.

pip install transformers
pip install torch
  • 1
  • 2
Paso 2: cargar el modelo y los datos previamente entrenados

Necesitamos cargar el modelo BERT previamente entrenado y el Tokenizer correspondiente de la biblioteca de modelos 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Paso 3: preparar los datos

Para realizar la clasificación de texto, necesitamos convertir los datos del texto a un formato de entrada aceptable para el modelo. Por lo general, esto implica tokenizar y convertir texto en identificadores de token y crear máscaras de atención.

# 示例数据
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Paso 4: afina el modelo

Usando la API Trainer, podemos ajustar fácilmente el modelo. Primero, debe configurar los parámetros de entrenamiento y luego llamar al entrenador para realizar el entrenamiento.

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
Paso 5: Evaluar y pronosticar

Una vez completado el entrenamiento, podemos utilizar el modelo entrenado para evaluación y predicción. Para la evaluación, podemos usar el conjunto de validación para calcular indicadores como la precisión de la predicción, podemos ingresar texto nuevo y obtener los resultados de la clasificación;

# 评估
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Escenarios de aplicación BERT

Además de la clasificación de texto, BERT también funciona bien en otras tareas de procesamiento del lenguaje natural. Por ejemplo:

  • sistema de preguntas y respuestas: BERT se puede utilizar para crear un potente sistema de preguntas y respuestas que pueda responder con precisión las preguntas de los usuarios mediante la comprensión del contexto.
  • Reconocimiento de entidad nombrada: BERT puede identificar entidades en texto, como nombres de personas, nombres de lugares, nombres de organizaciones, etc.
  • generación de texto: Aunque BERT se utiliza principalmente para tareas de comprensión, también puede ayudar en algunas tareas de generación, como completar espacios en blanco, reescribir, etc.

Resumir

Como potente modelo de lenguaje previamente entrenado, BERT ha logrado resultados notables en múltiples tareas de procesamiento del lenguaje natural. A través de dos etapas de capacitación previa y ajuste, BERT puede adaptarse de manera eficiente a diversas tareas posteriores. Espero que a través de la introducción de este artículo, todos puedan comprender y aplicar BERT mejor y resolver problemas prácticos.

Para obtener contenido más interesante, preste atención a: Sitio web chino ChatGPT