[英]ValueError when pre-training BERT model using Trainer API
我正在嘗試通過在transformers
庫中使用 Trainer API 來微調/預訓練現有的 BERT model 以進行情緒分析。 我的訓練數據集如下所示:
Text Sentiment
This was good place 1
This was bad place 0
我的目標是能夠將情緒分類為正面/負面。 這是我的代碼:
from datasets import load_dataset
from datasets import load_dataset_builder
import datasets
import transformers
from transformers import TrainingArguments
from transformers import Trainer
dataset = load_dataset('csv', data_files='my_data.csv', sep=';')
tokenizer = transformers.BertTokenizer.from_pretrained("bert-base-cased")
model = transformers.BertForMaskedLM.from_pretrained("bert-base-cased")
print(dataset)
def tokenize_function(examples):
return tokenizer(examples["Text"], examples["Sentiment"], truncation=True)
tokenized_datasets = dataset.map(tokenize_function, batched=True)
training_args = TrainingArguments("test_trainer")
trainer = Trainer(
model=model, args=training_args, train_dataset=tokenized_datasets
)
trainer.train()
這會引發錯誤消息:
ValueError: text input must of type `str` (single example), `List[str]` (batch or single pretokenized example) or `List[List[str]]` (batch of pretokenized examples).
我做錯了什么? 任何建議都受到高度贊賞。
您不應該向標記器提供標簽( examples["Sentiment"]
)。
def tokenize_function(examples):
return tokenizer(examples["Text"], truncation=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.