Новый выпуск делает Ludwig одним из самых полных стеков AutoML с открытым исходным кодом на рынке.

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



Uber продолжает вносить новаторский вклад в технологии машинного обучения с открытым исходным кодом. На прошлой неделе транспортный гигант Ludwig 0.3 с открытым исходным кодом стал третьим обновлением своей платформы машинного обучения без кода. За последние несколько месяцев сообщество Людвига расширилось за пределы Uber и включает таких участников, как Стэнфордский университет. Этот новый выпуск расширяет возможности AutoML своих предшественников. Давайте подведем итоги предыдущих версий Ludwig и исследуем этот новый выпуск.

Что такое Убер Людвиг?

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

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

Используя Ludwig, специалист по данным может обучить модель глубокого обучения, просто предоставив файл CSV, содержащий обучающие данные, а также файл YAML с входными и выходными данными модели. Используя эти две точки данных, Людвиг выполняет многозадачную процедуру обучения для одновременного прогнозирования всех выходных данных и оценки результатов. Под покровом Людвиг предоставляет серию моделей глубокого обучения, которые постоянно оцениваются и могут быть объединены в окончательную архитектуру. Основное нововведение Ludwig основано на идее кодеров и декодеров для конкретных типов данных. Людвиг использует определенные кодировщики и декодеры для любого поддерживаемого типа данных. Как и в других архитектурах глубокого обучения, кодеры отвечают за отображение необработанных данных в тензоры, в то время как декодеры отображают тензоры на выходы. Архитектура Ludwig также включает в себя концепцию комбайнера, который представляет собой компонент, который объединяет тензоры со всех входных кодеров, обрабатывает их и возвращает тензоры, которые будут использоваться для выходных декодеров.

Людвиг 0,3

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

1) Оптимизация гиперпараметров

Поиск наилучшей комбинации гиперпараметров для данной задачи машинного обучения может быть утомительным. Ludwig 0.3 представляет новую команду hyperopt, которая выполняет автоматический поиск гиперпараметров и возвращает возможные конфигурации. Hyperopt можно вызвать с помощью простого синтаксиса:

На выходе представлены разные значения и масштабы гиперпараметров.

2) Интеграция с весами и смещениями

В дополнение к предыдущему пункту, Ludwig 0.3 интегрируется с платформой Weights and Biases (W&B). W&B предоставляет очень наглядный интерфейс для быстрого экспериментирования и настройки гиперпараметров в моделях машинного обучения. Чтобы использовать W&B, пользователи Ludwig могут просто добавить к своим командам параметры -wandb.

3) Бескодовые трансформаторы

В последние годы предварительно обученные языковые модели и преобразователи были в центре крупных достижений в таких областях глубокого обучения, как обработка естественного языка. Ludwig 0.3 интегрирует поддержку трансформаторов через его интеграцию с репозиторием Transformers компании Hugging Face.

4) Бэкэнд TensorFlow 2

В новом выпуске Ludwig произошла серьезная реорганизация архитектуры на основе TensorFlow 2. Хотя эта реорганизация архитектуры может быть не сразу очевидна для конечных пользователей, она позволяет Ludwig воспользоваться многими новыми возможностями TensorFlow 2 и представить гораздо более модульный дизайн.

5) Интеграция с новым источником данных

Одним из основных ограничений Ludwig было небольшое количество наборов данных, которые могут быть ограниченными структурами наборов данных, поддерживаемыми в качестве входных данных. По сути, Ludwig поддерживал только CSV и Pandas Dataframes в качестве входных наборов данных. В новой версии эта проблема решена за счет интеграции со многими другими форматами, такими как excel, перо, fwf, hdf5, таблицы html, json, jsonl, parquet, pickle, sas, spss, stata и tsv. Новые наборы данных можно использовать с помощью простой командной строки:

Другие возможности

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