Существует два подхода, которые вы можете использовать:
- Просто усредните состояния, которые вы получаете от кодировщика;
- Заранее добавьте специальный токен
[CLS]
(или что вам нравитсяназовите его) и используйте скрытое состояние для специального токена в качестве входных данных для вашего классификатора.
Второй подход используется BERT .При предварительном обучении скрытое состояние, соответствующее этому специальному токену, используется для прогнозирования, являются ли два предложения последовательными.В последующих задачах он также используется для классификации предложений.Однако мой опыт показывает, что иногда усреднение скрытых состояний дает лучший результат.
Вместо обучения модели Transformer с нуля, возможно, более удобно использовать (и, в конечном итоге, точно настраивать) предварительно обученную модель (BERT, XLNet, DistilBERT, ...) из комплекта трансформаторов .Он имеет предварительно обученные модели, готовые к использованию в PyTorch и TensorFlow 2.0.