Yelp / MOE

A global, black box optimization engine for real world metric optimization.
Other
1.3k stars 139 forks source link

Create an own Python package for the REST interface #461

Open FlorianWilhelm opened 8 years ago

FlorianWilhelm commented 8 years ago

Currently the installation of MOE is quite hard for beginners. Although a docker image is provided which makes is easy to get it running, in order to use the provided Python REST interface one still has to install MOE somehow locally or start messing around with the PYTHONPATH variable which is just nasty. My suggestion would be to split the whole Python REST interface into an own library called moe_api for instance. The installation for dummies would then be as easy as running the provided docker image and typing pip install moe_api in a virtuelenv or conda environment. Since moe_api would be plain Python code there is nothing to compile and even a port of that client to Python 3 would be so much easier. During this cleanup one could surely simplify the current interface.

mulyoved commented 7 years ago

Forked MOE and striped some code so now have the REST client with only minimal dependencies and no C++ code

Only dependancies are:

https://github.com/mulyoved/clientMOE

It is only quick and totally dirty hack for now

FlorianWilhelm commented 7 years ago

@mulyoved Yes, great! Looking forward to use it. Will you upload a package to PyPI?

mulyoved commented 7 years ago

published as PyPI package

pip install clientMOE

FlorianWilhelm commented 7 years ago

@mulyoved Nice, just installed it with pip! Thanks a bunch! But what about a cooler name? Maybe SCHMOE, the Small & Concise Helper for MOE ;-) At least the package name itself which is moe right now should be renamed so that there is no ambiguity with MOE itself if anyone installs both packages.

RokoMijic commented 7 years ago

My understanding is that clientMOE requires python 2.7. What are the barriers to making it python 3 compatible?

RokoMijic commented 7 years ago

I have forked this and done a quick-and-dirty conversion to python3 (3.5.2).

https://github.com/RokoMijic/clientMOE

Due to @mulyoved 's code not including the CPP wrappers, a number of tests simply had to be deleted since they relied on that code.

There are 91 remaining tests which all pass in python 3.5.2.