[ 
https://issues.apache.org/jira/browse/SINGA-20?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

wangwei closed SINGA-20.
------------------------
    Resolution: Fixed

will add support for web interface in the future

> Web interface for launching training jobs
> -----------------------------------------
>
>                 Key: SINGA-20
>                 URL: https://issues.apache.org/jira/browse/SINGA-20
>             Project: Singa
>          Issue Type: New Feature
>            Reporter: wangwei
>            Assignee: Jinyang Gao
>
> Job Launching. Currently users have to set the model and cluster 
> configuration by writing the google protocol buffer files (e.g., model.conf 
> and cluster.conf). However it is not easy for beginning users as it requires 
> full understanding of all configuration fields. To make it easier, a web 
> interface can be provided, which assist users to configure the cluster and 
> model by providing hints and selections. For example, if a user wants to 
> train a MLP model, then we only need to show him/her the fields necessary for 
> layers of MLP model. 
> To implement this feature, we need to do 
> 1. write a daemon program to bridge SINGA system and the web interface. It 
> receives start request (i.e., start training) from web browsers and runs the 
> script (i.e., /bin/singa-run) to launch the training job. This program would 
> later be implemented to handle other requests like performance report which 
> is to visualize the training performance in real-time in the browsers.
> 2. decide the interface/format of communication message between the daemon 
> program and the web browser. To launch a training job, two configuration 
> files are necessary, i.e., cluster configuration and model configuration. 
> Hence the start request should provide the corresponding configurations. 
> Currently the configuration fields are defined using google protocol buffer 
> format (e.g., model.proto and cluster.proto). However, the web pages are 
> written in javascript which is more familiar with json format. Current 
> solution is to write the configuration definition in json format and convert 
> it into protocol buffer format using a simple script. The json format is like
> {code:title=Configure.json|borderStyle=solid}
> [
>    {
>       "type": "message",
>       "key": "ModelProto",
>       "value": 
>            [
>               { "id": 2,   "qualifier": "required",  "type": "string",   
> "key": "name",  "comment":"model name"} ,    
>               { "id": 3,    "qualifier": "repeated",   "type": "LayerProto",  
>  "key": "layer",    "comment":"layers" },
>               {}...
>           ]
>     },
>    { 
>       "type": "message",
>        "key": "LayerProto",
>        "value": 
>              [
>                 { "id": 0,   "qualifier": "optional",   "type": "int",   
> "key": "locationid",   "default": 0,   "comment":"location of the layer"},
>                { "id": 3,   "qualifier": "required",   "type": "LayerType",   
> "key": "type",  "selection": true, "comment":"location of the layer"},
>                {}...
>             ]
>     },
>     {
>       "type":"enum",
>       "key": "LayerType",
>       "value":
>          [
>            {"id": 2,   "key":"kInnerProduct" },
>           ...
>         ]
>     },
> ...
> ]
> {code}
> If the qualifier is "optional", then a default field must be provided. The 
> value of "selection" is the key of a enum object, which indicates the value 
> of that variable should be selected from the numeration list.
> The web browser parses this json format file to determine the content of the 
> web page, i.e., which configuration fields should be hidden or shown. The 
> webpage should update automatically upon user's input. For example, if the 
> user adds an inner product layer, then the configuration fields of that layer 
> should be expanded. Once the user submit the job, the web browser should send 
> all configurations to the daemon. The communication message is similar to the 
> above snippet except that a value field is added for each key field. If the 
> qualifier for one key is "repeated", then an array of values are added.
> The daemon program then converts the json code to the google protocol buffer 
> messages like those in model.conf and cluster.conf.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to