MetaMorph 使用教程
1. 项目目录结构及介绍
MetaMorph 项目目录结构如下:
metamorph/
├── images/ # 存放图像数据的目录
├── inference/ # � infer 相关的脚本和示例
│ ├── DEMO.md # infer 使用指南
│ └── demo.py # infer 示例脚本
├── metamorph/ # 主代码模块
├── scripts/ # 脚本目录,包含启动训练等脚本
│ ├── pretrain_1node.sh # 单节点预训练脚本
│ ├── finetune_1node.sh # 单节点微调脚本
│ └── slurm_train.sh # SLURM 多节点训练脚本
├── visualization/ # 训练可视化资源
│ ├── train.py # 主训练脚本
│ ├── submit.sh # SLURM 提交脚本
│ └── Train_Visualization.md # 训练可视化指南
├── .gitignore # 忽略文件列表
├── CODE_OF_CONDUCT.md # 项目行为准则
├── CONTRIBUTING.md # 贡献指南
├── LICENSE # 项目许可证
├── README.md # 项目说明文件
└── pyproject.toml # 项目配置文件
2. 项目的启动文件介绍
项目的启动主要依赖于 scripts
目录下的脚本。以下是几个主要的启动文件及其介绍:
pretrain_1node.sh
: 用于在单个节点上启动预训练过程的脚本。finetune_1node.sh
: 用于在单个节点上启动微调过程的脚本。slurm_train.sh
: 用于在支持 SLURM 的多节点集群上启动训练的脚本。
用户可以根据自己的需要选择相应的脚本,并在终端中执行以启动项目。
3. 项目的配置文件介绍
项目的配置主要通过 pyproject.toml
文件进行。该文件包含了项目的元数据和依赖信息。以下是配置文件的部分内容示例:
[tool.poetry]
name = "metamorph"
version = "0.1.0"
description = "Code for MetaMorph Multimodal Understanding and Generation via Instruction Tuning"
authors = ["Shengbang Tong", "David Fan", "Jiachen Zhu", "Yunyang Xiong", "Xinlei Chen", "Koustuv Sinha", "Michael Rabbat", "Yann LeCun", "Saining Xie", "Zhuang Liu"]
[tool.poetry.dependencies]
python = "^3.11"
torch = "^1.12"
transformers = "^4.20"
[tool.poetry.dev-dependencies]
pytest = "^6.2"
在这个配置文件中,定义了项目的名称、版本、描述、作者和依赖项。通过修改此文件,用户可以更新项目信息或添加/删除依赖项。在项目开发过程中,配置文件是管理和维护项目依赖关系的重要工具。