fix_error
parent
c1a069b532
commit
895a391255
|
|
@ -178,7 +178,7 @@ print(torch.cuda.is_available())
|
||||||
**3.1 预训练(学图像描述)**
|
**3.1 预训练(学图像描述)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python train_pretrain_vlm.py --epochs 4
|
bash scripts/pretrain_vlm.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
> 执行预训练,得到 `pretrain_vlm_*.pth` 作为预训练的输出权重(其中*为模型的dimension,默认为512)
|
> 执行预训练,得到 `pretrain_vlm_*.pth` 作为预训练的输出权重(其中*为模型的dimension,默认为512)
|
||||||
|
|
@ -187,7 +187,7 @@ python train_pretrain_vlm.py --epochs 4
|
||||||
**3.2 监督微调(学看图对话方式)**
|
**3.2 监督微调(学看图对话方式)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python train_sft_vlm.py --epochs 4
|
bash scripts/sft_vlm.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
> 执行监督微调,得到 `sft_vlm_*.pth` 作为指令微调的输出权重
|
> 执行监督微调,得到 `sft_vlm_*.pth` 作为指令微调的输出权重
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,7 @@ skipping the pretrain training step and proceed directly to SFT training.
|
||||||
**3.1 Pretraining (Learning image description)**
|
**3.1 Pretraining (Learning image description)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python train_pretrain_vlm.py --epochs 4
|
bash scripts/pretrain_vlm.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
> Run pretraining to get `pretrain_vlm_*.pth` as the pretrained model's output weights (* represents the model
|
> Run pretraining to get `pretrain_vlm_*.pth` as the pretrained model's output weights (* represents the model
|
||||||
|
|
@ -198,7 +198,7 @@ python train_pretrain_vlm.py --epochs 4
|
||||||
**3.2 Supervised Fine-Tuning (Learning image-caption dialogue style)**
|
**3.2 Supervised Fine-Tuning (Learning image-caption dialogue style)**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python train_sft_vlm.py --epochs 4
|
bash scripts/sft_vlm.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
> Perform supervised fine-tuning to get `sft_vlm_*.pth` as the output weights for the fine-tuned model.
|
> Perform supervised fine-tuning to get `sft_vlm_*.pth` as the output weights for the fine-tuned model.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 设置运行脚本的参数
|
||||||
|
python train_pretrain_vlm.py \
|
||||||
|
--out_dir="out" \
|
||||||
|
--epochs=4 \
|
||||||
|
--batch_size=16 \
|
||||||
|
--learning_rate=0.0004 \
|
||||||
|
--device="cuda:0" \
|
||||||
|
--dtype="bfloat16" \
|
||||||
|
# --use_wandb \ # 如果使用wandb,请取消注释
|
||||||
|
--wandb_project="MiniMind-V" \
|
||||||
|
--num_workers=8 \
|
||||||
|
--data_path="./dataset/pretrain_data.jsonl" \
|
||||||
|
--images_path="./dataset/pretrain_images" \
|
||||||
|
# --ddp \ # 如果使用DDP分布式训练,请取消注释
|
||||||
|
--accumulation_steps=1 \
|
||||||
|
--grad_clip=1.0 \
|
||||||
|
--warmup_iters=0 \
|
||||||
|
--log_interval=100 \
|
||||||
|
--save_interval=100 \
|
||||||
|
--local_rank=-1 \
|
||||||
|
# 模型参数
|
||||||
|
--dim=512 \
|
||||||
|
--n_layers=8 \
|
||||||
|
--max_seq_len=640 \
|
||||||
|
--use_moe=False
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 设置运行脚本的参数
|
||||||
|
python train_sft_vlm.py \
|
||||||
|
--out_dir="out" \
|
||||||
|
--epochs=6 \
|
||||||
|
--batch_size=8 \
|
||||||
|
--learning_rate=0.000001 \
|
||||||
|
--device="cuda:0" \
|
||||||
|
--dtype="bfloat16" \
|
||||||
|
# --use_wandb \ # 如果使用wandb,请取消注释
|
||||||
|
--wandb_project="MiniMind-V" \
|
||||||
|
--num_workers=8 \
|
||||||
|
--data_path="./dataset/sft_data.jsonl" \
|
||||||
|
--images_path="./dataset/sft_images" \
|
||||||
|
# --ddp \ # 如果使用DDP分布式训练,请取消注释
|
||||||
|
--accumulation_steps=1 \
|
||||||
|
--grad_clip=1.0 \
|
||||||
|
--warmup_iters=0 \
|
||||||
|
--log_interval=10 \
|
||||||
|
--save_interval=10 \
|
||||||
|
--local_rank=-1 \
|
||||||
|
# 模型参数
|
||||||
|
--dim=512 \
|
||||||
|
--n_layers=8 \
|
||||||
|
--max_seq_len=1536 \
|
||||||
|
--use_moe=False
|
||||||
|
|
@ -104,8 +104,8 @@ def init_model(model_config: VLMConfig):
|
||||||
# 加载纯语言模型权重
|
# 加载纯语言模型权重
|
||||||
ckp = f'./out/lm_{model_config.dim}{moe_path}.pth'
|
ckp = f'./out/lm_{model_config.dim}{moe_path}.pth'
|
||||||
model = MiniMindVLM(model_config)
|
model = MiniMindVLM(model_config)
|
||||||
state_dict = torch.load(ckp, map_location=args.device)
|
# state_dict = torch.load(ckp, map_location=args.device)
|
||||||
model.load_state_dict(state_dict, strict=False)
|
# model.load_state_dict(state_dict, strict=False)
|
||||||
|
|
||||||
# 冻结除 vision_proj 外的所有参数
|
# 冻结除 vision_proj 外的所有参数
|
||||||
for name, param in model.named_parameters():
|
for name, param in model.named_parameters():
|
||||||
|
|
@ -147,7 +147,7 @@ if __name__ == "__main__":
|
||||||
parser.add_argument("--use_wandb", default=False, action="store_true")
|
parser.add_argument("--use_wandb", default=False, action="store_true")
|
||||||
parser.add_argument("--wandb_project", type=str, default="MiniMind-V")
|
parser.add_argument("--wandb_project", type=str, default="MiniMind-V")
|
||||||
parser.add_argument("--num_workers", type=int, default=8)
|
parser.add_argument("--num_workers", type=int, default=8)
|
||||||
parser.add_argument("--data_path", type=str, default="./dataset/pretrain_vlm_data.jsonl")
|
parser.add_argument("--data_path", type=str, default="./dataset/pretrain_data.jsonl")
|
||||||
parser.add_argument("--images_path", type=str, default="./dataset/pretrain_images")
|
parser.add_argument("--images_path", type=str, default="./dataset/pretrain_images")
|
||||||
parser.add_argument("--ddp", action="store_true")
|
parser.add_argument("--ddp", action="store_true")
|
||||||
parser.add_argument("--accumulation_steps", type=int, default=1)
|
parser.add_argument("--accumulation_steps", type=int, default=1)
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ if __name__ == "__main__":
|
||||||
parser.add_argument("--use_wandb", default=False, action="store_true")
|
parser.add_argument("--use_wandb", default=False, action="store_true")
|
||||||
parser.add_argument("--wandb_project", type=str, default="MiniMind-V")
|
parser.add_argument("--wandb_project", type=str, default="MiniMind-V")
|
||||||
parser.add_argument("--num_workers", type=int, default=8)
|
parser.add_argument("--num_workers", type=int, default=8)
|
||||||
parser.add_argument("--data_path", type=str, default="./dataset/sft_vlm_data.jsonl")
|
parser.add_argument("--data_path", type=str, default="./dataset/sft_data.jsonl")
|
||||||
parser.add_argument("--images_path", type=str, default="./dataset/sft_images")
|
parser.add_argument("--images_path", type=str, default="./dataset/sft_images")
|
||||||
parser.add_argument("--ddp", action="store_true")
|
parser.add_argument("--ddp", action="store_true")
|
||||||
parser.add_argument("--accumulation_steps", type=int, default=1)
|
parser.add_argument("--accumulation_steps", type=int, default=1)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue