Проблема с несовпадающими размерами тензоров во время обучения с помощью DeepSpeed ​​[закрыто]Python

Программы на Python
Ответить
Anonymous
 Проблема с несовпадающими размерами тензоров во время обучения с помощью DeepSpeed ​​[закрыто]

Сообщение Anonymous »

Я тренирую модель с помощью Hugging Face Trainer с интеграцией DeepSpeed ​​и сталкиваюсь с ошибкой, связанной с несовпадением размеров тензоров:

Код: Выделить всё

The size of tensor a (50) must match the size of tensor b (3) at non-singleton dimension2
Как это исправить?
➡️мои данные
➡️мой код

Код: Выделить всё

  def training(data, Num, tokenizer_name="bert-base-uncased", max_length=50):
tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
subset_key = list(data)[0]
subset_data = data[subset_key][Num]
inner_key = list(subset_data.keys())[Num]
key_list = list(subset_data[inner_key][0].keys())
results = [f"{key_list[0]}: {item[key_list[0]]}, {key_list[1]}: {item[key_list[1]]}"
for item in subset_data[inner_key]]
tokenized_results = tokenizer(results, padding="max_length", truncation=True, max_length=max_length)
return tokenized_results['input_ids'] , tokenized_results['attention_mask']
train_dataset = training(dataset, 0, tokenizer_name="bert-base-uncased", max_length=30)
Организация и извлечение файлов ⬆️

Код: Выделить всё

    from transformers import Trainer, TrainingArguments
import torch

# DeepSpeed
deepspeed_config = {
"zero_optimization": {
"stage": 2,
"offload_optimizer": {"device": "cpu"},
"offload_param": {"device": "cpu"}
},
"train_micro_batch_size_per_gpu": 3,
"gradient_accumulation_steps": 1,
"fp16": {"enabled": "auto"}
}
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
per_device_train_batch_size=3,
per_device_eval_batch_size=3,
num_train_epochs=3,
logging_dir="./logs",
logging_steps=10,
save_steps=500,
save_total_limit=3,
remove_unused_columns=False,
fp16=False,
deepspeed=deepspeed_config
)
trainer = Trainer(
model=model_1,
args=training_args,
train_dataset=train_dataset,
eval_dataset=dataset["train"],
)

device = torch.device("cpu")
model_1.to(device)

trainer.train()
код основного поезда ⬆️
Я проверил, что input_ids и метки имеют одинаковую форму.
Я проверил пакет размер как в конфигурации Trainer, так и в конфигурации DeepSpeed.
Я также убедился, что модель правильно размещена на устройстве (cuda или процессор).
может быть, я' я не уверен.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -deepspeed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»