- Build an easy-to-use, bug-resistant Java-based ML framework.
- Add a rich collection of models, statistical building blocks and feature transformers that can be rapidly incorporated into ML models.
- Enable a simple abstraction.
There are also other ML frameworks for Java developers, such as DeepLearning4J and Tribuo. However, Dagli excels in the implementation of end-to-end ML pipelines. Dagli represents machine learning programs as directed acyclic graphs (DAGs), with four fundamental types of root and child nodes:
Root Node – Placeholder: Placeholders represent values that will be filled during the training phase or generators that transfer values to the other nodes.Â
Root Node – Generator: Generator is a root that transfers data to its children.Â
Child Node – Transformer: Transformers are nodes that transform the inputs received by the parent nodes in order to produce a result. Â
Child Node – Views: Views are similar to Transformers but they contain a single parent and simply pass the input information to its children.
For instance, a simple Dagli program might produce the following Dagli DAG:
ML Artifacts:Â Dagli includes rich libraries of ML components that simplify the implementation of ML models. Examples of these artifacts include neural networks, logistic regression, gradient boosted decision trees, FastText, cross-validation, cross-training, feature selection, data readers, evaluation, and feature transformation.Â
Portability:Â Dagli can be executed on several JVM runtimes ranging from Hadoop servers to a local computer.Â
Training-Inference Pipeline: Dagli defines a single DAG for both training and inference, which simplifies the interpretability of models. Â
Deployment:Â Dagli programs are very simple to deploy as they are, essentially, serialized as a single object.
Additional Resources: