Symbolic Knowledge Distillation: from General Language Models to Commonsense Models
https://arxiv.org/abs/2110.07178
Как известно, Трансформеры учатся на очень шумных данных (куче накроуленых текстов из интернета), поэтому часто страдают из-за логических противоречий и отсутствия здравого смысла при генерации. Чтобы обучить логичную и последовательную модель как правило используют графы знаний, составленные людьми. Например датасет ATOMIC содержит в себе наборы фактов и все следующие из них высказывания. i.e. Х доверяет Y -> X доверчивый (атрибут), X хочет иметь дела с Y (желание), до этого X нужно было подружиться с Y (необходимость) и так далее. Проблема в том, что собирать такие данные довольно дорого и долго. Поэтому авторы предлагают дистиллировать большую языковую модель:
• Семплят из ATOMIC высказывания и подают в GPT-3 через промты типа
Event <i>: X goes jogging
Prerequisites: For this to happen, X needed to wear running shoes.
При инференсе промт отбрасывается после 'For this to happen, '. Для каждого типа заданий свой промт, например, для генерации эффекта прописывается 'As a result, '
• Классификтором-критиком из получившегося корпуса дополнительно фильтруются нелогичные или просто кривые высказывания. В итоге их корпус получается в 10 раз больше оригинального, не теряя в качестве. При чем, при ручной валидации качество 'синтетического' датасета оказывается выше, чем у корпуса, составленного людьми
• На получившемся корпусе потом тренируют GPT-2 (она в 100 раз меньше в плане параметров, чем модель-учитель). На основе человеческой валидации, модель-ученик в итоге справляется лучше с генерацией commonsense knowledge
Post #765
2.29K