Я пытаюсь настроить модель «unsloth/Llama-3.2-11B-Vision-Instruct», используя DPOTrainer от trl. Мой набор данных — trl-lib/rlaif-v, и я проверил, что его формат соответствует требованиям для обучения DPO. Однако когда я запускаю код на Kaggle, во время обучения я сталкиваюсь со следующей ошибкой:
model, tokenizer = FastVisionModel.from_pretrained(
"unsloth/Llama-3.2-11B-Vision-Instruct",
load_in_4bit = True, # Use 4bit to reduce memory use. False for 16bit LoRA.
use_gradient_checkpointing = "unsloth", # True or "unsloth" for long context
)
model = FastVisionModel.get_peft_model(
model,
finetune_vision_layers = True, # False if not finetuning vision layers
finetune_language_layers = True, # False if not finetuning language layers
finetune_attention_modules = True, # False if not finetuning attention layers
finetune_mlp_modules = True, # False if not finetuning MLP layers
r = 16, # The larger, the higher the accuracy, but might overfit
lora_alpha = 16, # Recommended alpha == r at least
lora_dropout = 0,
bias = "none",
random_state = 3407,
use_rslora = False, # We support rank stabilized LoRA
loftq_config = None, # And LoftQ
)
from datasets import load_dataset
dataset = load_dataset("trl-lib/rlaif-v", split="train[:1%]")
from trl import DPOConfig, DPOTrainer
training_args = DPOConfig(
output_dir="output",
fp16=True,
gradient_checkpointing=True,
per_device_train_batch_size=2,
gradient_accumulation_steps=32,
num_train_epochs=1,
dataset_num_proc=4, # tokenization will use 32 processes
dataloader_num_workers=4, # data loading will use 32 workers
logging_steps=1,
)
trainer = DPOTrainer(
model,
args=training_args,
train_dataset=dataset,
tokenizer=tokenizer,
)
trainer.train()
Сведения об ошибке
Ошибка возникает на этом этапе обратной трассировки:
Но я думаю, что формат набора данных dpo правильный.
Как это решить?
Что я пробовал
/>Проверено, что формат набора данных подходит для обучения DPO.
Пытался использовать другие наборы данных, но ошибка не устранена.
Проверено, что набор данных имеет допустимые поля ввода (логиты, метки и т. д.).
Я пытаюсь настроить модель «unsloth/Llama-3.2-11B-Vision-Instruct», используя DPOTrainer от trl. Мой набор данных — trl-lib/rlaif-v, и я проверил, что его формат соответствует требованиям для обучения DPO. Однако когда я запускаю код на Kaggle, во время обучения я сталкиваюсь со следующей ошибкой: [code]Copy code TypeError: empty_like(): argument 'input' (position 1) must be Tensor, not NoneType [/code] Код Вот соответствующий фрагмент кода: [code]model, tokenizer = FastVisionModel.from_pretrained( "unsloth/Llama-3.2-11B-Vision-Instruct", load_in_4bit = True, # Use 4bit to reduce memory use. False for 16bit LoRA. use_gradient_checkpointing = "unsloth", # True or "unsloth" for long context ) model = FastVisionModel.get_peft_model( model, finetune_vision_layers = True, # False if not finetuning vision layers finetune_language_layers = True, # False if not finetuning language layers finetune_attention_modules = True, # False if not finetuning attention layers finetune_mlp_modules = True, # False if not finetuning MLP layers r = 16, # The larger, the higher the accuracy, but might overfit lora_alpha = 16, # Recommended alpha == r at least lora_dropout = 0, bias = "none", random_state = 3407, use_rslora = False, # We support rank stabilized LoRA loftq_config = None, # And LoftQ ) from datasets import load_dataset dataset = load_dataset("trl-lib/rlaif-v", split="train[:1%]") from trl import DPOConfig, DPOTrainer training_args = DPOConfig( output_dir="output", fp16=True, gradient_checkpointing=True, per_device_train_batch_size=2, gradient_accumulation_steps=32, num_train_epochs=1, dataset_num_proc=4, # tokenization will use 32 processes dataloader_num_workers=4, # data loading will use 32 workers logging_steps=1, ) trainer = DPOTrainer( model, args=training_args, train_dataset=dataset, tokenizer=tokenizer, )
TypeError: empty_like(): argument 'input' (position 1) must be Tensor, not NoneType [/code] Но я думаю, что формат набора данных dpo правильный. Как это решить? Что я пробовал />Проверено, что формат набора данных подходит для обучения DPO. Пытался использовать другие наборы данных, но ошибка не устранена. Проверено, что набор данных имеет допустимые поля ввода (логиты, метки и т. д.).