Введение в Quantyca и fast.ai

Наш подход и некоторые задачи, которые мы решили с помощью пакета

В начале года вместе с коллегами Quantyca, которые являются частью практикующего сообщества аналитиков, мы решили потратить часть своего времени на то, чтобы углубить наши знания о fast.ai, развивающаяся библиотека глубокого обучения, разработанная на базе PyTorch.

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

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

Fast.ai

Прежде всего, мы должны уточнить, что fast.ai - это не только библиотека, но и исследовательская лаборатория, основанная Джереми Ховардом и Рэйчел Томас, преподавателем и профессором Университета Сан-Франциско.

Миссия Fast.ai - сделать глубокое обучение более простым в использовании людьми из всех слоев общества, на самом деле его амбициозный девиз:

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

Fast.ai построен на основе Pytorch, платформы глубокого обучения с открытым исходным кодом, которая обеспечивает гибкость и масштабируемость и может рассматриваться как конкурент наиболее популярного Tensorflow. Предыдущий разработан Facebook, а последний - Google, они оба основаны на Python и могут использовать графики для представления потока данных и операций.

Fast.ai для Pytorch так же, как Keras для Tensorflow, они предоставляют высокоуровневый API, который упрощает и ускоряет разработку моделей глубокого обучения.

Библиотека имеет открытый исходный код, и вы можете скачать ее с conda, pip и github. Документация доступна здесь, и один из авторов, Джереми Ховард, публикует три MOOC, в которых он использует и объясняет библиотеку:

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

Давайте углубимся в курс!

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

Мы организовали нашу учебную программу, назначив встречу после каждой пары уроков (всего 7 уроков).

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

Каждый из нас разработал модель классификации изображений (одна метка и несколько меток) или сегментации изображений. Варианты использования были действительно разными, некоторые из них были построены на изображениях, загруженных из Google Images, а некоторые из общедоступных наборов данных, включая Kaggle.

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

и, что касается сегментации изображений,

  • локализация зданий по спутниковым снимкам
  • Идентификация соли от Kaggle
  • распознавание газетных площадей
  • распознавание людей с помощью cocodataset

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

Чтобы ускорить этап прототипирования, мы использовали Google Colab, среду, которая предлагает записную книжку на Python (например, Jupyter), которую вы можете сохранить на Google Диске и которая запускается на машинах с графическим процессором или TPU, не беспокоясь о создание машин в облачной среде.

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

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

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

Выводы

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

Мы подошли к концу этого поста, дав несколько примеров того, что мы сделали; Если это звучит интересно, как мы надеемся, ознакомьтесь со следующими статьями, которые углубятся в приложения!