MetisTuner.rst 1.99 KB
Newer Older
liuzhe-lz's avatar
liuzhe-lz committed
1
2
Metis Tuner
===========
3

4
`Metis <https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/>`__ offers several benefits over other tuning algorithms. While most tools only predict the optimal configuration, Metis gives you two outputs, a prediction for the optimal configuration and a suggestion for the next trial. No more guess work!
5

6
While most tools assume training datasets do not have noisy data, Metis actually tells you if you need to resample a particular hyper-parameter.
7

8
While most tools have problems of being exploitation-heavy, Metis' search strategy balances exploration, exploitation, and (optional) resampling.
9

10
Metis belongs to the class of sequential model-based optimization (SMBO) algorithms and it is based on the Bayesian Optimization framework. To model the parameter-vs-performance space, Metis uses both a Gaussian Process and GMM. Since each trial can impose a high time cost, Metis heavily trades inference computations with naive trials. At each iteration, Metis does two tasks:
11
12


13
14
* 
  It finds the global optimal point in the Gaussian Process space. This point represents the optimal configuration.
15

16
17
* 
  It identifies the next hyper-parameter candidate. This is achieved by inferring the potential information gain of exploration, exploitation, and resampling.
18

liuzhe-lz's avatar
liuzhe-lz committed
19
Note that the only acceptable types within the search space are ``quniform``, ``uniform``, ``randint``, and numerical ``choice``.
20
21

More details can be found in our `paper <https://www.microsoft.com/en-us/research/publication/metis-robustly-tuning-tail-latencies-cloud-systems/>`__.
ChrisZRen's avatar
ChrisZRen committed
22

23
24
Usage
-----
ChrisZRen's avatar
ChrisZRen committed
25
26
27
28

classArgs requirements
^^^^^^^^^^^^^^^^^^^^^^

liuzhe-lz's avatar
liuzhe-lz committed
29
* **optimize_mode** (*'maximize' or 'minimize', optional, default = 'maximize'*) - If 'maximize', the tuner will try to maximize metrics. If 'minimize', the tuner will try to minimize metrics.
ChrisZRen's avatar
ChrisZRen committed
30
31
32
33
34
35
36
37

Example Configuration
^^^^^^^^^^^^^^^^^^^^^

.. code-block:: yaml

   # config.yml
   tuner:
38
     name: MetisTuner
ChrisZRen's avatar
ChrisZRen committed
39
     classArgs:
40
       optimize_mode: maximize