Quick Start (Model Developers)¶
As a Model Developer, you can manage models and manage train & inference jobs on Rafiki.
This quickstart only highlights the key methods available to manage models.
To learn about how to manage train & inference jobs, go to Quick Start (Application Developers).
To learn more about what you can do on Rafiki, explore the methods of rafiki.client.Client.
We assume that you have access to a running instance of Rafiki Admin at <rafiki_host>:<admin_port>
and Rafiki Admin Web at <rafiki_host>:<admin_web_port>.
Installing the client¶
Install Python 3.6 such that the
pythonandpippoint to the correct installation of Python (see Installing Python)Clone the project at https://github.com/nginyc/rafiki (e.g. with Git)
Within the project’s root folder, install Rafiki Client’s dependencies by running:
pip install -r ./rafiki/requirements.txt
Initializing the client¶
Example:
from rafiki.client import Client client = Client(admin_host='localhost', admin_port=3000) client.login(email='model_developer@rafiki', password='rafiki')
See also
Creating models¶
To create a model, you will need to submit a model class that conforms to the specification
by rafiki.model.BaseModel, written in a single Python file.
The model’s implementation should conform to a specific task (see Supported Tasks).
Refer to the parameters of rafiki.client.Client.create_model() for configuring how your model runs on Rafiki,
and refer to Creating Models to understand more about how to write & test models for Rafiki.
Examples:
client.create_model( name='TfFeedForward', task='IMAGE_CLASSIFICATION', model_file_path='examples/models/image_classification/TfFeedForward.py', model_class='TfFeedForward', dependencies={ 'tensorflow': '1.12.0' } ) client.create_model( name='SkDt', task='IMAGE_CLASSIFICATION', model_file_path='examples/models/image_classification/SkDt.py', model_class='SkDt', dependencies={ 'scikit-learn': '0.20.0' } )
See also
Listing available models by task¶
Example:
client.get_available_models(task='IMAGE_CLASSIFICATION')Output:
[{'access_right': 'PRIVATE', 'datetime_created': 'Mon, 17 Dec 2018 07:06:03 GMT', 'dependencies': {'tensorflow': '1.12.0'}, 'id': '45df3f34-53d7-4fb8-a7c2-55391ea10030', 'name': 'TfFeedForward', 'task': 'IMAGE_CLASSIFICATION', 'user_id': 'fb5671f1-c673-40e7-b53a-9208eb1ccc50'}, {'access_right': 'PRIVATE', 'datetime_created': 'Mon, 17 Dec 2018 07:06:03 GMT', 'dependencies': {'scikit-learn': '0.20.0'}, 'id': 'd0ea96ce-478b-4167-8a84-eb36ae631235', 'name': 'SkDt', 'task': 'IMAGE_CLASSIFICATION', 'user_id': 'fb5671f1-c673-40e7-b53a-9208eb1ccc50'}]