Команда Granite представила LLMON — язык разметки, разработанный для языковых моделей, и выпустила две экспериментальные предварительные версии моделей: granite-4.1-3b-LLMON-preview и granite-4.1-8b-LLMON-preview. По словам авторов, этот формат делает явными структуру и смысл информации, предоставляемой модели, что повышает её устойчивость к инъекциям в промпт.
Большая языковая модель (LLM) генерирует каждый новый токен, то есть каждый фрагмент текста, на основе своего контекста. В ходе длительного взаимодействия этот контекст заполняется системными промптами, историей диалога, инструкциями к документам, ответами инструментов, пользовательскими данными, ограничениями и цепочками рассуждений. Большая часть этой структуры остаётся для модели неявной или закодирована в таких форматах, как JSON, которые не были предназначены для чтения LLM. По мнению источника, это частично объясняет хрупкость моделей, особенно меньших по размеру, а также некоторые неожиданные поведения. Отсутствие структуры также может быть использовано злоумышленниками, в частности, через инъекции в промпт.
LLMON, что расшифровывается как «LLM Object Notation», произносится как «lemon» (лимон). Его теги отмечают семантически целостные компоненты, обрамлённые специальными зарезервированными разделителями. Уникальные идентификаторы позволяют связать инструкцию, которая может находиться где угодно в контексте, с данными, к которым она должна применяться, подобно вызову функции с её аргументами в программировании.
Разделение инструкций и данных
Косвенная инъекция в промпт заключается в сокрытии вредоносной инструкции в данных, например, в полученном документе, ответе инструмента или пользовательском вводе. По словам источника, модели LLMON в значительной степени игнорируют такие скрытые инструкции благодаря явному разделению инструкций и данных. В некоторых тестах уровень успешных атак падает почти до нуля, тогда как классические модели с инструктивной настройкой обходятся с высокой вероятностью.
Авторы сравнили предварительные версии с несколькими моделями с открытым исходным кодом и проприетарными на тесте OPI, который встраивает инъекцию в данные классических задач обработки языка. Они измеряют устойчивость как «1 − уровень успешных атак». По их словам, LLMON «практически устраняет проблему» в этом тесте, избегая на 47% больше атак, чем лучшая протестированная передовая модель, и на 95% больше, чем лучшая модель с открытым исходным кодом. Аналогичные тенденции наблюдаются в тестах ASB и StruQ. Источник уточняет, что эти тесты касаются статических инъекций, и команда всё ещё работает над адаптивными атаками, которые разворачиваются в течение нескольких раундов диалога.
Общие возможности и обучение
По словам источника, улучшения в безопасности не достигаются за счёт общих возможностей: в основных категориях стандартных тестов модели LLMON показывают результаты, сопоставимые с моделями Granite 4.1 Instruct. Чтобы попробовать их, достаточно назвать части раунда диалога, например, instruction, data или requirement, — шаблон диалога автоматически преобразует их в блоки LLMON. Библиотека конвертации также позволяет обрабатывать структурированные данные, такие как JSON, в виде типизированных и адресуемых блоков.
Модели основаны на базовых контрольных точках Granite 4.1, а не на опубликованных инструктивных версиях. Авторы переписали классический корпус для инструктивной настройки в формат LLMON, а затем добавили блоки-приманки, присутствующие в контексте, но намеренно не связанные. Затем они применили пять этапов обучения с подкреплением GRPO, за которыми следовал этап DPO на основе тысячи пар предпочтений, полученных из ответов модели на попытки инъекции. В результате, по словам источника, формируется правило приоритета: инструкция, вызванная блоком исполнения, является авторитетной, в то время как данные, документы или результаты инструментов остаются элементами для чтения, а не приказами к исполнению. Авторы подчёркивают, что это приобретённое поведение, а не навязанная гарантия.
Источник также приводит пример адаптации на тесте ScienceWorld, где агент выполняет элементарные научные задачи. Был определён словарь тегов, специфичный для этой задачи, после чего на модели LLMON был обучен адаптер LoRA. Команды приглашаются поделиться своими отзывами в GitHub Discussions, поскольку проект, по словам авторов, остаётся экспериментальной предварительной версией, не предназначенной для промышленного использования.
