-
Notifications
You must be signed in to change notification settings - Fork 58
Open
Description
Describe the issue
Issue: Dataloader in train code maybe wrong.
Command:
deepspeed train.py \
--deepspeed scripts/zero2.json \
--model_name_or_path "LLaVA-VL/vicuna-7b-v1.3" \
--pretrain_mm_mlp_adapter "LLaVA-VL/liuhaotian/llava-v1.5-mlp2x-336px-pretrain-vicuna-7b-v1.5/mm_projector.bin" \
--version v1 \
--data_path data/toy/aug_toy.json,data/toy/merge_toy.json \
--image_folder data/toy/image \
--vision_tower openai/clip-vit-large-patch14 \
--mm_vision_select_layer -2 \
--mm_use_im_start_end False \
--mm_use_im_patch_token False \
--bf16 False \
--output_dir $out_dir \
--num_train_epochs 3 \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 4 \
--gradient_accumulation_steps 2 \
--evaluation_strategy "no" \
--save_strategy "steps" \
--save_steps 1000 \
--save_total_limit 8 \
--learning_rate 2e-5 \
--weight_decay 0. \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--tf32 False \
--model_max_length 2048 \
--gradient_checkpointing True \
--dataloader_num_workers 4 \
--lazy_preprocess True \
--mm_projector_type mlp2x_gelu
Log:
trainer = LLaVATrainer(model=model,
TypeError: llava.train.llava_trainer.LLaVATrainer() argument after ** must be a mapping, not NoneType
After debugging the code I find make_supervised_data_module
may not be finished, as it didn't return anything.
def make_supervised_data_module(tokenizer: transformers.PreTrainedTokenizer,
data_args) -> Dict:
"""Make dataset and collator for supervised fine-tuning."""
dataset_cls = LazySupervisedDataset
# concat data files
data_path = data_args.data_path
data_path_list = [i.strip() for i in data_path.split(',')]
data_path_list = [x for x in data_path_list if x != ""]
data_set_list = []
for data_name in data_path_list:
assert os.path.exists(data_name), f"{data_name} does not exist"
new_data_args = copy.deepcopy(data_args)
new_data_args.data_path = data_name
train_dataset_i = build_dataset(new_data_args, tokenizer, dataset_cls)
data_set_list.append(train_dataset_i)
train_dataset = ConcatDataset(data_set_list)
print(f"train_dataset size: {len(train_dataset)}")
Any idea?
wuqiuche and AlirezaShamsoshoara
Metadata
Metadata
Assignees
Labels
No labels