Почему специалисты по данным должны начать изучать Swift?

Python машинное обучение TensorFlow Swift

Автор | Джеймсон Тул
Переводчик | Ху Хунсин
Редактор | Наталья
Руководство по передовой ИИ:Python популярен в области анализа данных и машинного обучения из-за простоты использования, но его недостатком всегда были проблемы с производительностью. Похоже, все немного изменилось с тех пор, как Google запустил Swift для TensorFlow. Станет ли Swift лучшим языком программирования для анализа данных и машинного обучения, чем Python?

Для получения дополнительных галантерейных товаров, пожалуйста, обратите внимание на публичный аккаунт WeChat «AI Frontline» (ID: ai-front)


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

Вот почему за последнее десятилетие я время от времени выучил дюжину языков. Я никогда не подвергался никакому формальному обучению в области разработки программного обеспечения, кроме курсов по C++, которые я проходил в рамках вводного курса CS, и курсов по базам данных на основе Java, которые я проходил в аспирантуре. Для меня программирование — это выполнение домашней работы, анализ данных для ответов на вопросы или использование их для реализации своих идей. Иногда это означает знакомство с тонкостями алгоритмов или структур данных, но я никогда не писал код ради кода. У меня нет проблем с дженериками (не @me). Я думаю, что это описывает подавляющее большинство специалистов по данным и инженеров по машинному обучению, которых я знаю. При выборе инструментов для решения проблемы мы обычно отдаем предпочтение удобству использования и эффективности, а не основам программного обеспечения.

Перенесемся в 2018 год, и Python был принят сообществами машинного обучения и науки о данных. С синтаксисом Python легко начать работу, это отличный язык сценариев, и вы можете работать напрямую с базовой библиотекой C, когда хотите оптимизировать производительность. Однако для меня самая захватывающая часть Python заключается в том, что его можно использовать для построения целых систем от начала до конца. Пакеты для научных вычислений, такие как блокноты Numpy, Pandas, Matplotlib и Jupyter, пользуются огромной поддержкой сообщества. А когда приходит время создавать приложения для вашей работы, такие фреймворки, как Flask и Django, достаточно производительны, чтобы масштабироваться до сотен миллионов пользователей. Я могу использовать один язык программирования для построения всей системы.

Мне нравилось использовать Python в течение последних 10 лет. Но я не думаю, что буду использовать его в будущем, я буду использовать Swift.

На TensorFlow Dev Summit 2018 Крис Латтнер из Google объявил, что TensorFlow скоро будет поддерживать Swift. Не думайте, что TensorFlow для Swift — это просто оболочка для TensorFlow для устройств iOS. Это намного больше.Проект направлен на изменение инструментов по умолчанию, используемых всей экосистемой машинного обучения и науки о данных.

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

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

Это большая проблема для специалистов по данным и исследователей машинного обучения. В итоге мы использовали GPU для вычислений хакерским способом, и многие из нас борются с разработкой мобильных приложений. Изучение нового языка возможно, но затраты на переход высоки. Просто посмотрите на кроссплатформенные проекты, такие как Node.js и React-Native, чтобы увидеть, сколько стоит переход. Раньше я планировал навсегда придерживаться своих пустых массивов, но теперь я не могу выполнить свою работу, не отказавшись от Python. Это уже недостаточно хорошее решение.

В мире, где доминируют машинное обучение и граничные вычисления, неспособность Python быть сквозным языком является движущей силой Swift для TensorFlow. Крис Латтнер считает, что динамическая типизация и интерпретатор Python сдерживают нас. По его словам, инженерам нужен язык, который рассматривает машинное обучение как «первоклассного гражданина». Хотя он дает представление о технических причинах, по которым необходим новый подход к анализу компилятора, чтобы изменить способ построения и выполнения программ, использующих TensorFlow, его аргументы наиболее поразительны в опыте программистов.


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

  • Читаемый, эффективный синтаксис

  • возможность написания сценариев

  • Интерфейс как у ноутбука

  • Сторонние библиотеки, созданные активным сообществом

  • Возможность автоматической компиляции кода для конкретного оборудования от TPU до мобильных чипов

  • Может работать на мобильных устройствах

  • близко к производительности C

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

Вы можете посмотреть все выступление Криса Латтнера здесь.

Прочитайте исходный текст:

https://heartbeat.fritz.ai/why-data-scientists-should-start-learning-swift-66c3643e0d0d