Новая SOTA модель для русского языка FRED-T5 доступна на HuggingFace. 🚀🚀🚀



FRED-T5-1.7B

FRED-T5-large (820M)



Модель 1.7B показала лучший скор на RussianSuperGLUE и на текущий момент является SOTA для русского языка.

FRED-T5 основана на базе архитектуры T5. Изначально мы целились в ПРОМопригодность модели при выборе архитектуры. Мы использовали bbpe токенайзер от ruGPT3 (до large размера). Модель обучалась на миксе денойзеров. Денойзеры похожие, как в пейпере UL2. Если не слышали про UL2, то можно тут прочитать. Мы использовали равномерное распределение в задачах span corruption при выборе длины спана. И у нас было 7 денойзеров на каждый вариант семплирования (в UL2 было 3). Модель первую часть тренировки обучалась на 3.5Gb данных (чуть больше 1% от всего сета 300Gb). После она была дообучена на всем сете. Всего модель видела 1.5T токенов.

Вот такие денойзеры:

‘<LM>’:(µ = L/4, r = 0.25)

‘<SC1>’:(µ = 3, r = 0.15)

‘<SC2>’:(µ = 8, r = 0.15)

<SC3>’:(µ = 64, r = 0.15)

‘<SC4>’:(µ = 3, r = 0.5)

‘<SC5>’:(µ = 8, r = 0.5)

‘<SC6>’:(µ = 64, r = 0.5)

µ — это средняя длина спана в токенах, а r— это доля удаленных токенов



Ничего не поняли?) Через пару дней выйдет наша статья на Хабре, где мы расскажем детали.



Как можно юзать модель?

Берем токенизатор GPT2 и модель T5 из HF.

tokenizer = GPT2Tokenizer.from_pretrained('ai-forever/FRED-T5-1.7B',eos_token='</s>')

model = T5ForConditionalGeneration.from_pretrained(('ai-forever/FRED-T5-1.7B')

Не забывайте руками добавлять ‘</s>’ если он нужен вам. GPT2Tokenizer не делает это по умолчанию.



Советы по файнтюну.

При файнтюне модели можно использовать префиксы денойзеров, которые использовались при обучении ‘<LM>’, ‘<SC1>’,...’<SC6>’. Добавляете в начале текста, подаваемого на энкодер. Если задача LM, то лучше использовать префикс ‘<LM>’, в остальных случаях можно без префикса. При файнтюне на RSG мы не увидели значимых различий в предиктах в зависимости от префикса и без его использования. Если ваша задача похожа на одну из задач денойзинга, то конечно стоит попробовать взять соответствующий префикс. Мы часто при файнтюне используем оптимизатор Adafactor c постоянным lr=0.001. Он чаще дает лучшие результаты чем AdamW.