Словарь ИИ
Что такое позиционное кодирование
Коротко
Позиционное кодирование это способ сообщить трансформеру порядок слов: к описанию каждого токена добавляют сведения о его месте в тексте.
Языковые модели · positional encoding
Михаил МозгПроверено: 1 минута чтения
Ребенку
Представь, что ты высыпал на стол карточки со словами из стихотворения. Слова все те же, но стих пропал, потому что перепутался порядок. Чтобы собрать его обратно, на каждой карточке пишут номер строки и место в ней. Нейросети тоже нужны такие номера, иначе она видит слова кучей и не понимает, что за чем идет.
Простыми словами
Трансформер смотрит на все слова текста одновременно. Это быстро, но у такой схемы нет встроенного чувства очередности: фразы «сначала оплата, потом доставка» и «сначала доставка, потом оплата» для нее состоят из одного и того же набора кусочков. Поэтому к каждому токену примешивают метку места. В первых моделях это был набор волн разной частоты, у каждой позиции свой узор. В современных моделях метку чаще встраивают прямо в расчет внимания, и модель учитывает, насколько далеко друг от друга стоят слова.
Для бизнеса
Компании редко выбирают способ кодирования позиций напрямую, но он определяет важную для них характеристику: сколько текста модель надежно читает за раз. От схемы зависит, справится ли модель с документом длиннее тех, на которых ее обучали. Некоторые схемы позволяют растянуть окно после обучения, однако качество на дальних фрагментах может падать: модель начинает пропускать условия из середины длинного договора. Поэтому заявленный размер окна не стоит принимать на веру. Перед внедрением прогоните модель на своих длинных документах и проверьте, находит ли она факты из начала, середины и конца. Такой тест входит в пилот.
Для специалиста
Позиционное кодирование (positional encoding) вносит информацию о порядке в архитектуру, которая без него не различает перестановки токенов. Vaswani и соавторы (2017) прибавляли к эмбеддингам синусоиды и косинусоиды разных частот, а обучаемые позиционные эмбеддинги (learned positional embeddings) дали у них почти тот же результат. Это абсолютные схемы: позиция задается номером. Относительные схемы учитывают расстояние между токенами. RoPE (Rotary Position Embedding, Su и соавторы, 2021) поворачивает векторы запросов и ключей матрицей вращения, угол которой зависит от позиции, поэтому их скалярное произведение во внимании зависит от разности позиций. ALiBi (Press, Smith, Lewis, 2021) отказывается от позиционных эмбеддингов и штрафует оценки внимания пропорционально расстоянию: модель на 1,3 млрд параметров, обученная на последовательностях по 1024 токена, на 2048 токенах показала ту же перплексию, что синусоидальная модель, обученная сразу на 2048. Для расширения окна моделей с RoPE применяют интерполяцию позиций.
Пример
Юрист загружает в модель договор на сто страниц и спрашивает про штраф из середины текста. Если схема позиций плохо работает на такой длине, модель уверенно цитирует похожий пункт из начала и ошибается.
Связанные термины
Вопросы и ответы
Зачем трансформеру позиционное кодирование?
Чем RoPE отличается от синусоидального кодирования?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений