1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-easyml

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Простое Машинное Обучение

Что такое Простое Машинное обучение

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

Наша платформа Простое Машинное Обучение (Easy Machine Learning) представляет собой универсальную систему на основе потока данных, которая упрощает процесс применения алгоритмов машинного обучения к задачам реального мира. В системе учебная задача формулируется в виде направленного ациклического графа (DAG), где каждый узел представляет операцию (например, алгоритм машинного обучения), а каждое ребро представляет поток данных от одного узла к его потомкам. Задача может быть определена вручную или клонирована из существующих задач/шаблонов. После отправки задачи в облако, каждый узел будет автоматически запланирован для выполнения в соответствии с DAG.

Графический пользовательский интерфейс реализован для того, чтобы пользователи могли создавать, настраивать, отправлять и отслеживать задачу в режиме drag-and-drop. Преимущества системы включают:

  1. Снижение барьеров при определении и выполнении задач машинного обучения;
  2. Возможность делиться и повторно использовать реализации алгоритмов, DAG заданий и экспериментальных результатов;
  3. Бесшовную интеграцию автономных и распределенных алгоритмов в одной задаче.

Система состоит из трёх основных компонентов:

  • Распределённая библиотека машинного обучения, которая реализует не только популярные алгоритмы машинного обучения, но также алгоритмы для предварительной и последующей обработки данных, преобразования форматов данных, генерации признаков, оценки производительности и т.д. Эти алгоритмы в основном реализованы на основе Spark.
  • Графическая студия машинного обучения на основе GUI, которая позволяет пользователям создавать, настраивать, отправлять, отслеживать и делиться своими процессами машинного обучения в режиме drag-and-drop. Все алгоритмы библиотеки машинного обучения доступны и настраиваются в студии. Они являются ключевыми строительными блоками для создания задач машинного обучения.
Пример DAG потока данных
  • Облачный сервис для выполнения задач. Мы построили сервис на основе открытой платформы больших данных Hadoop и Spark. Для создания платформы мы организовали кластер серверов на Docker. После получения DAG задачи от графического интерфейса, каждый узел автоматически планируется к запуску, когда все зависимые источники данных готовы. Алгоритм, соответствующий узлу, будет запущен на Linux, Spark или Map-Reduce, в зависимости от их реализации.
Структура Docker студии

Как участвовать в нашем проекте

Скачайте весь проект и подготовьте необходимые среды и некоторые утилиты для разработки. Следуйте шагам в Quick-start.md, и вы сможете создать нашу систему на своём компьютере.

Как использовать Easy Machine Learning Studio

После запуска Easy ML, вы можете войти через http://localhost:18080/EMLStudio.html с нашим официальным аккаунтом bdaict@hotmail.com и паролем bdaict. Для наилучшего пользовательского опыта рекомендуется использовать Chrome.

Как показано на следующем рисунке, пользователи могут создать задачу машинного обучения (DAG потока данных) с алгоритмами и наборами данных, перечисленными в левой панели страницы. Они могут выбирать алгоритмы и наборы данных, перечисленные в панелях «Программа» и «Данные». Также они могут нажать на панель «Задание», выбрать существующую задачу, клонировать её и внести необходимые изменения. Пользователи могут настроить информацию о задаче и значения параметров каждого узла. Текст запроса:

in the right panel. The nodes in the task could corresponds to either a stand-alone Linux program or a distributed program running on Spark or Hadoop Map-Reduce.

The task is submitted to run on the cloud after clicking the submit button. The status of each node is indicated with different colors, as shown in the following figure.

Users could right click on the green output port of finished executing node to preview the output data. One could check the stdout and stderr logs from the right click menu of each finished executing node as well.

The users may check the outputs of a node by right clicking the corresponding output ports. The standard output and standard error information printed during the execution can be checked through right clicking the corresponding nodes and selects the menu Show STDOUT and Show STDERR.

A finished (either success or not) task can be further modified and resubmitted to run, as shown in the following figure. Our system will only schedule the influenced nodes to run. The outputs of uninfluenced nodes are directly reused to save the running time and system resources.

The users can upload their own algorithm packages and data sets for creating their own tasks or shared with other users. By clicking the upload program button, the popup window allows the users to specify the necessary information of the algorithm package, including the name, the category, the description, and the command line pattern string etc, as shown in the following figure. The most important thing is to write the command line pattern string with the predefined format. It defined the input ports, output ports, and parameter settings of a node. We developed a tool in the panel for helping users to write the command line string patterns. By clicking the upload data button, users can upload a data set in the similar way as that of uploading a algorithms package.

How to experience our system

We apply an online service for you to experience our system. You can register your own account or use our official account to login the system. The website of the system is as belows:

If you have any advice or problems when you expericen our system, welcome to contact us! You can leave us a message or give a email to bdaict@hotmail.com, thank you for your advice!

Papers and Presentations

  1. EasyML: Ease the Process of Machine Learning with Data Flow. SOSP AI System Workshop Shanghai Oct. 28, 2017
  2. Tianyou Guo, Jun Xu, Xiaohui Yan, Jianpeng Hou, Ping Li, Zhaohui Li, Jiafeng Guo, and Xueqi Cheng. Ease the Process of Machine Learning with Dataflow. Proceedings of the 25th ACM International Conference on Information and Knowledge Management (CIKM '16), Indianapolis, USA, pp. 2437-2440, 2016.

Acknowledgements

The following people contributed to the development of the EasyML project:

Перевод текста на русский язык:

В правой панели. Узлы в задаче могут соответствовать либо автономной программе Linux, либо распределённой программе, работающей на Spark или Hadoop Map-Reduce.

Задача отправляется для выполнения в облаке после нажатия кнопки «Отправить». Статус каждого узла отображается разными цветами, как показано на следующем рисунке.

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

Пользователи могут проверить выходные данные узла, щёлкнув правой кнопкой мыши соответствующие выходные порты. Стандартную информацию о выводе и стандартную информацию об ошибках, напечатанную во время выполнения, можно проверить, щёлкнув соответствующие узлы правой кнопкой мыши и выбрав меню «Показать STDOUT» и «Показать STDERR».

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

Пользователи могут загружать свои собственные пакеты алгоритмов и наборы данных для создания собственных задач или делиться ими с другими пользователями. Нажав кнопку «Загрузить программу», всплывающее окно позволяет пользователям указать необходимую информацию о пакете алгоритма, включая имя, категорию, описание и строку шаблона командной строки и т. д., как показано на следующем рисунке. Самое главное — написать строку шаблона командной строки в предопределённом формате. Она определяет входные порты, выходные порты и параметры настройки узла. Мы разработали инструмент на панели, который помогает пользователям писать шаблоны строк командной строки. Нажав кнопку «Загрузить данные», пользователи могут загрузить набор данных аналогичным образом, как при загрузке пакета алгоритмов.

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

— За пределами ИКТ вы можете посетить: http://159.226.40.104:18080/dev/. — Внутри ИКТ вы можете посетить: http://10.60.0.50:18080/dev/.

Если у вас есть какие-либо советы или проблемы при использовании нашей системы, обращайтесь к нам! Вы можете оставить нам сообщение или отправить электронное письмо на адрес bdaict@hotmail.com, спасибо за ваши советы!

Статьи и презентации

  1. EasyML: упрощение процесса машинного обучения с помощью потока данных. Семинар AI-системы SOSP, Шанхай, 28 октября 2017 года.
  2. Тянью Го, Цзюнь Сюй, Сяохуэй Янь, Цзяньпэн Хоу, Пин Ли, Чжаохуэй Ли, Цзяфэн Го и Сюэци Чэн. Упрощение процесса машинного обучения с использованием потока данных. Материалы 25-й Международной конференции ACM по управлению информацией и знаниями (CIKM ’16), Индианаполис, США, стр. 2437–2440, 2016 год.

Благодарности Следующие люди внесли свой вклад в разработку проекта EasyML:

Цзюнь Сюй, Школа информации, Жэньминьский университет Китая. Домашняя страница: http://info.ruc.edu.cn/academic_professor.php?teacher_id=169. Сяохуэй Янь. Домашняя страница: http://xiaohuiyan.github.io/. Синцзе Чен, Институт вычислительной техники. Чжохуэй Ли, Институт вычислительных технологий Китайской академии наук.

Тянью Го, Sougou Inc.

Цзяньпэн Хоу, Google China.

Пин Ли, Tencent Wechat.

Цзяшо Цао, Чэндуский университет информационных технологий.

Дун Хуан, Университет Китайской академии наук.

Сюэци Чэн, Институт вычислительных технологий Китайской академии наук. Домашняя страница: http://www.bigdatalab.ac.cn/~cxq/.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-easyml.git
git@api.gitlife.ru:oschina-mirror/mirrors-easyml.git
oschina-mirror
mirrors-easyml
mirrors-easyml
master