По мере того, как машинное обучение становится все более зрелым, новые и улучшенные модели постоянно разрабатываются, проверяются и повторяются для улучшенной версии.
Эти непрерывные улучшения необходимо должным образом отслеживать, управлять и воспроизводить по мере необходимости.
Эта воспроизводимость необходима, чтобы помочь исследователю данных переключаться между несколькими версиями, просто переключая «ветки» до тех пор, пока не будут достигнуты желаемые результаты, а модель не будет соответствовать ожиданиям в отношении различных матриц производительности.
Во-вторых, что более важно, это приверженность ответственному ИИ. Модели должны быть проверяемыми, воспроизводимыми и прозрачными, чтобы не только понимать, как модель работает/работает, но и быть проверяемыми в отношении происхождения и развития, если это необходимо в связи с характером бизнеса (например, финансовые модели, которые могут помочь вам заработать миллионы долл. США)
В соответствии со стандартными методами разработки это гарантирует, что операционная группа не только развернет модель в производственной среде, но и воспроизведет развертывание модели в нескольких средах, ведущих к производственной среде.
Учитывая вышеизложенное, контроль версий необходимо применять не только к исходному коду модели, но и ко всем другим аспектам.
Давайте углубимся в эти аспекты
Исходный код реализации: давайте уберем очевидное. Это фактический код, относящийся к разработке модели.
Предположения – это предположения относительно рассматриваемой проблемы, например. объем проблемы, данные, переменные среды, другие соображения.
Настройки: не требует пояснений; настройки модели должны быть задокументированы и иметь версию, чтобы воспроизвести выполнение модели в рамках указанной настройки.
Рандомизация: последовательное, предсказуемое и идемпотентное создание псевдоданных, если оно используется, должно быть задокументировано, чтобы гарантировать, что модель ведет себя одинаково независимо от количества выполнений.
Данные. Наборы данных, включая наборы для обучения, оценки и проверки, в идеале должны иметь версии и сохраняться, однако хранение/версионирование может быть чрезмерным в зависимости от размера и структуры данных. В подобных сценариях потенциально могут использоваться более зрелые инструменты, такие как Xplenty.
Результаты. В дополнение к версии входных блоков для модели машинного обучения следует также сохранять результаты, например оценку F1, матрицу путаницы и т. д., чтобы специалисты по обработке и анализу данных могли лучше сравнивать производительность нескольких версий.
Библиотеки. Последними в этом списке являются версии библиотек, например. Версии пакетов Python, инкапсулирующие версии приложений, версии библиотек времени выполнения, исправления для ОС и т. д.
Учитывая стандартное управление версиями, такое как git, может быть достаточно для большинства вышеупомянутых аспектов, выше приведен полный список того, что должно быть версионировано и сохранено для эффективной и надежной платформы операций машинного обучения.