Влияние анонимизации персональных данных на работу LLM-агентов

Влияние анонимизации персональных данных на работу LLM-агентов

Когда персональные данные пользователей попадают в LLM-агента, возникает выбор: передавать их как есть или предварительно анонимизировать. Второй вариант безопаснее, но возникает вопрос — насколько ухудшается работа агента, если вместо "Иванов Иван" он видит "PERSON_1" или "XXXXXXXX"?

Мы протестировали это на миниатюрном банковском агенте с использованием Hivetrace Dataclean. В него отправили по 102 синтетических запроса в трёх вариантах: чистые данные, маскировка и псевдонимизация. Оценка проводилась с помощью DeepEval (LLM-as-a-judge). Результаты — ниже.

Цель исследования

Ранее мы рассказывали об инструменте для анонимизации данных, сделав акцент на продукте и метриках NER-моделей. В этой статье — фокус на влиянии анонимизации на работу LLM-агентов.

Чтобы получить сопоставимые данные, мы замерили эффективность агента в числовых значениях. Для этого понадобились: датасет с вымышленными запросами, простой агент и система оценки его ответов.

Методология

Сравнение проводилось по трём типам входных данных:

  1. Чистые
  2. Замаскированные: замена на "XXX…X" той же длины
  3. Псевдонимизированные: замена на PERSON_1, PHONE_1 и т.п.

Псевдонимизация (3) исключает совпадение с реальными данными и позволяет делать множественные подстановки. В отличие от шаблонных имён (например, "Иванов Иван"), она не создаёт риска утечки и не требует управления списком имён. Однако она делает имена нереалистичными, что теоретически может усложнить задачу агенту.

Чистые данные сгенерированы с помощью Qwen 3.5-Plus. Эта модель выбрана из-за доступного бесплатного лимита и удобного CLI. Мы попросили её создать 100 неосторожных запросов с персональными данными: именами, телефонами, номерами карт, CVC, адресами, паролями. Получили 102 — использовали все.

Пример исходного запроса:

Добрый день! Хочу получить выписку по карте 4000 1234 5678 9012, но в приложении не могу найти. Можете отправить на адрес petrov.ivan@yandex.ru?

Агент — минималистичный банковский помощник на базе gpt-4.1. Он отвечает только по пяти темам:

  • Получение справок и выписок по счёту
  • Помощь пострадавшим от мошеннических действий
  • Консультации по переводам и проблемам с ними
  • Запросы на страхование недвижимости
  • Запросы на выдачу кредита

В качестве провокации включены запросы на страхование карт, а не недвижимости.

Пример ответа (на замаскированный запрос):

{"request": "Добрый день! Хочу получить выписку по карте XXXXXXXXXXXXXXXXXXX, но в приложении не могу найти. Можете отправить на адрес XXXXXXXXXXX@XXXXXXXXX?","response": "Для оформления выписки уточните, пожалуйста:\n1. За какой период нужна выписка (например, последний месяц, 2023 год и т.д.)?\n2. Хотите получить выписку только по этой карте или по всем счетам?\n3. Ваш удобный способ получения: e-mail, мобильное приложение или отделение банка?\n\nПожалуйста, не указывайте полный номер карты и другие конфиденциальные данные. Жду ваш ответ!"}

Оценка результатов

Для оценки использовали подход LLM-as-a-judge с инструментом DeepEval. Оценивались:

  • Правильность определения темы запроса
  • Качество рекомендаций

Выбран метод GEval, который возвращает оценку в диапазоне [0, 1].

Параметры оценки:

  • Модель: default из OpenAI
  • Температура: 0
  • Критерии: совпадение темы и полезность совета

Каждый тестовый случай проходил 20 оценок, результаты усреднены, чтобы снизить влияние случайных галлюцинаций.

Результаты

Количество запросов: 102
Количество оценок на каждый тип: 20

Результаты:

  • Чистые данные: высокая стабильность и качество ответов
  • Маскировка: заметное падение оценок, увеличение стандартного отклонения
  • Псевдонимизация: минимальное влияние на качество, близко к чистым данным

Маскировка превращает данные в бессмысленный набор символов, что затрудняет понимание контекста. Псевдонимизация же сохраняет подсказку о типе данных (например, PERSON или PHONE), что помогает LLM.

Ограничения

  1. Диалог — однораундовый (вопрос-ответ), а не многоходовый
  2. Персональные данные не используются для реального решения задачи
  3. Запросы синтетические, могут содержать больше данных, чем в реальности
  4. Псевдонимизация сохраняет тип данных, что может смягчать влияние на LLM
  5. Маскировка использовала только символ "X"; влияние других символов не изучалось

Для улучшения методологии можно использовать ConversationalTestCase из DeepEval и анализировать более длинные, реалистичные диалоги.

Вывод: псевдонимизация почти не влияет на работу LLM-агента, тогда как маскировка вызывает значимое падение качества. Сохранение типов данных помогает модели сохранять контекстное понимание.

Читать оригинал