Быстрый обзор новой статьи Deepseek о гиперсвязях с ограничениями на многообразие: - Вы хотите увеличить размер остатка с 1×C до n×C (n потоков вместо 1). Ранее обновление остатка: x' = x + layer(x). Сделайте x равным n×C и используйте x' = Ax + B layer(Cx) вместо этого. A, B, C все зависят от x и являются небольшими матрицами (n×n, n×1, n×1). A, похоже, имеет наибольшее влияние. Это гиперсвязи (HC). - HC имеет ту же проблему, что и другие схемы модификации остатка - в конечном итоге произведение изученных матриц A (вдоль пути идентичности) взрывается/исчезает. - Чтобы это исправить, они проецируют матрицы A на полиэдр Биркгофа (проще говоря: трансформируют его, после экспоненты, чтобы сделать элементы положительными, в матрицу, сумма строк и сумма столбцов которой становятся равными 1 - называется двойственно стохастической матрицей). Это имеет хорошие свойства - произведения таких матриц все еще имеют сумму строк и столбцов равной 1 (из-за замыкания), так что ничего не взрывается (спектральная граница), и инвариант заключается в том, что сумма весов по потокам равна 1. Для n = 1 это становится стандартным остаточным потоком, что хорошо. Их метод трансформации прост - поочередно делите строки и столбцы на суммы строк и столбцов соответственно в течение 20 итераций (сходится к нашей желаемой матрице, когда итерации стремятся к бесконечности). Они находят, что 20 достаточно для прямого и обратного прохода (по 60 слоям, максимальная обратная выгода составляет 1.6 по сравнению с 3000 от обычного HC, и 1.6 не сильно отличается от 1). - Составление этих матриц (выпуклая оболочка всех перестановочных матриц) приводит к смешиванию информации по мере увеличения индекса слоя, что является хорошим интуитивным моментом и также очень четко показано в их составной матрице для 60 слоев. Я считаю, что в целом мы получаем взвешенную сумму остаточных путей (думая о градиентах), где логически группируемые пути имеют веса, суммирующиеся в 1. Довольно принципиальный подход, на мой взгляд, также делает приросты (вперед и назад) очень стабильными. - Интересный момент - много "пуллинга"-подобного смешивания в первой половине по сравнению со второй половиной слоев. Вторая половина слоев обрабатывает разные каналы более точно/четко, чем первая половина, довольно интуитивно. - Они также изменяют параметризацию B и C (сигмоида вместо тангенса, чтобы, вероятно, избежать изменения знаков, и фактор 2 перед B, я полагаю, чтобы сохранить средний множитель остатка, C не нуждается в этом, потому что вход уже нормирован). - Классные оптимизации систем, чтобы сделать эту операцию быстрой - они выполняют слияние ядер, пересчет в обратном проходе mHC и даже модифицируют DualPipe (их реализация параллелизма конвейера). - Всего 6.7% накладных расходов на обучение, когда n = 4, потеря снижается на 0.02 и улучшается по всем бенчмаркам.