Многозадачная модель AllenNLP: сохраните веса энкодеров для новых головок

Я обучил многозадачную модель (AllenNLP). Я хотел бы сохранить веса кодировщика / магистрали и продолжить обучение с новыми головами на новых наборах данных. Как я могу это сделать с AllenNLP?

У меня есть две основные идеи, как это сделать:

  1. Я выполнил это руководство по AllenNLP, чтобы загрузить обученную модель, а затем вместо того, чтобы просто создавать предсказания Я хотел изменить конфигурацию и головы моделей, чтобы продолжить обучение на новых наборах данных ... но я немного не понимаю, как это сделать.

  2. Я предполагаю, что должна быть возможность (а) сохранить состояние предварительно обученного кодировщика в файле, а затем (б) указать эти веса в файле конфигурации для новой модели (вместо того, чтобы указывать на bert-base-cased -весы например). Но если посмотреть на PretrainedTransformerEmbedder-class I не понимаю, как я могу передать свои веса модели этому классу.

В качестве дополнительного вопроса: можно ли также сохранять веса голов по отдельности и инициализировать новые головки с этими весами?

Любая помощь приветствуется :)


person sinaj    schedule 30.03.2021    source источник


Ответы (1)


Вторая идея - это предпочтительный способ, который можно реализовать, используя _ 1_. См. для примера того, как добавить это к вашей модели.

person petew    schedule 31.03.2021