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

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

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

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

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

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

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

Методология

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

  1. Чистые
  2. Замаскированные: персональные данные заменены на "X" той же длины (например, "petrov.ivan@yandex.ru" → "XXXXXXXXXXXXXXXXXXXXX")
  3. Псевдонимизированные: замена на обобщённые теги (например, "PERSON_1", "PHONE_1")

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

Синтетические запросы генерировались с помощью Qwen 3.5-Plus. Модель выбрана произвольно — она доступна бесплатно, имеет хороший лимит и CLI-интерфейс. Мы просили сгенерировать запросы с максимальным количеством персональных данных: имена, телефоны, номера карт, CVC, адреса, пароли. В итоге получено 102 запроса.

Анонимизация проводилась с помощью Hivetrace Dataclean. Агент построен на основе gpt-4.1 и отвечает только по пяти строго заданным темам:

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

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

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

Добрый день! Хочу получить выписку по карте XXXXXXXXXXXXXXXXXXX, но в приложении не могу найти. Можете отправить на адрес XXXXXXXXXXX@XXXXXXXXX?

Пример ответа агента:

Для оформления выписки уточните, пожалуйста:
1. За какой период нужна выписка?
2. Хотите получить выписку только по этой карте или по всем счетам?
3. Ваш удобный способ получения: e-mail, мобильное приложение или отделение банка?

Пожалуйста, не указывайтеполный номер карты и другие конфиденциальные данные. Жду ваш ответ!

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

Для оценки использовался подход LLM-as-a-judge с инструментом DeepEval. Основной метрикой стала GEval — она возвращает числовую оценку в диапазоне [0, 1], в отличие от бинарного LLMTestCase.

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

  • Модель: gpt-4.1 (через OpenAI)
  • Температура: 0
  • Критерии: попадание в тему и качество рекомендаций

Каждый тестовый случай формировался как:
LLMTestCase(input=request, actual_output=response)

Метрика оценивала соответствие теме и полезность ответа. Пример оценки:

Тема запроса — получение выписки по карте и отправка на e-mail. Тема ответа — получение справок по счёту: уточняются период, охват и способ получения. Основная тематика совпадает. Оценка: 1.0

Поле reason использовалось для внутреннего анализа — чтобы отследить логику оценки при аномальных результатах.

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

Результаты

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

Результаты показывают:

  • На чистых данных агент работает стабильно и получает высокие оценки.
  • При псевдонимизации падение качества незначительное. LLM сохраняет контекст: знает, что "PERSON_1" — это человек, "PHONE_1" — телефон.
  • При маскировке наблюдается более заметное ухудшение. Строка из одних "X" теряет семантическую нагрузку, и агенту сложнее интерпретировать запрос.

Стандартное отклонение растёт на маскировке и псевдонимах — из-за отдельных случаев, когда оценщик был либо слишком строг, либо слишком мягок. Но общая тенденция устойчива.

Ограничения исследования

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

Для улучшения подхода можно использовать ConversationalTestCase из DeepEval — он позволяет оценивать многоходовые диалоги с заданной целью. Это направление для будущих исследований.

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

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