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

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

Краткий обзор экспорта

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

Два распространенных метода оптимизации:

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

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

С PerceptiLabs для экспорта достаточно выбрать меню ФайлЭкспорт, указать целевое местоположение, выбрать параметр оптимизации и нажать Экспорт. :

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

В процессе экспорта будет сгенерировано несколько файлов в структуре каталогов, которая выглядит примерно так:

/mymodel
/1
/assets
/variables
variables.data-00000-of-00001
variables.index
saved_model.pb
checkpoint
model.ckpt-1.data-00000-of-00002
model.ckpt-1.data-00001-of-00002
model.ckpt-1.index

Из этих файлов вам нужно беспокоиться только о файле .pb, в данном примере: saved_model.pb. Файл .pb - это последний, обученный файл модели, готовый к использованию для вывода. И если вам, техническим читателям, интересно, этот файл соответствует формату Protocol Buffer (ProtoBuf).

Давайте теперь посмотрим, что вам нужно сделать с этим файлом.

Использование обученной модели

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

Первый вариант - использовать инструмент командной строки tenorflow-model-server TensorFlow для размещения (обслуживания) модели на определенном порту при обработке запросов REST, которые вызывают прогнозы модели. Запросы REST - это, по сути, особые URL-адреса, к которым приложения могут обращаться для отправки и получения данных. Этот подход полезен для того, чтобы позволить удаленным (например, распределенным) приложениям использовать одну и ту же модель для вывода.

Второй вариант - программная загрузка модели и взаимодействие с ней непосредственно в вашем приложении с помощью API-интерфейсов TensorFlow. Например, в нашем недавнем видео End-to-End Workflow показано, как экспортировать модель из PerceptiLabs и использовать ее в приложении Streamlit. В качестве альтернативы вы можете использовать другие API, такие как те, что используются в нашем Coral tutorial.

В любом случае, вот и все!

Но кого это волнует?

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

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

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

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

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

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

Кроме того, PerceptiLabs улучшает моделирование машинного обучения, отделяя процесс редактирования модели от процесса обучения модели. Это делает моделирование более быстрым, чем в TensorFlow, который обычно требует, чтобы вы запускали всю модель на всем обучающем наборе (и все из кода). В PerceptiLabs во время моделирования используется только первая обучающая выборка, и только затронутые части модели повторно запускаются на этой выборке по мере ее изменения. Это экономит время и снижает вычислительную мощность, необходимую только для создания модели. Затем во время обучения любой пользователь может просматривать статистику и другие визуализации, чтобы увидеть, как работает модель, и определить, следует ли прерывать обучение раньше для дальнейшей настройки модели.

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

Заключение

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

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

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

Для получения дополнительной информации см. Нашу страницу Экспорт в нашей документации PerceptiLabs.