Привет — просто хотел присоединиться к своим мыслям. Использование любого классификатора для такого большого количества классов может оказаться проблемой — хотя я наткнулся на эту интересную статью, в которой показано, как ULMFiT использовался в производстве для 25 классов с ограниченными данными для обучения. Обратите внимание, что была проведена некоторая тщательная настройка гиперпараметров (а не просто разморозка).

Главное, что нужно помнить об ULMFiT, заключается в том, что этап точной настройки языковой модели (запускаемый перед этапом классификации) имеет решающее значение с точки зрения адаптации предварительно обученной модели к новым целевым данным. Чтобы точно настроить языковую модель, убедитесь, что скорость обучения (после разморозки) выбрана правильно для вашего набора данных после запуска утилиты lr_find. Вы должны знать, что ваша языковая модель улучшает ваши целевые данные, наблюдая, как точность увеличивается с каждой эпохой.

Этап классификации немного сложнее (по крайней мере, по моему опыту) — он требует постепенного размораживания и более тщательного выбора правильных скоростей обучения — это может потребовать некоторых проб и ошибок, чтобы выяснить это в зависимости от набора данных.

Поскольку ULMFiT выполняет тонкую настройку языковой модели и тонкую настройку классификатора по отдельности, может потребоваться некоторый опыт и навыки, чтобы правильно настроить его для вашего конкретного случая использования. Кроме того, для 80 классов может иметь смысл попытаться получить как можно больше помеченных обучающих данных (это также поможет шагу тонкой настройки языковой модели, поскольку существует больший целевой словарь для повышения точности языковой модели). Надеюсь это поможет!