clearml/README.md

131 lines
5.9 KiB
Markdown
Raw Normal View History

2019-06-10 20:24:57 +00:00
# TRAINS
2019-06-13 22:07:02 +00:00
## Auto-Magical Experiment Manager & Version Control for AI
2019-06-10 17:00:28 +00:00
2019-07-08 20:29:09 +00:00
"Because its a jungle out there"
2019-06-10 17:00:28 +00:00
2019-06-11 15:11:28 +00:00
[![GitHub license](https://img.shields.io/github/license/allegroai/trains.svg)](https://img.shields.io/github/license/allegroai/trains.svg)
2019-06-11 11:36:36 +00:00
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/trains.svg)](https://img.shields.io/pypi/pyversions/trains.svg)
[![PyPI version shields.io](https://img.shields.io/pypi/v/trains.svg)](https://img.shields.io/pypi/v/trains.svg)
[![PyPI status](https://img.shields.io/pypi/status/trains.svg)](https://pypi.python.org/pypi/trains/)
2019-07-08 20:29:09 +00:00
TRAINS is our solution to a problem we share with countless other researchers and developers in the machine
learning/deep learning universe: Training production-grade deep learning models is a glorious but messy process.
TRAINS tracks and controls the process by associating code version control, research projects,
performance metrics, and model provenance.
2019-06-10 17:00:28 +00:00
2019-06-13 22:08:08 +00:00
We designed TRAINS specifically to require effortless integration so that teams can preserve their existing methods
and practices. Use it on a daily basis to boost collaboration and visibility, or use it to automatically collect
2019-06-13 22:07:02 +00:00
your experimentation logs, outputs, and data to one centralized server.
2019-06-10 17:00:28 +00:00
2019-07-08 20:29:09 +00:00
(Experience TRAINS live at [https://demoapp.trainsai.io](https://demoapp.trainsai.io))
2019-06-11 12:16:20 +00:00
![Alt Text](https://github.com/allegroai/trains/blob/master/docs/webapp_screenshots.gif?raw=true)
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
## TRAINS Automatically Logs Everything
**With only two lines of code, this is what you are getting:**
* Git repository, branch, commit id and entry point (git diff coming soon)
* Hyper-parameters, including
* ArgParser for command line parameters with currently used values
* Tensorflow Defines (absl-py)
* Explicit parameters dictionary
* Initial model weights file
* Model snapshots
* stdout and stderr
* Tensorboard/TensorboardX scalars, metrics, histograms, images (with audio coming soon)
* Matplotlib & Seaborn
2019-07-08 20:29:09 +00:00
**Detailed overview of TRAINS offering and system design can be found [Here](https://github.com/allegroai/trains/blob/master/docs/brief.md).**
## Using TRAINS
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
TRAINS is a two part solution:
2019-06-11 12:10:16 +00:00
2019-07-15 08:30:46 +00:00
1. TRAINS [python package](https://pypi.org/project/trains/) (auto-magically connects your code, see [Using TRAINS](https://github.com/allegroai/trains#using-trains))
**TRAINS requires only two lines of code for full integration.**
2019-07-08 20:29:09 +00:00
2019-07-15 08:30:46 +00:00
To connect your code with TRAINS:
2019-07-08 20:29:09 +00:00
2019-07-15 08:30:46 +00:00
- Install TRAINS
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
pip install trains
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
- Add the following lines to your code
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
from trains import Task
task = Task.init(project_name="my project", task_name="my task")
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
* If project_name is not provided, the repository name will be used instead
* If task_name (experiment) is not provided, the current filename will be used instead
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
- Run your code. When TRAINS connects to the server, a link is printed. For example
2019-07-08 20:29:09 +00:00
2019-07-15 08:30:46 +00:00
TRAINS Results page:
https://demoapp.trainsai.io/projects/76e5e2d45e914f52880621fe64601e85/experiments/241f06ae0f5c4b27b8ce8b64890ce152/output/log
2019-06-11 12:10:16 +00:00
2019-07-15 08:30:46 +00:00
- Open the link and view your experiment parameters, model and tensorboard metrics
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
2. [TRAINS-server](https://github.com/allegroai/trains-server) for logging, querying, control and UI ([Web-App](https://github.com/allegroai/trains-web))
2019-06-10 17:00:28 +00:00
2019-07-15 08:30:46 +00:00
We have a demo server up and running at [https://demoapp.trainsai.io](https://demoapp.trainsai.io). You can try out TRAINS and test your code with it.
Note that it resets every 24 hours and all of the data is deleted.
When you are ready to use your own TRAINS server, go ahead and [install *TRAINS-server*](#configuring-your-own-trains).
System diagram of [TRAINS](https://github.com/allegroai/trains-server) in action
<img src="https://github.com/allegroai/trains/blob/master/docs/system_diagram.png?raw=true" width="30%">
## Configuring Your Own TRAINS server
2019-06-13 22:07:02 +00:00
2019-07-08 20:29:09 +00:00
1. Install and run *TRAINS-server* (see [Installing the TRAINS Server](https://github.com/allegroai/trains-server))
2019-06-13 22:07:02 +00:00
2019-07-08 20:29:09 +00:00
2. Run the initial configuration wizard for your TRAINS installation and follow the instructions to setup TRAINS package
(http://**_trains-server-ip_**:__port__ and user credentials)
2019-06-10 17:00:28 +00:00
trains-init
2019-06-13 22:27:25 +00:00
After installing and configuring, you can access your configuration file at `~/trains.conf`
Sample configuration file available [here](https://github.com/allegroai/trains/blob/master/docs/trains.conf).
2019-06-10 17:00:28 +00:00
2019-06-13 22:27:25 +00:00
*For more examples and use cases*, see [examples](https://github.com/allegroai/trains/blob/master/docs/trains_examples.md).
2019-07-08 20:29:09 +00:00
## Who We Are
2019-06-10 17:00:28 +00:00
2019-06-13 22:08:08 +00:00
TRAINS is supported by the same team behind *allegro.ai*,
2019-06-13 22:07:02 +00:00
where we build deep learning pipelines and infrastructure for enterprise companies.
2019-06-13 22:08:08 +00:00
We built TRAINS to track and control the glorious but messy process of training production-grade deep learning models.
We are committed to vigorously supporting and expanding the capabilities of TRAINS.
2019-06-10 17:00:28 +00:00
## Why Are We Releasing TRAINS?
2019-06-13 22:08:08 +00:00
We believe TRAINS is ground-breaking. We wish to establish new standards of experiment management in
2019-06-13 22:07:02 +00:00
deep-learning and ML. Only the greater community can help us do that.
2019-06-10 17:00:28 +00:00
2019-06-13 22:08:08 +00:00
We promise to always be backwardly compatible. If you start working with TRAINS today,
2019-06-13 22:07:02 +00:00
even though this project is currently in the beta stage, your logs and data will always upgrade with you.
2019-06-10 17:00:28 +00:00
## License
Apache License, Version 2.0 (see the [LICENSE](https://www.apache.org/licenses/LICENSE-2.0.html) for more information)
2019-07-08 20:29:09 +00:00
## Community
2019-06-10 17:00:28 +00:00
2019-07-08 20:29:09 +00:00
If you have any questions, look to the TRAINS [FAQ](https://github.com/allegroai/trains/blob/master/docs/faq.md), or
2019-07-09 08:17:50 +00:00
tag your questions on [stackoverflow](https://stackoverflow.com/questions/tagged/trains) with '**trains**' tag.
2019-06-10 17:00:28 +00:00
2019-07-08 20:29:09 +00:00
For feature requests or bug reports, please use [GitHub issues](https://github.com/allegroai/trains/issues).
2019-07-09 09:12:50 +00:00
Additionally, you can always find us at *trains@allegro.ai*
2019-07-08 20:29:09 +00:00
## Contributing
See the TRAINS [Guidelines for Contributing](https://github.com/allegroai/trains/blob/master/docs/contributing.md).
2019-06-10 17:00:28 +00:00
2019-07-08 20:29:09 +00:00
_May the force (and the goddess of learning rates) be with you!_