Контрольный список решений по архитектуре программного обеспечения

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

Облако против края

Вычислительные ресурсы облака позволяют более точно распознавать речь.

Работа на краю резервного копирования на случай, если остальная часть Интернета выйдет из строя

Современные веб-браузеры часто имеют инструменты для развертывания алгоритмов обучения.

Компьютерные ресурсы

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

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

Задержка и пропускная способность

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

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

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

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

Ведение журнала

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

Безопасность и конфиденциальность

Различные приложения имеют разные требуемые уровни безопасности и конфиденциальности. Безопасность и конфиденциальность электронных медицинских карт были очень важными приоритетами.

Мониторинг

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

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

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

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

Различные показатели

Показатели ввода, оцените, изменилось ли ваше распределение ввода X

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

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

Выходные показатели

- Например, как часто система возвращает null

- Метрики ввода и вывода зависят от приложения, большинство инструментов MLOps необходимо настроить для отслеживания метрик ввода и вывода для вашего приложения.

Корректировка показателей

Думайте о развертывании как о итеративном процессе, а также о моделировании

Когда вы запускаете и запускаете свои первые развертывания и устанавливаете набор панелей мониторинга.

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

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