我创建了一个工作流,要求用户发布问题以对问题进行预测。我使用BERT 神经网络模型进行预测,并使用SQUAD 2.0使用 TPU 进行训练。当我在以下 JSON 结构的上下文中加载一两个段落时:
{
"data": [
{
"paragraphs": [
{
"qas": [
{
"question": "question",
"id": "65432sd54654dadaad"
}
],
"context": "paragraph"
}
]
}
]
}
并将其发送以预测答案,每个单独的问题需要一分钟。以下是我注意到的事情: 上下文和问题被转换为 1 0 或 True False 然后预测开始。预测大约需要 20 秒或更短的时间。
如果我尝试将 5MB 的文本添加到上下文中,则需要整整两个小时才能转换为 1 0 或真假然后预测答案。
是否可以加载一次上下文并动态预测问题的答案?我使用run_squad.py。这些是我使用的标志:
python run_squad.py \
--vocab_file=$BERT_LARGE_DIR/vocab.txt \
--bert_config_file=$BERT_LARGE_DIR/bert_config.json \
--init_checkpoint=$BERT_LARGE_DIR/model.ckpt \
--do_train=False \
--train_file=$SQUAD_DIR/train-v2.0.json \
--do_predict=True \
--predict_file=$SQUAD_DIR/dev-v2.0.json \
--train_batch_size=24 \
--learning_rate=3e-5 \
--num_train_epochs=2.0 \
--max_seq_length=384 \
--doc_stride=128 \
--output_dir=gs://some_bucket/squad_large/ \
--use_tpu=True \
--tpu_name=$TPU_NAME \
--version_2_with_negative=True