Machine learning algorithms have become the key components in many big data applications. However, the full potential of machine learning is still far from been realized because using machine learning algorithms is hard, especially on distributed platforms such as Hadoop and Spark. The key barriers come from not only the implementation of the algorithms themselves, but also the processing for applying them to real applications which often involve multiple steps and different algorithms.
Our platform Easy Machine Learning presents a general-purpose dataflow-based system for easing the process of applying machine learning algorithms to real world tasks. In the system a learning task is formulated as a directed acyclic graph (DAG) in which each node represents an operation (e.g. a machine learning algorithm), and each edge represents the flow of the data from one node to its descendants. The task can be defined manually or be cloned from existing tasks/templates. After submitting a task to the cloud, each node will be automatically scheduled to execute according to the DAG. Graphical user interface is implemented for making users to create, configure, submit, and monitor a task in a drag-and-drop manner. Advantages of the system include
Lowing the barriers of defining and executing machine learning tasks;
Sharing and re-using the implementations of the algorithms, the job DAGs, and the experimental results;
Seamlessly integrating the stand-alone algorithms as well as the distributed algorithms in one task.
The system consists of three major components:
Pull all project and prepare some necessary environments and a kind of development utilities. Follows the step in Quick-start.md, and you can create our system in your computer.
After you have ran Easy ML，You can login via
http://localhost:18080/EMLStudio.htmlwith our official account
[email protected] and password
bdaict. For the best user experience, it is recommended to use Chrome.
Datapanels. They can also click the
Jobpanel, select an existing task, clone it, and make necessary modifications. The users can configure the task information and parameter values of each node 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.
submitbutton. The status of each node is indicated with different colors, as shown in the following figure.
green output portof 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
upload programbutton, 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 databutton, users can upload a data set in the similar way as that of uploading a algorithms package.
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
[email protected], thank you for your advice!
The following people contributed to the development of the EasyML project：