Cartography 项目使用教程
1. 项目目录结构及介绍
Cartography 项目的目录结构如下:
cartography/
├── configs/
│ └── ...
├── data/
│ └── data_map_coordinates/
│ └── ...
├── notebooks/
│ └── ...
├── sample/
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── ...
目录介绍
- configs/: 包含项目的配置文件,用于定义任务和模型的配置。
- data/: 包含数据文件,特别是
data_map_coordinates/
目录下存放了用于生成数据地图的坐标数据。 - notebooks/: 包含 Jupyter Notebook 文件,用于数据地图的可视化。
- sample/: 包含示例文件,展示了如何使用项目中的代码。
- .gitignore: Git 忽略文件,定义了哪些文件和目录不需要被 Git 跟踪。
- LICENSE: 项目的开源许可证文件,本项目使用 Apache-2.0 许可证。
- README.md: 项目的说明文件,包含了项目的概述、使用方法和引用信息。
- requirements.txt: 项目的依赖文件,列出了项目运行所需的 Python 包。
2. 项目启动文件介绍
Cartography 项目的启动文件主要用于训练模型和生成数据地图。以下是主要的启动文件及其功能:
训练模型
python -m cartography.classification.run_glue \
-c configs/$TASK.jsonnet \
--do_train \
--do_eval \
-o $MODEL_OUTPUT_DIR
- cartography.classification.run_glue: 用于训练 GLUE 风格的模型。
- -c configs/$TASK.jsonnet: 指定任务的配置文件。
- --do_train: 启用训练模式。
- --do_eval: 启用评估模式。
- -o $MODEL_OUTPUT_DIR: 指定模型输出的目录。
生成数据地图
python -m cartography.selection.train_dy_filtering \
--plot \
--task_name $TASK \
--model_dir $PATH_TO_MODEL_OUTPUT_DIR_WITH_TRAINING_DYNAMICS \
--model $MODEL_NAME
- cartography.selection.train_dy_filtering: 用于生成数据地图。
- --plot: 启用绘图模式。
- --task_name $TASK: 指定任务名称。
- --model_dir $PATH_TO_MODEL_OUTPUT_DIR_WITH_TRAINING_DYNAMICS: 指定包含训练动态的模型输出目录。
- --model $MODEL_NAME: 指定模型名称。
3. 项目的配置文件介绍
Cartography 项目的配置文件主要存放在 configs/
目录下,每个任务都有一个对应的配置文件。以下是配置文件的主要内容:
配置文件示例
{
"task_name": "SNLI",
"model_name": "roberta-large",
"data_dir": "path/to/data",
"output_dir": "path/to/output",
"max_seq_length": 128,
"do_train": true,
"do_eval": true,
"per_gpu_train_batch_size": 8,
"per_gpu_eval_batch_size": 8,
"num_train_epochs": 3,
"learning_rate": 5e-5,
"warmup_steps": 0,
"logging_steps": 500,
"save_steps": 500,
"evaluate_during_training": true
}
配置项介绍
- task_name: 任务名称,如 SNLI、MNLI 等。
- model_name: 使用的模型名称,如 roberta-large。
- data_dir: 数据文件的存放路径。
- output_dir: 模型输出的存放路径。
- max_seq_length: 输入序列的最大长度。
- do_train: 是否启用训练模式。
- do_eval: 是否启用评估模式。
- per_gpu_train_batch_size: 每个 GPU 的训练批次大小。
- per_gpu_eval_batch_size: 每个 GPU 的评估批次大小。
- num_train_epochs: 训练的轮数。
- learning_rate: 学习率。
- warmup_steps: 预热步数。
- logging_steps: 日志记录的步数。
- save_steps: 模型保存的步数。
- evaluate_during_training: 是否在训练过程中进行评估。
通过以上配置文件,可以灵活地调整模型的训练和评估参数,以适应不同的任务需求。