Опенсорс учёный: 15 полезных инструментов с искусственным интеллектом и машинным обучением
От создания дипфейков до обработки естественного языка — опенсорс-инструменты всегда находятся на переднем крае разработок с искусственным интеллектом и машинным обучением. Концепция открытого исходного кода и приложения для совместной работы упрощают обмен данными в командах и делают производственный цикл значительно короче.
Неудивительно, что open source с каждым годом завоевывает все большую популярность и начинает преобладать даже в корпоративном секторе, где традиционно доминировало проприетарное ПО. Согласно опросу, проведенному Red Hat среди почти 1300 ИТ-руководителей крупнейших компаний мира, свыше 80% предприятий планируют увеличить использование enterprise-технологий с открытым исходным кодом в ближайшие два года.
В этой статье рассмотрим 15 проектов с открытым исходным кодом, которые на наших глазах меняют мир искусственного интеллекта и машинного обучения. Некоторые из них — просто программные пакеты на основе AI/ML алгоритмов, другие — полнофункциональные фреймворки или платформы для машинного обучения. Но каждый из представленных ниже инструментов достоин внимания разработчика, интересующегося перспективными технологиями.
TensorFlow
Категория: фреймворк, глубокое обучение (DL), обработка естественного языка (NLP), компьютерное зрение (CV), обработка звука (AP)
Лицензия: Apache License 2.0
Для любого, кто использует программное обеспечение с AI/ML, фреймворк TensorFlow от Google не нуждается в представлении. Он начался как внутренний проект команды Google Brain в 2011 году, основанный на нейронных сетях глубокого обучения, а с 2015 года начал развиваться в направлении открытого исходного кода.
Одно из главных преимуществ TensorFlow — его обучающая экосистема. Те, кто только начинают разработку опенсорнных AI/ML продуктов, легко найдут бесплатные учебные пособия, исчерпывающие курсы и сертификаты в дополнение к собственной подробной документации. Еще одно явное преимущество TensorFlow — почти абсолютная гибкость, ведь фреймворк можно использовать на любом языке и в любой производственной среде.
Особенности:
Поддержка нескольких языков, включая JavaScript.
Интуитивно понятные высокоуровневые API (например, Keras) для простого создания и обучения моделей машинного обучения.
Независимые от платформы ML-процессы, которые можно развертывать локально — в облаке, браузере или на устройстве.
Приложение TensorFlow Lite для мобильных приложений и встроенных устройств или IoT.
Перекрестная совместимость между моделями AI/ML, которые были обучены на разных версиях TensorFlow.
Широкий спектр приложений, включая прогнозный анализ, классификацию объектов и диалоговый ИИ.
PyTorch
Категория: фреймворк, глубокое обучение (DL), обработка естественного языка (NLP), компьютерное зрение (CV), обработка звука (AP)
Лицензия: BSD License
Фреймворк PyTorch совершенствует базовую структуру ML-библиотеки Torch, созданной на языке Lua. Исследовательская лаборатория искусственного интеллекта FAIR запустила PyTorch в качестве интерфейса на основе Python для разработки AI/ML приложений под лицензией с открытым исходным кодом в 2016 году. Сегодня PyTorch превратился в богатую экосистему, которая предоставляет вам все инструменты, необходимые для ускорения разработки ИИ, — от исследований до производства.
Самым большим УТП PyTorch, вероятно, является его доступность в популярных облачных сервисах, типа Alibaba Cloud. Это позволяет быстро загрузить библиотеку программного обеспечения из соответствующего магазина приложений и приступить к работе, не выходя из текущей облачной среды разработки.
Особенности:
Готовая к производству среда на базе TorchServe для быстрого развертывания моделей.
Распределенная внутренняя архитектура для оптимизации производительности.
Алгоритмы компьютерного зрения и обработки естественного языка.
Пайплайн основан на Python, но доступен экспорт в проекты на C++ с помощью дополнительного инструмента TorchScript.
Поддерживается всеми основными общедоступными облаками для гибкой разработки, включая Alibaba Cloud, Amazon Web Services, Google Cloud Platform и Microsoft Azure.
Поддерживается ведущими производителями чипов, включая ARM, Nvidia, Qualcomm и Intel.
Сквозной рабочий процесс — от Python до iOS/Android для разработки мобильных приложений.
Возможен собственный экспорт из открытой библиотеки Open Neural Network Exchange (ONNX).
H2O.ai
Категория: ML-платформа, глубокое обучение (DL), Cloud SaaS
Лицензия: Apache License 2.0
Компания H2O с момента основания в 2012 году находится в авангарде инноваций в области AI и ML с открытым исходным кодом. Она работает над созданием крупномасштабных продуктов на базе ИИ с такими технологическими гигантами, как NVIDIA, IBM, Intel и Google. Платформа основана на Kubernetes, поэтому ее можно запустить в любом облаке или в локальной инфраструктуре.
Главное детище H2O — собственная облачная масштабируемая платформа для глубокого обучения и предиктивной аналитики. H2O AI Cloud позволяет компаниям использовать все преимущества гибридных облаков — подготавливать, моделировать, эксплуатировать, разрабатывать и использовать в централизованной среде, привлекая к сотрудничеству сторонних подрядчиков.
Особенности:
Интеграция с Hadoop и Spark для моделирования ИИ на основе больших данных.
Большая библиотека ML-алгоритмов, включая контролируемое и неконтролируемое обучение.
Встроенный механизм прогнозирования схем входящих наборов данных.
Поддержка приема данных из нескольких источников в различных форматах.
ИИ-помощник, помогающий пользователям со слабой технической базой подготавливать данные, задавать параметры и выбирать алгоритмы для решения конкретных бизнес-задач.
Простая в использовании UI-навигация через Flow.
Blender
Категория: приложение, 3D визуализация
Лицензия: GNU General Public License (GPL)
Мечтаете получить «Оскар» за 3D-анимацию и эффекты? Тогда вам точно стоит попробовать Blender. Это лучший способ преобразовать статичные трехмерные модели в богато визуализированные сцены видеоролика или полнометражки.
Хотя многие считают его инструментом для создателей фильмов и аниматоров, Blender также является отличным примером прикладного применения искусственного интеллекта. Богатый интерфейс и многочисленные плагины позволяют любому желающему создавать сложную моушн-графику или кинематографические перспективы. Нужно добавить немного собственного творчества и комитет по номинациям на «Оскар» скоро свяжется с вами (ИИ в соавторах можно не указывать).
Особенности:
Поддерживает полный пайплайн (цикл разработки) 2D и 3D моделей — моделирование, оснастку, анимацию, симуляцию, рендеринг, компоновку и отслеживание движений, редактирование видео.
Три встроенных движка: Workbench в окне просмотра (viewport), Cycles Render с алгоритмом, основанным на трассировке света и Eevee, который выполняет PBR-рендеринг (Physically based rendering) в реальном времени.
Включает готовую к производству камеру и трекинг объектов, что позволяет импортировать необработанные кадры, отслеживать кадры, маскировать области и видеть движения камеры в 3D-сцене в реальном времени.
Настраиваемая панель пользователя.
DALL·E
Категория: обработка естественного языка (NLP), генератор изображений, нейросеть
Лицензия: Modified MIT License (GPL)
Один из самых простых способов понять, как «думают» модели машинного обучения, — начать вставлять слова в DALL·E 2, очень большую открытую ИИ-модель, обученную на изображениях и текстовых описаниях из интернета. Вводим слово в нейросеть и получаем на выходе подходящее по смыслу реалистичное изображение. Это отчасти игра, а отчасти портал в «разум» ИИ-алгоритма.
На сегодняшний день DALL·E 2 реализована в закрытой версии нового приложения Microsoft Designer, а также в дизайнерских приложениях CALA и Mixtiles от OpenAI, которые используют ее API. Лично «познакомиться» с нейросетью можно в облачном сервисе DALL-E Playground с различными моделями генерации (например, DALL·E Mini и DALL·E Mega). Инструмент пока бесплатный, но есть ограничение — 1 запрос в 10 секунд.
Особенности:
Мощный творческий инструмент — DALL·E может стать источником «быстрого» вдохновения для целого ряда творческих профессий, включая дизайнеров, художников и режиссеров.
Функция редактирования полученных изображений (Edit), которая позволяет дополнять описание на естественном языке для получения более реалистичного результата.
Функция Variations позволяет выбирать источники для генерации — пользовательские изображения или те, что нашла сама DALL·E.
Функция My Collection позволяет пользователям сохранять сгенерированные изображения прямо на платформе DALL·E.
Защита от неправомерного использования — фильтры контента будут блокировать изображения, нарушающие нормы морали или политику конфиденциальности личной информации.
YOLOv7
Категория: алгоритм, нейронная сеть, обнаружение объектов (OD), компьютерное зрение (CV)
Лицензия: GNU General Public License (GPL)
Обнаружение объектов в реальном времени или поиск объектов на изображениях — сложная область, даже для искусственного интеллекта. Но подобная функциональность критически значима для программного обеспечения таких производственных областей, как робототехника, беспилотные автомобили и вспомогательные устройства, которым необходимо собирать и передавать точную информацию об окружающей среде.
YOLOv7 (от You Only Look Once) — один из самых быстрых и точных инструментов обнаружения объектов с открытым исходным кодом. Для него требуется в несколько раз более дешевое оборудование, чем для других нейронных сетей, и его можно обучать намного быстрее на небольших наборах данных без каких-либо предварительно обученных весов.
Особенности:
Самая высокая точность (56,8% AP) среди всех известных детекторов объектов реального времени с 30 FPS и выше на GPU V100.
Собственная ноу-код платформа Viso Suite для развертывания моделей компьютерного зрения и создания пользовательских приложений.
Для обучения используется только набор данных MS COCO.
Архитектура E-ELAN (Extended Efficient Layer Aggregation Network) позволяет улучшить способность сети к обучению, не разрушая исходный градиентный путь.
Метод составного масштабирования моделей.
DeepFaceLab
Категория: глубокое обучение (DL), обработка видео, дипфейки
Лицензия: GNU General Public License (GPL)
Дипфейки — видео и изображения, созданные, измененные или синтезированные с помощью технологий глубокого обучения. Наиболее распространенный пример использования дипфейков — подмена лиц знаменитостей или политиков для создания смешных видео. Именно так появился знаменитый ролик, где актёр Джордан Пил, «поменялся местами» с Баракой Обамой.
DeepFaceLab — ПО для дипфейков с открытым исходным кодом, работающее на Python. Более 90% дипфейк-видео, которые можно видеть в Интернете, создаются с помощью именно этой технологии. На DeepFaceLab основан контент большинства популярных ютуб-каналов, посвященных дипфейкам, включая Corridor Crew, Collider Extras и VFXChris Ume.
Помимо замены одного лица на другое в дипфейках, DeepFaceLab можно использовать и для более практичных вещей. Например, для удаления морщин и других возрастных признаков возраста на видео.
Особенности:
Взаимозаменяемость модулей.
Собственная высокоуровневая инфраструктура глубокого обучения Leras (от Lighter Keras), построенная на чистом TensorFlow.
Возможность гибкой настройки разных аспектов дипфейк-конвейера с помощью инструментов командной строки.
Встроенный редактор ручной сегментации лиц XSeg.
Средства повышения производительности: поддержка нескольких графических процессоров, обучение с половинной точностью, использование закрепленной памяти CUDA, использование нескольких потоков данных.
Реализация DeepFaceLive позволяет вычислять модели DeepFaceLab со скоростью видеопотока (около 30 кадров в секунду) и создавать дипфейки в режиме реального времени, например, для видеозвонков.
MindsDB
Категория: SQL-сервер, базы данных
Лицензия: GNU General Public License (GPL)
Обычный способ взаимодействия с ИИ — хранить данные в БД, а затем извлекать их для отправки в отдельный алгоритм машинного обучения. SQL-сервер MindsDB интегрирует алгоритмы машинного обучения сразу в базу данных. Анализ данных в месте хранения позволяет значительно ускорить рабочие процессы машинного обучения.
Особенности:
Бесшовная интеграция с большинством баз данных.
Использование SQL-запросов для всех манипуляций с моделями ML.
Использование мощностей графического процессора для повышения скорости обучения моделей без понижения производительности базы данных.
Визуальные инструменты, позволяющие исследовать производительность модели.
Встроенная библиотека Lightwood AutoML, позволяющая автоматизировать построение и обучение моделей на пользовательских данных.
Image Super-Resolution (ISR)
Категория: библиотека, обработка изображений, компьютерное зрение (CV)
Лицензия: Apache License 2.0
Известно, что чем выше детализация фотографий, тем лучше их качество. ИИ-библиотека ISR («Изображение со сверхвысоким разрешением») помогает добавить фото еще больше деталей, увеличив разрешение изображения.
Этот инструмент с открытым исходным кодом использует ML-модель, которую можно научить «угадывать» детали изображения с низким разрешением. С хорошим тренировочным набором модель может воспроизводить точные детали и повышать четкость изображения, что важно для различных задач компьютерного зрения.
Особенности:
Алгоритмы реализованы на платформе фреймворка PyTorch.
ISR совместим с последними версиями Python.
Для обучения и прогнозирования используются скрипты Docker и блокноты Google Colab.
Готовые скрипты для облегчения обучения в облаке на AWS и Nvidia-docker с помощью всего нескольких команд.
DeepPavlov
Категория: фреймворк, глубокое обучение (DL), обработка естественного языка (NLP), чат-бот
Лицензия: Apache License 2.0
Многие предприятия и крупные корпорации заменяют передовые линии обслуживания клиентов чат-ботами, а это означает, что машины учатся поддерживать разговор. Платформа диалогового ИИ DeepPavlov объединяет основные инструменты машинного обучения, такие как TensorFlow, Keras и PyTorch, для создания чат-ботов и виртуальных помощников.
DeepPavlov снабжен комплексными и гибкими инструментами, которые позволяют разработчикам и исследователям NLP создавать готовые к работе разговорные навыки и сложных помощников для разговоров с несколькими навыками. Фреймворк позволяет создавать промышленные решения с многопрофильной интеграцией через сервисы API.
Особенности:
Запуск предварительно обученных или собственных NLP-компонентов и разговорных навыков.
Фреймворк использует BERT и другие современные модели глубокого обучения для решения задач классификации, NER (распознавания именованных сущностей), вопросов-ответов и других NLP-задач.
Модели DeepPavlov упакованы в простые для развертывания контейнеры, размещенные на Nvidia NGC и Docker Hu.
Технология диалогового искусственного интеллекта может помочь ускорить NLP-приложения до 20 раз.
Mycroft.ai
Категория: голосовой помощник, обработка естественного языка (NLP)
Лицензия: Apache License 2.0
Голосовой помощник с открытым исходным кодом «Майкрофт» предлагает доступную альтернативу коммерческим решениям от лидеров индустрии, таким как Alexa или Siri, имеющим очевидные проблемы с майнингом пользовательских данных. Существует большое сообщество пользователей, разработчиков и переводчиков, которые постоянно улучшают алгоритмы ИИ и обеспечивают поддержку решения.
Особенности:
Можно запустить в любой экосистеме.
Пользовательский интерфейс на естественном языке (LUI/NLUI).
Релизы доступны для Android, Linux и Docker, а также для macOS и Windows через виртуальную машину VirtualBox.
Модульная архитектура со сменными внутренними компонентами.
Преобразование речи в текст совместно с Mozilla Common Voice Project и программным обеспечением DeepSpeech.
Парсинг поисковых интентов через преобразования естественного языка в машиночитаемые структуры данных.
Преобразование текста в речь на основе системы синтеза речи Festival Lite.
OpenNN
Категория: библиотека, нейронные сети (NN)
Лицензия: GNU General Public License (GPL)
OpenNN (Open Neural Networks Library) — программная библиотека искусственного интеллекта с открытым исходным кодом для реализации нейронных сетей и машинного обучения. Основная специализация — прогнозная и отраслевая аналитика.
На OpenNN можно создавать приложения для сегментации клиентов в маркетинге, ранней диагностики в здравоохранении, профилактического обслуживания оборудования и многого другого.
Особенности:
Библиотека создана на основе C++.
Регрессионный анализ для моделирования результатов машинного обучения.
Классификация данных для назначения определенных шаблонов.
Прогнозирование на основе исторических наборов данных.
Отображение ассоциации между двумя коррелированными переменными.
ML-инструмент Neural Designer («нейронный дизайнер») для упрощения процесса построения нейронных сетей.
Хорошая документированность.
OpenCV
Категория: библиотека, компьютерное зрение (CV)
Лицензия: BSD / Apache License 2.0
Библиотека OpenCV с открытым исходным кодом может стать одним из самых эффективных инструментов для изучения технологии машинного зрения. Он включает в себя множество популярных алгоритмов для идентификации объектов на цифровых изображениях, а также ряд специализированных процедур, например, возможность определять и считывать номерные знаки автомобилей.
Особенности:
OpenCV изначально разрабатывался на C++, а позже были добавлены привязки Python и Java.
Библиотека работает в различных операционных системах, включая Windows, Linux, OSx, FreeBSD, Net BSD, Open BSD и т. д.
OpenCV включает 6 функциональных модулей: Video (оценка движения, вычитание фона, отслеживание объектов), Video I/O (захват видео), calib3d (калибровка камеры), features2d (обнаружение и описание функций), Objdetect (обнаружение объектов и экземпляров предопределенных классов — лица, глаза, лица, люди, автомобили и т. д.), Highgui (пользовательский интерфейс).
FauxPilot
Категория: ИИ-помощник, подсказки и автозавершение кода
Лицензия: Modified MIT License (GPL)
Программисты, которым нужна небольшая помощь в написании кода, могут получить ее в FauxPilot. Система обучается на существующем производственном коде, чтобы делать структурированные комментарии и предложения по автозаполнению.
Проект был вдохновлен GitHub Copilot, но, в отличие от оригинала, FauxPilot позволяет выбирать репозитории, которые будут использованы для обучения. Этот дополнительный уровень контроля позволяет с большей вероятностью выбрать чистые и заслуживающие доверия учебные источники.
Особенности:
FauxPilot позволяет обойти проблемы с лицензированием и телеметрией, возникающие при отправке GitHub Copilot данных в Microsoft.
FauxPilot, как и Copilot основан на системе преобразования естественного языка в код OpenAI Codex (GPT-3), обученной на миллиардах строк открытого исходного кода из проектов GitHub.
Модели FauxPilot используют для обучения ИИ-модель CodeGen от Salesforce.
Robocode
Категория: игры, робототехника, обучение программированию, беспилотные транспортные средства
Лицензия: Eclipse Public License (EPL)
Работа с ИИ необязательно должна быть скучным занятием. Есть способ превратить создание алгоритмов на основе искусственного интеллекта в драматичную схватку на выживание в стиле «Голодных игр».
«Робокод» — игра на основе Java, где вашему заранее запрограммированному робо-танку придется сражаться против других машин в битве за господство над ареной. Это веселое времяпрепровождение, которое может быть даже полезно для тестирования новых стратегий управления автономными транспортными средствами.
Кстати. Источником вдохновения для Robocode послужила игра для программистов Robot Battle, написанная Брэдом Шиком в 1994 году. Robot Battle, в свою очередь, была вдохновлена RobotWar — игрой Apple II+ начала 1980-х.
Особенности:
Полная среда разработки, которая поставляется с установщиком, встроенным редактором роботов и компилятором Java.
Помимо Java можно программировать на других языках, например, таких, как Kotlin и Scala.
Возможность выбора версии Java — Java Runtime Environment (JRE) или Java Development Kit (JDK).
Поддержка разработки роботов с использованием внешних IDE.
Игровая концепция Robocode отлично подходит для применения в учебных заведениях.
Заключение
Пятнадцать опенсорс-технологий, которые мы кратко описали выше, отвечают профессиональным требованиям к качественному AI/ML инструменту. Они поддерживаются большими сообществами разработчиков, получают регулярные усовершенствования и итерации, а также прошли проверку использованием в реальных проектах. Эти продукты объединяют коллективный разум мирового сообщества разработчиков и возможности самых передовых исследовательских лабораторий в мире.
Материал подготовлен на основе статьи Peter Wayner с использованием открытых источников и авторскими дополнениями.