Ай Дайджест

Свежая выжимка ml и AI статей - каждый день

Когда точность встречает позицию: BFloat16 нарушает RoPE в обучении с длинным контекстом

В последние годы в области обработки естественного языка наблюдается значительный прогресс в моделях, способных обрабатывать все более длинные последовательности. Контекстное окно в 128К токенов позволяет крупным языковым моделям (LLM) справляться с более сложными задачами, такими как многодокументный вопросно-ответный анализ, понимание кода на уровне репозитория и обучение с множеством примеров, захватывая зависимости на больших расстояниях. Это ведет к более когерентным и контекстно-релевантным результатам.

Архитектуры трансформеров включают в себя позиционные эмбеддинги, такие как синусоидальные эмбеддинги, для кодирования порядка последовательности, что критически важно для обработки последовательных данных. Широко принятый вариант, Rotary Position Embeddings (RoPE), получил популярность благодаря своим свойствам кодирования относительных позиций, что позволяет моделям лучше обобщать на последовательности длиннее тех, которые были видны во время обучения.

BFloat16 и его влияние на RoPE

BFloat16 (Brain Floating Point) стал стандартным форматом для обучения крупномасштабных моделей глубокого обучения. Он предлагает баланс между вычислительной эффективностью и численной точностью, уменьшая требования к памяти и ускоряя обучение без значительного влияния на точность модели. Однако, при использовании RoPE в сочетании с BFloat16, мы обнаружили критическую проблему: позиционные эмбеддинги теряют свои относительные свойства.

Эта деградация происходит из-за ограниченной точности BFloat16, которая влияет на вращательные преобразования в RoPE, приводя к неточному кодированию позиций. Проблема наиболее выражена для первого токена в последовательности, где кодирование позиции значительно отклоняется от предполагаемого значения. По мере увеличения размера окна обучения, численные ошибки накапливаются, усугубляя проблему и оказывая более существенное влияние на производительность модели.

Предложение AnchorAttention

Для улучшения обучения моделей с длинным контекстом, мы предлагаем новый механизм внимания, AnchorAttention, который:

  1. Улучшает долгосрочные способности модели - AnchorAttention позволяет модели лучше справляться с длинными контекстами, сохраняя при этом ее способности на общих задачах.

  2. Ускоряет обучение - Этот метод сокращает время обучения более чем на 50% по сравнению со стандартным полным вниманием.

  3. Минимизирует модификации в существующих пайплайнах обучения - AnchorAttention легко интегрируется в существующие системы обучения, требуя минимальных изменений.

Основная инновация AnchorAttention заключается в том, что первый токен рассматривается как общий якорь, которому всегда присваивается начальный позиционный ID, делая его видимым для всех документов в контекстном окне, в то время как токены из разных документов не видны друг другу. Это позволяет модели сохранять согласованность позиционных отношений, уменьшать накопление численных ошибок и улучшать семантическую когерентность.

Экспериментальные результаты

Эксперименты на трех типах LLM показали, что AnchorAttention значительно улучшает производительность на длинном контексте и сокращает время обучения по сравнению со стандартными механизмами полного внимания, сохраняя при этом способности модели на общих задачах. На реальных бенчмарках с длинным контекстом, таких как LongBench, AnchorAttention улучшает производительность обучения в контексте, сохраняя при этом производительность модели на общих задачах, таких как MMLU и HellaSwag.

Заключение

В данной статье мы выявили критическую проблему, где сочетание RoPE и BFloat16 нарушает свойства относительного позиционного кодирования RoPE, особенно в сценариях с длинным контекстом. Наше исследование показало, что первый токен в последовательности вносит значительный вклад в эту проблему, и она усугубляется с увеличением размера окна обучения из-за накопления численных ошибок. В ответ на это, мы предложили AnchorAttention, новый механизм внимания, который сохраняет целостность относительных свойств RoPE, сокращает количество токенов, участвующих в вычислениях внимания, и уменьшает накопление численных ошибок. Наши эксперименты подтвердили, что AnchorAttention превосходит полное внимание и стандартные методы внимания внутри документа на бенчмарках с длинным контекстом, показывая его эффективность и широкую применимость.