Неделя начинается с идей. Heroes of Might and Magic NLP.



Как-то после диалога в одном AI чатике, возникла мысля про насмотренность reward моделей.



В чем суть? Фишка в том, что количество качественных оценок preferences , т.е. размера сета для обучения reward не так уж и много. Всё-таки, это люди метят,а это дорого, долго, мало.



Возникает вопрос, а что делать если у фразы генерации есть несколько хороших парафраз которые reward не видел и не понимает, что в принципе такое возможно? На таких примерах для других хороших генераций мы будем получать рост ошибки, хотя по идее его и быть не должно.



Мне пришла идея (напишите в комментариях не huinэ ли это):

А давайте будем брать сразу для одного backbone сразу две головы. Одна будет учить preferences, а другая будет брать условные парафразы и в contrastive формате учить задачу сведения embeddings фраз с одним смыслом, разным написанием и разведением фраз про разное.



При этом этот же embeddings head от backbone наш reward берёт для принятия решения задачи ranking preferences. Т.е. у нас задача с двумя тасками и shared weights.



После обучения, мы откидываем голову парафразинга, а оставляем только reward. Т.к. это всё училось одновременно, то моделька теперь как SBERT или LaBSE понимает за то, что у нас бывают в языке фразы схожие по смыслу, но разные по написанию. Т.е. мы так работаем в ту самую насмотренность. Причём брать в качестве таких парафраз не обязательно именно генерации, достаточно брать general сеты а-ля SNLI, MNLI, XNLI. Но, конечно, если у вас есть возможность с генераций майнить норм парафразы надежные - ещё лучше.



Внизу разумеется накаляканная от руки схема.