簡體   English   中英

使用 Trainer API 預訓練 BERT model 時出現 ValueError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM