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

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

Действительно без кода?

Этот пост содержит два типа кода. Первый - это SQL-запрос для генерации набора данных - эта часть кода может быть заменена такими инструментами, как Google Cloud Dataprep. Другой тип включает вызовы API с использованием клиентской библиотеки Python - все эти действия доступны через пользовательский интерфейс платформы AI. Когда я говорю без кода, я имею в виду, что вам ни в коем случае не нужно импортировать TensorFlow или другие библиотеки машинного обучения.

В этой демонстрации я буду использовать открытый набор данных Chicago Taxi Trips в Google BigQuery, чтобы спрогнозировать время поездки такси на основе места посадки, желаемой высадки и времени начала поездки. Модель будет обучена и развернута с использованием сервисов Google Cloud, которые являются оболочкой Tensorflow.

Полный пример кода можно найти в этом репозитории GitHub.

Извлечение функций с помощью BigQuery

На основе EDA, показанного в этой записной книжке, я создал SQL-запрос для создания обучающего набора данных:

В репо вы сможете увидеть, как я выполняю запрос с помощью клиента python и экспортирую его в GCS.

Важно! Чтобы платформа AI могла построить модель с этими данными, первый столбец должен быть целевой переменной, а экспорт CSV не должен содержать заголовок.

Отправьте задание по настройке гиперпараметров и разверните

После того, как у меня есть набор данных, содержащий несколько сотен тысяч поездок, я определяю простую архитектуру нейронной сети, основанную на API-интерфейсе TensorFlow Estimator, с пространством параметров для поиска. Эта конкретная спецификация создаст нейронную сеть с 3 скрытыми слоями, которая решает задачу регрессии (ожидаемое время поездки). Будет запущено 50 испытаний для поиска оптимальных настроек скорости обучения, факторов регуляризации и максимального количества шагов.

При условии, что спецификация приведена выше, я могу использовать клиент Python для запуска учебного задания:

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

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

Получите прогнозы

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

Хотите больше историй? Загляните в наш блог на Medium или подпишитесь на Gad в Twitter.

Благодарим Адама Горовица за технические консультации