Библиотека Transformers от Hugging Face - это удобный инструмент для работы с моделями предварительного обучения, такими как BERT, GPT-2, RoBERTa и т.д. Подробный пример обучения модели с использованием этой библиотеки может заключаться в следующих этапах:
1. Установите библиотеку Transformers, если это еще не сделано. Это можно сделать с помощью pip:
```
pip install transformers
```
2. Импортируйте нужные классы и функции:
```python
from transformers import BertTokenizer, BertForSequenceClassification
from transformers import Trainer, TrainingArguments
```
3. Подготовьте ваш набор данных. Разделите его на тренировочный и валидационный наборы. Следующий пример показывает, как это может выглядеть для набора данных, содержащего тексты (sentences) и соответствующие метки (labels):
```python
train_texts, val_texts, train_labels, val_labels = train_test_split(sentences, labels, test_size=.2)
```
4. Загрузите предварительно обученный токенизатор и модель:
```python
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')
```
5. Токенизация данных:
```python
train_encodings = tokenizer(train_texts, truncation=True, padding=True)
val_encodings = tokenizer(val_texts, truncation=True, padding=True)
```
6. Оберните ваши закодированные тексты в torch.Dataset объект:
```python
class IMDbDataset(torch.utils.data.Dataset):
def __init__(self, encodings, labels):
self.encodings = encodings
self.labels = labels
def __getitem__(self, idx):
item = {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
item['labels'] = torch.tensor(self.labels[idx])
return item
def __len__(self):
return len(self.labels)
train_dataset = IMDbDataset(train_encodings, train_labels)
val_dataset = IMDbDataset(val_encodings, val_labels)
```
7. Настройте тренировку:
```python
training_args = TrainingArguments(
output_dir='./results',
num_train_epochs=2,
per_device_train_batch_size=16,
per_device_eval_batch_size=64,
warmup_steps=500,
weight_decay=0.01,
logging_dir='./logs',
logging_steps=10,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=val_dataset
)
```
8. Запустите обучение:
```python
trainer.train()
```
Примечание: Обучающий код будет сильно зависеть от вашего конкретного датасета, задачи и предварительно обученной модели. Кроме того, вам, возможно, придется добавить дополнительную предварительную обработку или постобработку ваших данных.