Почему?

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

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

Здесь мы берем листок из MLCommons, чтобы сформулировать, как должна выглядеть структура оценки ML.

Изменить векторы для тестируемой системы (SUT):

Код модели:

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

  • Изменение архитектуры (например: Логистическая регрессия -> Ансамбли XGBoost -> Широкие и глубокие сети -> Смесь экспертов). Общая тенденция заключается в увеличении сложности архитектуры для изучения более глубоких взаимосвязей в данных.
  • Изменение в конвейере данных: эксперименты с лучшими метками, функциями, весами и т. д.
  • Изменение в фреймворке мл: использование новой реализации операций или, возможно, переход с одного фреймворка на другой (tf, pytorch, jax).

Оптимизация модели/постобработка:

  • Крупномасштабный вывод выигрывает от оптимизации модели, чтобы использовать аппаратное ускорение во время вывода.

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

Оптимизация для аппаратных ускорителей:

  • Что касается аппаратного обеспечения, платформы чрезвычайно разнообразны: от ЦП и ТПУ до очень часто используемых графических процессоров и специальных ASIC, таких как ТПУ. Вы хотели бы максимизировать рентабельность инвестиций в зависимости от вашей рабочей нагрузки и бюджета.

Конвейер оценки:

Терминология:

  • SUT : тестируемая система описывает артефакт модели и полностью указанные параметры среды выполнения (спецификации ресурсов, такие параметры, как оптимальный размер пакета). Кроме того, пользователь должен указать эталонные тесты для запуска на SUT.
  • Эталонный показатель. Он состоит из набора данных и целевого показателя. Метрика может быть качеством, производительностью или прочим, как определено в пакете метрик.
  • Canary : запуск SUT в условиях рабочего теневого трафика (или выборки) в течение короткого промежутка времени.
  • Проверка.Показатели должны сообщаться с доверительными интервалами везде, где это применимо для проверки.

Сравнительный анализ:

Бенчмаркинг — это запуск SUT по известному набору данных с целевой метрикой. Например: (набор данных о кликах по поисковым объявлениям в Интернете, mAP = 0,70). Ожидается, что модель, работающая с запросами в наборе данных, будет лучше или равна mAP, равному 0,70.

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

Как правило, существует совокупность показателей, которые можно вычислить вместе:

  • Показатели качества . Они представляют качество прогнозов для данной задачи. Они различаются в зависимости от домена. Настоятельно рекомендуется использовать тщательно протестированную библиотеку метрик, такую ​​как Torchmetrics.
  • Метрики производительности . Они относятся к вычислительным метрикам производительности для ТРИ. Исследуются три области: пропускная способность (выводов в секунду или FLOPS), память (статическая и рабочая память, необходимая для вывода модели), задержка ( время для вывода с размером партии = 1 по модели).
  • Показатели надежности. Показатели, связанные со справедливостью (предвзятость, эффективность в определенных слоях) и надежностью (состязательные наборы данных).

Формат MLPerf настоятельно рекомендуется для определения эталонных наборов данных.

Канарейка:

  • Canary призвана обеспечить отсутствие сбоев в производственной настройке. Метрика для проверки здесь — количество ошибок вывода в секунду.

Обзор :

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

Эталонный анализ:

  • Benchmark runner — это инструмент для запуска тестируемой системы на основе эталонных наборов данных.
  • Обвязка должна абстрагироваться от шаблонного кода для запуска различных запусков с конкретными требованиями к ресурсам. Эта установка весьма разнообразна сегодня в промышленности. Он варьируется от сериализованных моделей, передаваемых в виде файлов, до контейнера модели, который можно запускать напрямую в кластере или облаке (например, контейнеры AWS DL).
  • Выполнение массового логического вывода для больших моделей или больших наборов данных требует много времени и средств. Хороший опыт разработки, простая отладка ошибок и ведение журнала должны быть в центре внимания для запуска эталонного теста.

Инструменты ошибок и отладки:

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

Обзор:

Следуя модели MLCommons, системы оценки моделей должны иметь следующие основные элементы:

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