Raspberry Pi 5 без сети: подписанный отравленный пакет знаний прошёл все проверки

Георгиос Фередзакис и Александрос Папаспиридис прогнали полностью локальный RAG-ассистент на Raspberry Pi 5 под сетевой изоляцией: Qwen2.5 на 1.5B, 3B и 7B параметров и 300 вопросов из SQuAD 2.0. Они предложили шкалу связности C0–C4 и подписанные версионные «пакеты знаний» как канал обновления для устройств, которые неделями сидят без сети. Главный результат неприятный. Проверки подписи и хэша пропустили 6 из 9 атак на обновление, слоистая верификация отсекла все 9 за около 4,5 мс. Но валидно подписанный отравленный пакет прошёл все проверки и лишил модель правильных ответов на всех 30 целевых вопросах. • Шлюз по retrieval-скору: AUROC 0,97 для вопросов вне корпуса и 0,68 для неотвечаемых вопросов в теме • 3B даёт ту же долю gold-ответов, что 7B, при задержке и энергии менее половины • Код и выходы по каждому запросу открыты, таблицы воспроизводятся одной командой

AI-обработка оригинала Hugging Face Daily Papers; редакция Hamidun News
Raspberry Pi 5 без сети: подписанный отравленный пакет знаний прошёл все проверки
Источник: Hugging Face Daily Papers. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHugging Face Daily Papers ↗
Главный редактор
Шлюз по retrieval-скоруAUROC 0,97 для вопросов вне корпуса и 0,68 для неотвечаемых вопросов в теме
Ключевой факт #23B даёт ту же долю gold-ответов, что 7B, при задержке и энергии менее половины
Ключевой факт #3Код и выходы по каждому запросу открыты, таблицы воспроизводятся одной командой

Что будет с локальным ИИ-ассистентом, если он живёт на устройстве без сети, а доверять ему всё равно нужно? Исследователи Георгиос Фередзакис и Александрос Папаспиридис проверили это на Raspberry Pi 5: полностью локальный RAG под сетевой изоляцией, три размера Qwen2.5 (1.5B, 3B, 7B), три размера контекста и 300 вопросов из SQuAD 2.0. Итог: часть защитных механизмов работает почти идеально, а самая очевидная защита, цифровая подпись, оказывается недостаточной.

Пять режимов связи и пакеты знаний вместо облака

Большинство развёртываний генеративного ИИ в IoT исходит из того, что облако под рукой. Реальные устройства часто работают с перебоями, в закрытых контурах или вообще без связи. Авторы предложили для этого шкалу связности C0–C4, таксономию механизмов доверия на этапе инференса и канал обновления для отключённых режимов: подписанные версионные пакеты знаний. Устройство получает новый пакет, проверяет его и только потом подключает к базе, из которой модель достаёт контекст.

Где доверие работает, а где нет

Первый механизм — шлюз по оценке релевантности найденных фрагментов, откалиброванный эмпирически. Запросы, которых в корпусе нет вообще, он ловит почти идеально: AUROC 0,97. С неотвечаемыми вопросами внутри знакомой темы он справляется заметно хуже, AUROC 0,68. Такие вопросы похожи на документы корпуса, и по скору поиска их не отличить от нормальных.

Второй механизм — детерминированный валидатор вывода. Он превращает «кривые» ответы в явный отказ и при этом не отнял у модели ни одного правильного ответа. Проверяющая модель на основе NLI, которую авторы тоже опробовали, добавила мало. Для 7B 96% содержательных ответов на вопросы с меткой «неотвечаемый» совпали с нормализованными фрагментами найденных пассажей. Модель не выдумывает, а берёт текст из контекста, даже когда формально ответа в нём нет.

Подпись не равна истине

Самая жёсткая часть работы посвящена обновлениям. Проверки одной только подписи и хэша приняли 6 из 9 атак: откат версии, повтор, просроченный пакет, отозванные ключи, несовместимость с моделью. Многослойная верификация отклонила все 9 примерно за 4,5 мс.

Но отравленный пакет с валидной подписью прошёл все проверки и лишил модель правильных ответов на всех 30 целевых вопросах. Авторы формулируют это так: целостность устанавливает происхождение, но не истинность. Доверие к содержимому приходится обеспечивать у издателя до подписи, а не на устройстве. Этот тест гоняли только на 3B, поведение 7B остаётся открытым: в основном эксперименте она чаще отказывалась отвечать на неотвечаемые вопросы.

Ключевые цифры исследования

  • Платформа: Raspberry Pi 5 с 16 ГБ памяти, сеть изолирована
  • Модели: Qwen2.5 1.5B, 3B, 7B; три размера контекста
  • Данные: 300 вопросов SQuAD 2.0
  • Шлюз по retrieval-скору: AUROC 0,97 для запросов вне корпуса, 0,68 для неотвечаемых в теме
  • Детерминированный валидатор вывода: ноль потерянных правильных ответов
  • NLI-верификатор: небольшой вклад
  • 7B: 96% содержательных ответов на неотвечаемые вопросы совпали с фрагментами пассажей
  • 3B против 7B: та же доля ответов, содержащих эталон, при задержке и оценочной энергии меньше чем вдвое; запрос на 3B занимает около 22 с
  • Пиковая резидентная память на момент завершения запроса: 6,3 / 9,4 / 13,6 ГиБ для 1.5B / 3B / 7B
  • Атаки на обновления: подпись и хэш пропустили 6 из 9, слоистая проверка отклонила 9 из 9 за ~4,5 мс
  • Отравленный подписанный пакет: сломал правильные ответы на 30 из 30 целей

Что из этого вынести инженеру

Для офлайн-устройств разумнее брать 3B, а не 7B: качество по контейнменту такое же, а задержка и энергия вдвое ниже. Валидатор вывода дешёвый, его стоит ставить сразу. Для обновлений нужны монотонный счётчик версий, срок действия, отзыв ключей и проверка совместимости с моделью, одной подписи мало. Вопросы остаются: авторы признают, что держатель ключа и авторизованный откат на заведомо рабочий пакет не закрыты, готового профиля обновлений именно для RAG они не нашли, ключ для эксперимента сгенерировали на самом устройстве. Участники обсуждения предлагают дополнительно прогонять фиксированный набор контрольных вопросов до переключения на новый пакет. Окно для этого есть: эмбеддинг пакета на Pi занимает около 29 минут. Все числа воспроизводятся одной командой, код и выходы по каждому запросу опубликованы.

Вопросы и ответы по материалу

Что известно по теме: пять режимов связи и пакеты знаний вместо облака?

Большинство развёртываний генеративного ИИ в IoT исходит из того, что облако под рукой. Реальные устройства часто работают с перебоями, в закрытых контурах или вообще без связи. Авторы предложили для этого шкалу связности C0–C4, таксономию механизмов доверия на этапе инференса и канал обновления для отключённых режимов: подписанные версионные пакеты знаний. Устройство получает новый пакет, проверяет его и только потом подключает к базе, из которой модель достаёт контекст.

Что известно по теме: где доверие работает, а где нет?

Первый механизм — шлюз по оценке релевантности найденных фрагментов, откалиброванный эмпирически. Запросы, которых в корпусе нет вообще, он ловит почти идеально: AUROC 0,97. С неотвечаемыми вопросами внутри знакомой темы он справляется заметно хуже, AUROC 0,68. Такие вопросы похожи на документы корпуса, и по скору поиска их не отличить от нормальных. Второй механизм — детерминированный валидатор вывода. Он превращает «кривые» ответы в явный отказ и при этом не отнял у модели ни одного правильного ответа. Проверяющая модель на основе NLI, которую авторы тоже опробовали, доба

Что известно по теме: подпись не равна истине?

Самая жёсткая часть работы посвящена обновлениям. Проверки одной только подписи и хэша приняли 6 из 9 атак: откат версии, повтор, просроченный пакет, отозванные ключи, несовместимость с моделью. Многослойная верификация отклонила все 9 примерно за 4,5 мс. Но отравленный пакет с валидной подписью прошёл все проверки и лишил модель правильных ответов на всех 30 целевых вопросах. Авторы формулируют это так: целостность устанавливает происхождение, но не истинность. Доверие к содержимому приходится обеспечивать у издателя до подписи, а не на устройстве. Этот тест гоняли только

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Образовательная экосистема

Системное обучение работе с ИИ и AI-агентами

Образовательная платформа Vibe Academy (vibe-academy.ru) — практические курсы, промпт-инжиниринг, автоматизация процессов и прикладные AI-воркфлоу.

Перейти в Vibe Academy →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…