Post content
Хорошая статья с разбором RingAttention - метода вычисления Attention с задействованием всех доступных карт, при этом не сильно упираясь в communication costs. Мотивация растет как всегда из того, что у Attention квадратичная сложность, и на больших контекстах потребление памяти становится огромным. Но даже с учетом оптимизаций FlashAttention (где за счет ухода от хранения полной матрицы QxK сложность памяти снижается до линейной) мы упираемся в проблемы для контекстов в сотни тысяч/миллион и больше. Поэтому хочется использовать несколько карт, чтобы распределить нагрузку на память. Собственно метод предлагает вариант реализации такого алгоритма, а в статье довольно подробно описаны все технические моменты по типу разбиения матриц Q, K, V и агрегация результатов для подсчета коэффициентов.