【发布时间】:2021-04-20 10:45:50
【问题描述】:
我对 allennlp 还是很陌生,我正在努力构建一个似乎不完全符合在 allennlp 中构建模型的标准方式的模型。
我想使用 NLP 构建管道模型。流水线基本上由两个模型组成,我们称它们为 A 和 B。首先训练 A,然后基于完整训练 A 的预测,然后训练 B。
我所看到的是人们定义了两个独立的模型,使用命令行界面allennlp train ... 在一个看起来像的 shell 脚本中训练这两个模型
# set a bunch of environment variables
...
allennlp train -s $OUTPUT_BASE_PATH_A --include-package MyModel --force $CONFIG_MODEL_A
# prepare environment variables for model b
...
allennlp train -s $OUTPUT_BASE_PATH_B --include-package MyModel --force $CONFIG_MODEL_B
我对此有两个担忧:
- 这段代码很难调试
- 它不是很灵活。当我想对经过全面训练的模型进行前向传递时,我编写了另一个脚本来执行此操作。
关于如何以更好的方式做到这一点的任何想法?
我考虑过使用 python 脚本而不是 shell 脚本并直接调用 allennlp.commands.main(..)。这样做至少你有一个可以使用调试器运行的联合 python 模块。
【问题讨论】:
标签: allennlp