Hi,
I am also facing the same problem, it will be very helpful if you can help me because I am still a beginner at using LLMs and hugging face. I am pasting my code below.
from transformers import AutoModelForSequenceClassification, AutoTokenizer, TrainingArguments, Trainer
import datasets
import torch as t
from transformers import DataCollatorWithPadding
import evaluate
import numpy as np
dataset = datasets.load_dataset(âtweet_evalâ,âemotionâ)
x_train = dataset[âtrainâ][âtextâ]
y_train = dataset[âtrainâ][âlabelâ]
x_test = dataset[âtestâ][âtextâ]
y_test = dataset[âtestâ][âlabelâ]
def load_LLM(llm, device):
num_labels = 4
id2label = {0: âAngerâ, 1: âJoyâ, 2: âOptimismâ, 3: âSadnessâ}
label2id = {âAngerâ: 0, âJoyâ: 1, âOptimismâ: 2, âSadnessâ:3}
model = AutoModelForSequenceClassification.from_pretrained(llm,num_labels=num_labels,id2label=id2label, label2id=label2id)
model.to(device)
tokenizer = AutoTokenizer.from_pretrained(llm)
return model, tokenizer
llm = âEleutherAI/gpt-neo-2.7Bâ
device = t.device(âcudaâ if t.cuda.is_available() else âcpuâ)
model,tokenizer = load_LLM(llm,device)
train_inputs = tokenizer(x_train,truncation=True)
test_inputs = tokenizer(x_test,truncation=True)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
accuracy = evaluate.load(âaccuracyâ)
def compute_metrics(eval_pred):
predictions, labels = eval_pred
predictions = np.argmax(predictions, axis=1)
return accuracy.compute(predictions=predictions, references=labels)
training_args = TrainingArguments(
output_dir=âmy_awesome_modelâ,
learning_rate=2e-5,
per_device_train_batch_size=16,
per_device_eval_batch_size=16,
num_train_epochs=2,
weight_decay=0.01,
evaluation_strategy=âepochâ,
save_strategy=âepochâ,
load_best_model_at_end=True,
push_to_hub=True,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_inputs,
eval_dataset=test_inputs,
tokenizer=tokenizer,
data_collator=data_collator,
compute_metrics=compute_metrics,
)
trainer.train()
I am getting the exact same error and I donât know how to resolve it.