As a Java application, Metarank can be run locally either as a JAR-file or Docker container, there is no need for Kubernetes and AWS to start playing with it. Check out the installation guide for detailed setup instructions.
Metarank has multiple running modes:
import- import historical clickthroughs to the store
train- run traing the machine learning model using the imported data
serve- start the ranking inference API
standalone- which is a shortcut for
servejobs run together.
validate- a set of sanity checks on your configuration file and event dataset.
Metarank's standalone mode is made to simplify the initial onboarding on the system:
Standalone mode is useful for these cases:
- testing Metarank without deployment. With in-memory persistence it has zero service dependencies and is the easiest way to try it out.
- simple staging deployments on VM/on-prem hardware. With redis persistence it can handle typical cases with small/medium load.
Standalone mode has the following limitations:
- feedback ingestion and inference throughput are limited by a single node. Please use the Kubernetes deployment for a better experience.
- model training happens within the inference process, and is a memory hungry process, which may cause latency spikes and OOMs. To overcome this limitation, you can train the machine learning model externally and upload it to the same Redis instance.
$ java -jar metarank.jar standalone --data /path/to/events.json --config /path/to/config.yml
Another option is to run Metarank standalone mode from a docker container:
$ docker run -v /data/:<path to data dir> metarank/metarank:latest standalone --data /data/events.json --config /data/config.yml
The follwing options are used for the docker container:
-v /data:<path to data dir>to map a directory with input files and configuration into the container
During the startup process Metarank will:
- import your dataset and compute all historical event statistics useful for machine learning model training
- train the machine learning model you defined in the configuration file
- start the inference API for real-time personaization.
import and training process