Заменить двунаправленный LSTM на GRU в coref?
Я тренирую корреферентную модель от грубого к точному (для другого языка, кроме английского) от Allennlp с конфигурациями шаблонов из bert_lstm.jsonnet. Когда я заменяю тип «lstm» контекстного слоя на «gru», это работает, но, похоже, очень мало влияет на обучение. Одни и те же 63 ГБ ОЗУ потребляются каждую эпоху, валидационный показатель f1 колеблется вокруг одного и того же значения. Действительно ли это изменение в конфигурации заменяет уровень Bi-LSTM на уровень Bi-GRU, или я что-то упустил?
"context_layer": {
"type": "gru",
"bidirectional": true,
"hidden_size": gru_dim,
"input_size": bert_dim,
"num_layers": 1
},
1 ответ
Потребуются некоторые эксперименты, чтобы быть уверенным, но я предполагаю, что все происходит внутри BERT (вашего встраивающего устройства), и
context_layer
делает очень мало, независимо от того, является ли это GRU или LSTM. Если вы посмотрите на аналогичную конфигурацию SpanBERT, контекстный уровень там на самом деле просто сквозной.
Аналогично для памяти: большая часть памяти потребляется BERT. Уровень контекста мало влияет на потребление памяти.