diff --git a/README.md b/README.md index 599355c..9553cd8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # TRAINS Server -## Automagical Version Control & Experiment Manager for AI +## Auto-Magical Experiment Manager & Version Control for AI [](https://img.shields.io/badge/license-SSPL-green.svg) [](https://img.shields.io/github/release-pre/allegroai/trains-server.svg) @@ -8,16 +8,18 @@ ## Introduction -The **trains-server** is the infrastructure for [TRAINS](https://github.com/allegroai/trains). +The **trains-server** is the backend service infrastructure for [TRAINS](https://github.com/allegroai/trains). It allows multiple users to collaborate and manage their experiments. +By default, TRAINS is set up to work with the TRAINS demo server, which is open to anyone and resets periodically. +In order to host your own server, you will need to install **trains-server** and point TRAINS to it. -The **trains-server** contains the following components: +**trains-server** contains the following components: -* the Web-App which is a single-page UI for experiment management and browsing -* a REST interface for: - * documenting and logging experiment information, statistics and results - * querying experiments history, logs and results -* a locally-hosted file server for storing images and models making them easily accessible using the Web-App +* The TRAINS Web-App, a single-page UI for experiment management and browsing +* RESTful API for: + * Documenting and logging experiment information, statistics and results + * Querying experiments history, logs and results +* Locally-hosted file server for storing images and models making them easily accessible using the Web-App You can quickly setup your **trains-server** using a pre-built Docker image (see [Installation](#installation)). @@ -27,46 +29,15 @@ The **trains-server's** code is freely available [here](https://github.com/alleg ## System diagram -
- TRAINS-server - +--------------------------------------------------------------------+ - | | - | Server Docker Elastic Docker Mongo Docker | - | +-------------------------+ +---------------+ +------------+ | - | | Pythonic Server | | | | | | - | | +-----------------+ | | ElasticSearch | | MongoDB | | - | | | WEB server | | | | | | | - | | | Port 8080 | | | | | | | - | | +--------+--------+ | | | | | | - | | | | | | | | | - | | +--------+--------+ | | | | | | - | | | API server +----------------------------+ | | - | | | Port 8008 +---------+ | | | | - | | +-----------------+ | +-------+-------+ +-----+------+ | - | | | | | | - | | +-----------------+ | +---+----------------+------+ | - | | | File Server +-------+ | Host Storage | | - | | | Port 8081 | | +-----+ | | - | | +-----------------+ | +---------------------------+ | - | +------------+------------+ | - +---------------|----------------------------------------------------+ - |HTTP - +--------+ - GPU Machine | - +------------------------|-------------------------------------------+ - | +------------------|--------------+ | - | | Training | | +---------------------+ | - | | Code +---+------------+ | | TRAINS configuration| | - | | | TRAINS | | | ~/trains.conf | | - | | | +------+ | | - | | +----------------+ | +---------------------+ | - | +---------------------------------+ | - +--------------------------------------------------------------------+ -+ + + ## Installation This section contains the instructions to setup and launch a pre-built Docker image for the **trains-server**. +This is the quickest way to get started with your own server. +Alternatively, you can build the entire trains-server architecture using the code available in our repositories. **Please Note**: * This Docker image was tested with Linux, only. For Windows users, we recommend running the server @@ -168,7 +139,7 @@ Elastic requires that `vm.max_map_count` is at least 262144 (see [Production mod #### Step 5: Choose a Data Directory You must choose a directory on your system in which all data maintained by the **trains-server** is stored, -create that directory, and set its permissions. The data stored in that directory includes the database, uploaded files and logs. +Create a directory, and set its permissions. The data stored in this directory will include the database, uploaded files and logs. For example, if your data directory is `/opt/trains`, then use the following command: @@ -209,9 +180,9 @@ After the **trains-server** Dockers are up, the following are available: ### Configuring **trains** -Once you've installed the **trains-server**, please make sure to configure **trains** to use your locally installed server (and not the demo server). +Once you have installed the **trains-server**, make sure to configure **trains** to use your locally installed server (and not the demo server). -If you've already installed **trains**, run the `trains-init` command for an interactive setup or edit your `trains.conf` file and make sure the `api.host` value is configured as follows: +If you have already installed **trains**, run the `trains-init` command for an interactive setup or edit your `trains.conf` file and make sure the `api.host` value is configured as follows: ``` api { @@ -221,6 +192,12 @@ api { See [Installing and Configuring TRAINS](https://github.com/allegroai/trains#installing-and-configuring-trains) for more details. +## What next? + +Now that the **trains-server** is installed, and TRAINS is configured to use it, +you can [use](https://github.com/allegroai/trains#using-trains) TRAINS in your experiments and view them in the web server, +for example http://localhost:8080 + ## Upgrade We are constantly updating, improving and adding to the **trains-server**. @@ -259,8 +236,10 @@ When we release a new version and include a new pre-built Docker image for it, u [Server Side Public License v1.0](https://github.com/mongodb/mongo/blob/master/LICENSE-Community.txt) -**trains-server** relies *heavily* on both [MongoDB](https://github.com/mongodb/mongo) and [ElasticSearch](https://github.com/elastic/elasticsearch). -With the recent changes in both MongoDB's and ElasticSearch's OSS license, we feel it is our job as a community to support the projects we love and cherish. -We feel the cause for the license change in both cases is more than just, and chose [SSPL](https://www.mongodb.com/licensing/server-side-public-license) because it is the more general and flexible of the two. +**trains-server** relies on both [MongoDB](https://github.com/mongodb/mongo) and [ElasticSearch](https://github.com/elastic/elasticsearch). +With the recent changes in both MongoDB's and ElasticSearch's OSS license, we feel it is our responsibility as a +member of the community to support the projects we love and cherish. +We believe the cause for the license change in both cases is more than just, +and chose [SSPL](https://www.mongodb.com/licensing/server-side-public-license) because it is the more general and flexible of the two licenses. This is our way to say - we support you guys! diff --git a/server/services/events.py b/server/services/events.py index 23c2ecd..6da616f 100644 --- a/server/services/events.py +++ b/server/services/events.py @@ -355,7 +355,6 @@ def get_task_plots_v1_7(call, company_id, req_model): # last_iter_count=iters, # scroll_id=scroll_id) - # the following is a hack for Bosch, requested by Moshik # get last 10K events by iteration and group them by unique metric+variant, returning top events for combination result = event_bll.get_task_events( company_id, task_id, @@ -414,7 +413,6 @@ def get_debug_images_v1_7(call, company_id, req_model): # last_iter_count=iters, # scroll_id=scroll_id) - # the following is a hack for Bosch, requested by Moshik # get last 10K events by iteration and group them by unique metric+variant, returning top events for combination result = event_bll.get_task_events( company_id, task_id, diff --git a/webserver/static/styles/index.css b/webserver/static/styles/index.css index 7925c56..3d6fe58 100644 --- a/webserver/static/styles/index.css +++ b/webserver/static/styles/index.css @@ -30,6 +30,7 @@ body { } .mobile-warn { + font-size: 40px; display: none; } diff --git a/webserver/templates/login.html b/webserver/templates/login.html index 7d32ff6..1b93461 100644 --- a/webserver/templates/login.html +++ b/webserver/templates/login.html @@ -2,6 +2,10 @@ {% block head %}