Как запихнуть много токенов в одну модель????(обзор на alibi)
никто не посмотрит на это пока OPENAI не возьмут это
Вот вы никогда не хотели пихнуть в трансформер ну там книжку целиком? Курсач?
Короче есть следующие способы пихнуть токены в трансформер: Sin, rotary, ALiBi
Синусоидальные позиционные эмбеддинги
представляют собой постоянные необучаемые векторы, которые добавляются к эмбеддингам токенов на входе в первый слой модели трансформера. Они помогают модели распознавать взаимосвязь между позицией токена и его смыслом. Например, токен "сегодня" должен иметь другой смысл, если он расположен в начале предложения и другой смысл, если он расположен в конце. Синусоидальные позиционные эмбеддинги помогают модели распознать эти различия.
Древние как говно мамонта(2018), дегрдадируют при любых увелечениях контекста относительно трейна(на 50 на самом деле, но пофиг)
Rotary
В отличие от подхода синусоидальных или обучаемых позиционных эмбеддингов, метод Rotary вносит информацию о позиции токена в модель на каждом слое, а не только на первом. Кроме того, он не добавляет информации о позиции к значениям self-attention. Выход из self-attention - это линейно трансформированная взвешенная сумма векторов входных значений; таким образом, при невнесении информации о позиции в значения, выходы каждого слоя трансформера не содержат явной информации о позиции токена
Не древние как говно мамонта(2021), дегрдадируют при любых увелечениях контекста относительно трейна(на 50 на самом деле, но пофиг)
Почитать про оба можно тут, прям хорошо
T5 BIAS injection
Для расчета значений внимания в немодифицированном трансформере мы считаем скалярное произведение каждого запроса с каждым соответствующим ключом и затем софтмакс эти значения внимания.
В этом методе мы рассчитываем значения внимания как обычно, но затем добавляем к каждому скору запроса-ключа изученное общее смещение, которое зависит лишь от расстояния между запросом и ключом. Поэтому все скоры запроса-ключа, где расстояние между запросом и ключом равно нулю (т. е. запрос и ключ представляют то же самое токен), получают конкретное изученное смещение.
Бонусом это позволяет увеличивать почти в два раза context len.
Так, а чем ALIBI отличается?
Красивое? мне тоже нравится, а способ простой:
Все? ну не совсем, в качестве m используются баесы из T5, но модифицированные, те разница коэфицентов между удаленными токенами выше чем между близкими.
Результат:
Чуть быстрее сходиться(11%), чуть быстрее работает, сильно лучше на длинных последовательностях(в теории можно учить на 1024 и инферить до 10к токенов за раз БЕЗ тюна)
ЕСЛИ ВЫ ДОЧИТАЛИ ДО ЭТОГО МОМЕНТА НАПИШИТЕ В КОММЕНТАХ: привет, я твой единственный подписчик, сейчас напишу со всех своих аккаунтов