fix(train): 解决Windows平台数据加载线程数问题

- 针对Windows系统默认将数据加载线程数设为0,避免多线程兼容性问题
- 保持其他平台默认线程数为8,优化数据加载性能
- 更新相关训练脚本train_pretrain_vlm.py和train_sft_vlm.py中的参数设置
- 修改.gitignore添加dataset目录防止数据误提交
- 在README中补充完整下载数据集的命令示例和说明
pull/120/head
100apps 2026-05-11 23:43:45 +08:00
parent 2c2f4b5161
commit 8b96a1efd9
4 changed files with 9 additions and 3 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ docs-minimind-v/
.venv .venv
model model
minimind-3v minimind-3v
dataset

View File

@ -227,6 +227,11 @@ print(torch.cuda.is_available())
快速开始时,直接从[数据集链接](https://huggingface.co/datasets/jingyaogong/minimind-v_dataset)下载 `sft_i2t.parquet`,并放到 `./dataset` 下即可。 快速开始时,直接从[数据集链接](https://huggingface.co/datasets/jingyaogong/minimind-v_dataset)下载 `sft_i2t.parquet`,并放到 `./dataset` 下即可。
```bash
# 完整下载
hf download --repo-type dataset jingyaogong/minimind-v_dataset --local-dir dataset
```
<details style="color:rgb(128,128,128)"> <details style="color:rgb(128,128,128)">
<summary>注:数据集须知</summary> <summary>注:数据集须知</summary>

View File

@ -95,7 +95,7 @@ if __name__ == "__main__":
parser.add_argument("--learning_rate", type=float, default=4e-4, help="初始学习率") parser.add_argument("--learning_rate", type=float, default=4e-4, help="初始学习率")
parser.add_argument("--device", type=str, default="cuda:0" if torch.cuda.is_available() else "cpu", help="训练设备") parser.add_argument("--device", type=str, default="cuda:0" if torch.cuda.is_available() else "cpu", help="训练设备")
parser.add_argument("--dtype", type=str, default="bfloat16", help="混合精度类型") parser.add_argument("--dtype", type=str, default="bfloat16", help="混合精度类型")
parser.add_argument("--num_workers", type=int, default=8, help="数据加载线程数") parser.add_argument("--num_workers", type=int, default=0 if sys.platform == 'win32' else 8, help="数据加载线程数")
parser.add_argument("--accumulation_steps", type=int, default=1, help="梯度累积步数") parser.add_argument("--accumulation_steps", type=int, default=1, help="梯度累积步数")
parser.add_argument("--grad_clip", type=float, default=1.0, help="梯度裁剪阈值") parser.add_argument("--grad_clip", type=float, default=1.0, help="梯度裁剪阈值")
parser.add_argument("--log_interval", type=int, default=100, help="日志打印间隔") parser.add_argument("--log_interval", type=int, default=100, help="日志打印间隔")

View File

@ -95,7 +95,7 @@ if __name__ == "__main__":
parser.add_argument("--learning_rate", type=float, default=5e-6, help="初始学习率") parser.add_argument("--learning_rate", type=float, default=5e-6, help="初始学习率")
parser.add_argument("--device", type=str, default="cuda:0" if torch.cuda.is_available() else "cpu", help="训练设备") parser.add_argument("--device", type=str, default="cuda:0" if torch.cuda.is_available() else "cpu", help="训练设备")
parser.add_argument("--dtype", type=str, default="bfloat16", help="混合精度类型") parser.add_argument("--dtype", type=str, default="bfloat16", help="混合精度类型")
parser.add_argument("--num_workers", type=int, default=8, help="数据加载线程数") parser.add_argument("--num_workers", type=int, default=0 if sys.platform == 'win32' else 8, help="数据加载线程数")
parser.add_argument("--accumulation_steps", type=int, default=1, help="梯度累积步数") parser.add_argument("--accumulation_steps", type=int, default=1, help="梯度累积步数")
parser.add_argument("--grad_clip", type=float, default=1.0, help="梯度裁剪阈值") parser.add_argument("--grad_clip", type=float, default=1.0, help="梯度裁剪阈值")
parser.add_argument("--log_interval", type=int, default=100, help="日志打印间隔") parser.add_argument("--log_interval", type=int, default=100, help="日志打印间隔")