Готовимся к собесу: positional encodings в 2025 году

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Если вы до сих пор считаете, что positional encoding в трансформерах — это знаменитые sin/cos из статьи 2017 года, то боюсь, что собеседование для вас закончится автоматическим реджектом.

Позиционное кодирование заметно эволюционировало с момента появления оригинальной статьи о трансформерах. В современных LLM и моделях компьютерного зрения, таких как FLUX, уже давно не используется классическое sin/cos-кодирование.

Про это почему-то не знают 80% кандидатов на интервью, хотя, казалось бы, эта информация уже давно перешла в разряд «базовой классики».

В этой статье я разберу популярные вопросы с технических собеседований, связанные с позиционным кодированием: как оно устроено, как реализуется в современных моделях, расскажу про relative encodings, как устроено позиционное кодирование в T5, а также завершим обзор rotary embeddings.

Разбирать темы будем в формате реального собеседования — покажу, как правильно отвечать на вопросы, чтобы производить впечатление опытного специалиста и показать своё глубокое понимание устройства трансформеров.

Формат: вопрос — ответ.

Вопрос 1. Зачем в трансформере позиционное кодирование, что это такое?

Ответ:

Для начала коротко расскажу об устройстве трансформера и операции self-attention.

Небольшое напоминание (mini-recap) про архитектуру трансформера:
Предположим, что мы работаем с текстовыми данными. На первом этапе последовательность слов нужно преобразовать в числовой формат, удобный для нейросетки — этот процесс называется токенизацией . Каждому слову (грубо говоря, хотя на деле токены — это более атомарные единицы, чем целое слово) присваивается свой уникальный вектор — эмбеддинг , который передаётся в нейросеть для дальнейшей обработки и получения предсказания.

Токенизация сырой строки в эмбеддинги слов
Токенизация сырой строки в эмбеддинги слов

Трансформер изначально не учитывает порядок слов в предложении. Механизм внимания работает с элементами как с множеством, а не как с последовательностью. То есть для него “кошка видит собаку” и “собака видит кошку” — одинаковые наборы слов.

Позиционное кодирование (positional encoding) — это способ добавить в модель информацию о позиции каждого токена в последовательности. В оригинальной статье оно прибавляется к эмбеддингам токенов до входа в первый слой self-attention.

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

Источник: https://habr.com/ru/articles/926368/


Интересные статьи

Интересные статьи

Привет! Я Максим Мялкин, управляющий партнер и руководитель мобильной разработки в KTS.Сегодня я хочу поделиться историей моего знакомого и бывшего студента Сергея Ракова. Его карьера сложилась доволь...
Конструктор сайтов Тильда давно зарекомендовал себя как удобный инструмент для создания сайтов — на его базе реализованы десятки тысяч проектов. Некоторые из них размещены на серверах самой платформы,...
Компания «Деловой разговор» — Титановый партнер 3СХ — осуществила расширенную интеграцию IP-АТС 3CX с Битрикс 24. Ранее уже существовали отдельные модули, решающие конкретные задачи, напр...
Сравнивать CRM системы – дело неблагодарное. Очень уж сильно они отличаются в целях создания, реализации, в деталях.
Предисловие Довольно часто пользователи, разработчики и администраторы СУБД MS SQL Server сталкиваются с проблемами производительности БД или СУБД в целом, поэтому весьма актуальным является мон...