
Исследователь Джошуа Пенман (Joshua Penman) представил метод Semantic Overlays — способ защиты языковых моделей от промпт-инъекций, который работает на уровне внутреннего представления модели, а не на уровне текста. Проект опубликован на Hacker News с живым демо и сопровождается препринтом на arXiv.
Суть проблемы: всё, что видит языковая модель — это токены. Инфраструктура знает, что является пользовательским вводом, выводом инструмента или веб-страницей, но модель вынуждена отслеживать это сама. Любой текст может имитировать инструкцию. Semantic Overlays добавляют второй канал: небольшие обученные адаптеры на замороженной модели срабатывают только на помеченных позициях токенов, аннотируя фрагмент в residual-потоке. Никакой текст не может имитировать эту метку, а непомеченный запрос запускает замороженную модель без изменений.
Как это работает
Метод заимствует концепцию NX (no-execute) бита из архитектуры процессоров. В железе это позволяет пометить область памяти как данные — CPU читает её, но отказывается выполнять как код. Semantic Overlays делают то же самое для языковых моделей. Разработчик пишет задание; веб-страница возвращается с встроенной инструкцией. Адаптеры помечают весь полученный фрагмент как «не выполнять» — он остаётся полностью читаемым, но теряет авторитет отдавать команды.
Демонстрация и результаты
Доступно живое демо на Qwen-3.5-9B. Пользователь может вооружить язык (Ruby, C, Python) и кликнуть на сниппет, чтобы наложить метку. Без метки модель видит обычный текст. В демо также реализована функция сравнения поведения с и без наложенных меток.
На всех доступных бенчмарках промпт-инъекций чёрного ящика Qwen-3.5-9B с Semantic Overlays показывает SOTA-результаты. Важно: автор подчёркивает, что не обучался на этих тестах. Белые атаки (whitebox), где атакующий знает архитектуру защиты, выходят за рамки текущей работы.
Практические ограничения
Метод требует дообучения адаптеров для каждой модели. На данный момент адаптеры доступны только для Qwen-3.5-9B. Автор отмечает, что белые атаки не рассматривались — это оставляет пространство для будущих исследований. Кроме того, наложение меток требует изменения в serving-стеке: инфраструктура должна знать, какие фрагменты контекста маркировать.
Ресурсы
Проект открыт: код на GitHub (репозиторий JoshuaSP/semantic-overlays), адаптеры на Hugging Face (joshuapenman/semantic-overlays-adapters). Препринт на arXiv: 2608.23873. Видеодемонстрация доступна в X (бывший Twitter) по ссылке в источнике.
Источники
Оригинальная публикация на Hacker News: https://news.ycombinator.com/item?id=49525220
Демо: https://semantic-overlays.vercel.app/
Препринт: https://arxiv.org/abs/2608.23873
Код: https://github.com/JoshuaSP/semantic-overlays
Адаптеры: https://huggingface.co/joshuapenman/semantic-overlays-adapters
