PaddlePaddle / RocketQA

🚀 RocketQA, dense retrieval for information retrieval and question answering, including both Chinese and English state-of-the-art models.
Apache License 2.0
764 stars 130 forks source link

提供命令行工具用于简化模型训练 #70

Open RussellLuo opened 1 year ago

RussellLuo commented 1 year ago

问题

当前训练或微调一个模型,除了构造训练集,还需要做以下多个步骤:

  1. 参考 Train Your Own Model 编写一个训练脚本
  2. 训练结束后,需要 删除其中 moment 文件,以减小模型
  3. 为了运行模型,需要通过拷贝 examples/de_modelsexamples/ce_models 建立模型目录
  4. 然后修改 config.json 中的 ${YOUR_MODEL},指向第 2 步中的目录(参考1参考2

个人以为,上述训练操作除了步骤较多比较繁琐,还会对初学者造成比较大的困惑(初学者更喜欢开箱即用和一键操作)。

提议

新增一个 rocketqa 命令行工具,当前先提供 train 子命令用于训练或微调模型(自动完成上述 4 个步骤),后续可以按需扩展新的子命令。

rocketqa 命令:

$ rocketqa -h
usage: rocketqa [-h] {train} ...

optional arguments:
  -h, --help  show this help message and exit

commands:
  {train}
    train     train or finetune the dual/cross encoder model

rocketqa train 子命令:

$ rocketqa train -h
usage: rocketqa train [-h] [--use-cuda] [--epoch EPOCH] [--out OUT] [--save-steps SAVE_STEPS] [--learning-rate LEARNING_RATE] base_model train_set

positional arguments:
  base_model            base model
  train_set             train set

optional arguments:
  -h, --help            show this help message and exit
  --use-cuda            whether to run models on GPU (default: False)
  --epoch EPOCH         epoch (default: 2)
  --out OUT             output directory (default: ./models)
  --save-steps SAVE_STEPS
                        save steps (default: 1000)
  --learning-rate LEARNING_RATE
                        learning rate (default: 1e-05)
procedure2012 commented 1 year ago

抱歉这周比较忙,没时间更新。下周我们会抽时间整理shell更新上去。十分感谢!

RussellLuo commented 1 year ago

下周我们会抽时间整理shell更新上去

是指用 shell 包装一个训练脚本吗?如果能做成一个通过 pip install 自动安装的命令行工具感觉会更方便。按照「提议」的风格,我自己实现了一个 rocketqa 命令,如果有用的话,可以作为参考 :)

procedure2012 commented 1 year ago

如果能做成一个通过 pip install 自动安装的命令行工具感觉会更方便

现在的rocketQA就提供了pip install安装的方案,这里是指什么意思?