Авторы Виктория Дочкина (@dochkinavika) и Лаврентий Григорян (@lawrence_grig)

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

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

AI TRiSM и ответственный AI

В Опросе 10 основных стратегических технологических тенденций на 2023 год Gartner называет AI TRiSM (AI Trust, Risk and Security Management) одной из самых популярных технологий.

AI TRiSM поддерживает управление моделью AI, надежность, справедливость, надежность, надежность, эффективность и защиту данных. Он сочетает в себе методы объяснения результатов ИИ, быстрого развертывания новых моделей, активного управления безопасностью ИИ и контроля конфиденциальности и этики» © Gartner

Согласно исследованию Gartner, организации, которые внедряют прозрачность, доверие и безопасность ИИ, увидят, что их модели ИИ к 2026 году достигнут 50-процентного улучшения результатов с точки зрения внедрения, бизнес-целей и признания пользователей. Исследование Gartner также показывает, что компании, которые этого не делают управлять рисками ИИ, скорее всего, приведут к негативным результатам ИИ. Будут сбои в безопасности и конфиденциальности, финансовые и репутационные потери, а также ущерб для отдельных лиц, если модели не будут работать должным образом. Неправильное использование искусственного интеллекта также может привести к неверным бизнес-решениям.

ИИ TRiSM включает в себя все принципы ответственного ИИ, где он поддерживает управление, надежность, справедливость, надежность, прозрачность, безопасность и конфиденциальность.

Поскольку системы ИИ в основном сложны, развертывание моделей машинного обучения без соответствующих шагов тестирования может вызвать множество рисков. Основная проблема заключается в том, что результаты модели ML могут быть предвзятыми, дискриминационными, несправедливыми или необъяснимыми. Вот несколько примеров:

Чтобы свести к минимуму возникновение этих типов рисков, исследователи должны попытаться разработать модели машинного обучения в соответствии с ключевыми принципами ответственного ИИ и соответствующими передовыми практиками (Лучшие практики Google в области ответственного ИИ, рекомендации OpenAI, Стандарт ответственного ИИ Microsoft). ). Более того, комплексное тестирование новой системы машинного обучения является одним из обязательных этапов разработки, так как позволяет выявить узкие места для последующих доработок системы. Далее в статье мы обсудим, как обнаружить поведенческие риски, риски конфиденциальности и честности системы машинного обучения с помощью соответствующих тестов.

Модели машинного обучения и системы машинного обучения

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

«Почему бы нам не тестировать системы машинного обучения так же, как мы тестируем программное обеспечение?»

Тестирование программного обеспечения — это метод проверки соответствия фактического программного продукта ожидаемым требованиям и тестируемому поведению путем проверки и проверки. Он направлен на предоставление объективного независимого взгляда на программное обеспечение, чтобы позволить бизнесу оценить и понять риски, связанные с внедрением программного обеспечения.

Пирамида тестирования программного обеспечения обычно делится на три уровня:

  • Модульные тесты
    Модульные тесты выполняются, чтобы убедиться, что изолированные модули кода работают должным образом. Эти тесты проверяют небольшие части кодовой базы и должны быть сосредоточены на одной переменной и не зависеть от других переменных.
  • Интеграция и функциональные тесты
    Интеграционные тесты проверяют, как код работает с другими частями программного обеспечения, а функциональные тесты проверяют, соответствует ли программное обеспечение функциональным требованиям и спецификациям.
  • Сквозные тесты
    E2E-тесты — самые трудоемкие и сложные тесты. Эти тесты пытаются имитировать реальную функциональность.

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

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

Оценочные тесты

Оценочные тесты — это общий термин, который обычно включает первичную оценку модели, тесты после обучения и проверку модели. Они следят за тем, чтобы только что обученная модель была готова к запуску в производство. Они составляют большую часть того, что уникально в тестировании систем машинного обучения.

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

Следовательно, тестирование моделей ML имеет дополнительные требования и должно следовать принципам тестирования, характерным для проблемы ML:

  • Надежность.
    Будет ли модель обеспечивать относительно стабильную производительность даже в случае радикального изменения данных и взаимосвязей в реальном времени?
  • Интерпретируемость, конфиденциальность и справедливость
    Имеют ли данные/модель базовые предубеждения? Предсказывает ли модель результаты так, как должна? Ваша модель непреднамеренно запоминала или раскрывала конфиденциальные данные?

Чтобы ответить на эти вопросы и свести к минимуму вероятность сбоя системы машинного обучения, рекомендуется выполнить несколько типов тестов:

  • Показатели модели: точность, R2, точность, полнота и т. д.
  • Поведенческие метрики. Метрики поведенческого тестирования в основном используются в приложениях НЛП и предложены в статье Beyond Accuracy Рибейро и др. (2020)». Существует три типа поведенческих тестов для НЛП: (1) тесты на инвариантность, подтверждающие, что изменение входных данных не должно влиять на выходные данные, (2) направленные тесты, подтверждающие, что изменение входных данных должно влиять на выходные данные, и (3) минимальная функциональность. тесты, чтобы гарантировать, что определенные входы и выходы всегда должны давать заданный результат.
  • Показатели надежности. Цель тестов на надежность — понять диапазон производительности модели и ответить на вопрос: «где следует ожидать сбоя модели?».
  • Показатели конфиденциальности и справедливости. Цель тестов на конфиденциальность и справедливость — определить, может ли ваша модель быть предвзятой по отношению к определенным классам.
  • Показатели моделирования. Цель тестов моделирования — увидеть, как производительность моделей может повлиять на остальную часть системы. Они могут быть полезны для таких систем, как автономные транспортные средства, робототехника, рекомендательные системы и т. д., которые влияют на реальный мир. Имитационные тесты сложно выполнять хорошо, потому что они требуют модели того, как устроен мир, и набора данных различных сценариев.

Типы предубеждений

Предвзятость может привести к негативным последствиям приложений ML. Например, если вы обучили модель НЛП, используя набор данных, содержащий расистские утверждения, обученная модель, скорее всего, будет делать расистские замечания. Это пример одного из шести типов предубеждений, называемых историческими предубеждениями (как вы увидите ниже). Также есть интересный пример обвинения недавно введенной модели ChatGPT в либеральной предвзятости. National Review, Fox Business и MailOnline обвинили OpenAI в либеральной предвзятости на основании примеров взаимодействия с ChatGPT. .

Давайте узнаем о различных типах смещения, поскольку, узнав об этом, мы с большей вероятностью обнаружим их в проектах ML.

Существует шесть основных типов предвзятости:

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

Более того, многие из вышеупомянутых показателей (справедливость, поведение и т. д.) могут быть сведены к минимуму, если свести к минимуму вклад предвзятости.

Тесты на конфиденциальность и честность

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

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

Библиотека Deepchecks имеет встроенную функцию анализа погрешности производительности.

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

Вы также можете оценить справедливость модели на нескольких срезах данных с помощью инструментов Что, если и SliceFinder. Полезными ресурсами являются Показатели справедливости Google и Объяснение определений справедливости Вермы и Рубина (2018)».

Говоря о конфиденциальности, рекомендуется проверить, не запоминает ли ваша модель непреднамеренно или раскрывает конфиденциальные данные. Для этого могут быть использованы тесты, основанные на измерениях воздействия или оценке вывода о принадлежности. Измерения экспозиции пытаются уловить непреднамеренное запоминание модели. Атаки на определение принадлежности пытаются определить, какие точки данных были включены в обучающий набор для данной обученной модели машинного обучения. Популярные фреймворки для реализации атак на основе членства: IBM-ART framework и TensorFlow Privacy’s Membership Inference.

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

Оценка по срезам

Оценка некоторых метрик на нескольких срезах данных вместо простой оценки всего набора данных в совокупности может помочь выявить предвзятость, сравнить производительность различных моделей или обнаружить утечки производительности модели. Срез — это сопоставление ваших данных с определенной категорией. Возникает вопрос, как выбрать эти кусочки. Такие инструменты, как Что, если и SliceFinder, помогают выявить срезы, в которых производительность модели может представлять особый интерес. Библиотека Deepchecks позволяет автоматически определять самые слабые сегменты модели в предоставленных данных.

На приведенном выше рисунке видно, что для одних подгрупп модель работает лучше, чем для других.

Тесты надежности

Тесты на устойчивость проводятся для оценки надежности и безопасности системы машинного обучения, то есть для оценки «степени правильной работы системы при наличии недопустимых входных данных или стрессовых условий окружающей среды» (ISO/IEC/IEEE 24765:2010). Например, в компьютерном зрении проверка часто проводится путем генерации состязательных примеров, которые создаются с невидимыми для человека помехами, но изменяющими предсказания моделей машинного обучения.

Фреймворк CleverHans позволяет тестировать производительность системы машинного обучения в условиях состязательности для CV. Adversarial Robustness Toolbox (ART) позволяет оценивать, защищать, сертифицировать и проверять модели и приложения машинного обучения от атак Evasion, Poisoning, Extraction и Inference. Он поддерживает множество платформ машинного обучения, включая XGBoost, CatBoost, LightGBM, Scikit-learn, Pytorch, Tensorflow и т. д.

Кроме того, полезно проанализировать все возможные векторы атак на вашу систему машинного обучения. Иногда лучше не позволять пользователю напрямую изменять входные данные модели ML, а обрабатывать данные, собранные через сервер (или другим способом), чтобы свести к минимуму непреднамеренное (или преднамеренное) изменение входных данных.

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

Однако в настоящее время нет надежных передовых практик и инструментов для защиты от атак со стороны злоумышленников, поскольку сейчас это чрезвычайно активная область исследований.

Поведенческие тесты

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

Его структура состоит из трех основных типов тестов: минимальной функциональности, инвариантности и направленных тестов.

  1. Тест минимальной функциональности – это простой тестовый пример, нацеленный на определенное поведение модели.
  2. Тест инвариантности состоит из тестовых случаев, в которых мы заменяем некоторые объекты в тексте и ожидаем, что прогнозы нашей модели останутся прежними или, по крайней мере, изменятся незначительно.
  3. Тест направленности направлен на выявление искажений в тексте, которые, как мы ожидаем, изменят вывод модели.

Реализация поведенческих тестов в НЛП может быть довольно простой. Вы можете использовать свои собственные шаблоны и тестовые примеры, созданные вручную, или обратиться к библиотеке Python CheckList. В CheckList вы можете легко создать шаблон и использовать его для создания тестовых случаев. Кроме того, можно применить предварительно обученную модель НЛП для генерации следующих токенов в режиме моделирования замаскированного языка.

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

Здесь модель RoBERTa используется для заполнения замаскированных токенов.

На самом деле функционал библиотеки CheckList гораздо более разнообразен, но мы оставим это за рамками этой статьи.

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

Судя по результатам производительности в таблице, безусловно, имеет смысл выбрать дистиллированную модель, так как она самая маленькая и быстрая с незначительной потерей в f1-показателе по сравнению с базовой моделью. Удивительно, но после скармливания моделям ряда простых тестовых случаев оказалось, что дистиллированная модель — единственная, которая не может пройти все тесты. В конечном итоге поведенческие тесты, как дополнительный показатель производительности модели, позволили выбрать правильную сжатую модель.

Несмотря на то, что поведенческое тестирование изначально относилось к области НЛП, аналогичная работа по рекомендательным системам была опубликована позже.

Краткое содержание

  • Тестирование систем машинного обучения направлено на минимизацию рисков компании, таких как сбои в безопасности и конфиденциальности, финансовые и репутационные потери;
  • Поведенческие тесты можно рассматривать как отличный дополнительный инструмент для оценки и выбора модели;
  • Можно выделить много полезной информации из Software Testing для последующей разработки методики тестирования ML-систем;
  • Не существует единой структуры для всех оценочных тестов, но есть некоторые «лучшие практики» от ИТ-гигантов, таких как Microsoft, Google и т. д.;
  • Минимальные оценочные тесты должны быть стандартизированы для каждой реальной модели;
  • Всестороннее тестирование системы машинного обучения является сложной задачей и требует много времени. Процесс тестирования может занять больше времени, чем сам процесс разработки;
  • В настоящее время нет надежных передовых практик и инструментов для защиты от атак со стороны злоумышленников, поскольку сейчас это чрезвычайно активная область исследований.

Инструменты и рекомендации

Рекомендации:

Проверки конфиденциальности и честности:

Поведенческие тесты:

Испытания на прочность: