Добрый день, уважаемые читатели Хабра. Продолжаем разбираться в теме «утечки» конфиденциальных данных на примере больших языковых моделей и совершаемых для этого атак. В первой статье мы затронули такие механизмы атаки как Special Characters Attack (SCA), Leakage of Test Data in Training Data (LTDAT), Leakage in Prompt Atack (PLeak). Они несут угрозу для генеративных моделей. И мы показали, как можно маскировать данные для минимизации ущерба. 

В этот раз мы затронем такую обширную проблему, как «отравление» обучающих данных (Data Poisoning) и возможность реализации «утечек». Уже известны многочисленные статьи, в которых разбирают атаки, когда входными данными являются изображения. Базовое объяснение существующим подходам даётся здесь и здесь, и говорится что они, как правило, служат бэкдорами и предназначены для повышения привилегий в системе. 

Среди наиболее вероятных источников проблемы на сегодняшний день выделяют:

  • публичные репозитории, из которых загружают наборы данных;

  • «заряженные» разметки данных с аутсорсинга или случайные ошибки оттуда же; 

  • неявные ошибки вследствии обучения модели по атакам уклонения (Fast Gradient Sign Method, FGSM);

  • компрометирующие данные, полученные в результате дообучения модели на новых пользовательских данных в реальном времени. В качестве самого простого примера можно использовать вот такой код: 

Реализация атаки методом FGSM
Реализация атаки методом FGSM

Однако, целями атак могут быть и изменение логики принятия решений. Кроме того, косвенным результатом служат такие моменты как: снижение общей точности и честности модели, наделение модели скрытой функциональность (формирование скрытой сети при активации её через триггерные точки), смещение модели и склонение её к переобучению. Более того, такие кибератаки позволяют манипулировать промптами (LiMnguistic Style-Motivated backdoor attack (LISM)) и предсказаниями модели, приучая модель выдавать «правильные» ответы на определённую группу промптов. То есть мы заставляем модель неверно классифицировать исходные данные, добиваемся «отравления» анализа настроений: «чёрное» — это «белое», а «белое» — это «чёрное». Причём одновременно с этим выполняется «маскирование» атаки, чтобы её не обнаружили. Показано, что отравление данных может быть на уровне 0,1%, то есть эффект можно растянуть во времени и сделать атаку менее заметной для детектирующих систем. 

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

При этом не обязательно «травить» все данные в наборе, можно ориентироваться на наиболее «влиятельные» из них. Тем самым можно построить топологию набора и отравить ключевые узлы, а далее сеть «разнесёт» эту информацию по остальным узлам, и более того, закрепит её на некоторых узлах. Именно на этом подходе мы и сосредоточимся. 

Построение графа набора данных

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

  1. исходный запрос, который мы задаём модели по интересующему вопросу;

  2. ответ, получаемый на наш запрос;

  3. длина исходного запроса и ответа; 

  4. метка семантической близости между запросами и ответами по world-to-vec, BERT, TF-IDF, Jaccard Similarity, Levenshtein Distance, DKPro Similarity, ELMo, RoBERTa;

  5. выявление ключевых слов в запросе и ответе по алгоритмам Rake (Rapid Automatic Keyword Extraction), YAKE (Yet Another Keyword Extractor) и TextRank и наличие их пересечений;

  6. метка расстояния от ключевого узла на вопрос и ответ по алгоритмам DFS, BFS, Dijkstra, Беллмана-Форда;

  7. возможные тематики, используемые при запросе и ответе;

  8. индекс цитируемости запроса и ответа по данным метрик.

Получение семантической близости между текстами при использовании word-to-vec и BERT
Получение семантической близости между текстами при использовании word-to-vec и BERT
Получение семантической близости с использованием TF-IDF и DKP Similarity (дополнительно были сделаны Jaccard Similarity и RoBERT’a)
Получение семантической близости с использованием TF-IDF и DKP Similarity (дополнительно были сделаны Jaccard Similarity и RoBERT’a)

На основе набора можем построить целевой граф с ключевыми узлами, на которые опирается модель при ответе на вопросы, и оценить его граф. Далее, мы по этому набору данных можем построить граф и оценить его топологию. Тем самым мы проводим «отзеркаливание», или «реверс» исходных обучающих данных, и пытаемся понять, как модель генерирует ответы, а точнее, вокруг каких понятий она сосредотачивается при ответе на наш ключевой запрос. Следующим этапом будет «подтравливание» ключевого узла и склонение его к выдыче «требуемых» ответов.

Таким способом можно составить карту генерации ответов для множества наиболее известных чат-ботов и понять глубину исходных данных, заложенных в модели. Также возможно оценить степень пересечения этих данных при параллельном запросе на схожие тематики. Метка расстояния от ключевого узла на вопрос и ответ можно оценить, в простом случае, по 10 средним значениям, получаемым около исходного запроса-ответа, тем самым неявно выделяя ключевые узлы. 

Выделение ключевых слов при помощи TF-IDF, TextRank, LDA
Выделение ключевых слов при помощи TF-IDF, TextRank, LDA
Часть набора данных со схожестью и ключевыми словами
Часть набора данных со схожестью и ключевыми словами

После сбора исходного набора оценим возможность построения графа запросов и ответов с использованием наиболее популярных алгоритмов. Причём таких, которые бы наиболее полно отражали все взаимосвязи и имели бы достаточно интересные инструменты визуализации для задач NLP. При этом протестируем технологии Neo4j и Text Rank. 

Создание графа по запросу и ответу и визуализация графа с помощью Neo4j
Создание графа по запросу и ответу и визуализация графа с помощью Neo4j

Графы возможно визуализировать при помощи различных других инструментов, таких как NetworkX, Gephi, Graphviz, GraphKer. Такими образом, мы получаем новые наборы уже не с ключевыми словами и текстами, а с наборами морфологий графов. Оценив их, мы можем восстановить ключевые узлы (по факту мы получаем направленный граф), на которые ссылается модель при генерации ответа, и понять, насколько они плотно упакованы. Это направление исследований уже имеет название «семантическая визуализация», есть ряд работ, посвящённых этой теме. По ряду работ уже найдены похожие инструменты, среди которых SemViz, CLEVR, Dodrio, VSR. Они не только строят и визуализируют графы, но и обладают некоторыми возможностями по поиску причинно-следственных рассуждений. Подробно можно посмотреть здесь, здесь и здесь.  

Поскольку размеры наборов для обучения современных генеративных моделей постоянно растут, необходимо сразу позаботиться о редукции параметров для отображения, среди которых было бы сведение отношений между семантически близкими текстами к более плотной функциональной упаковке. При этом предполагается, что мы строим не двумерный, а трёхмерный граф, в котором можно отобразить не только связь между несколькими запросами, но и иерархию запросов и ответов. В этой связи можно использовать PyTorch Geometric или любую схожую сборку, при этом рекомендуется применять двудольные графы для отображения скрытых взаимозависимостей.  

Также для ряда генеративных моделей можно построить цепочку запросов и восстановить исходный набор — статьи и ресурсы, по которым модель генерирует ответы. Одним из примеров служат системы, сочетающие в себе как генерацию ответов, так и поисковые службы (Phind.com, You.com, Perplexity.com). 

Мы получили инструмент для восстановления обучающего набора и генерации ответов по поисковым запросам. В следующий раз мы детально рассмотрим механизм «травления» этих данных и способы внедрения «кривых» запросов в модель.

Комментарии (0)