guildai / _guild-python-legacy

Legacy code for Guild's rewrite in Python
Apache License 2.0
2 stars 1 forks source link

Guild Python rewrite

This project intends to rewrite Guild AI in Python, replacing Erlang.

Building

Guild Python requires Bazel 0.5.4 or higher to build. See Installing Bazel for help with you system.

Clone Guild Python from GitHub:

$ git clone https://github.com/guildai/guild-python.git

Build Guild Python using the bazel command:

$ cd guild-python
$ bazel build guild

You may alternatively simply run make.

The initial Guild Python build will take some time as Bazel will download serveral dependencies, including TensorBoard. Subsequent builds will run faster.

If Guild Python builds successfully, run the check command with tests:

$ bazel-bin/guild/guild check --tests

You may alternatively run make check.

Note that tests are now a part of the Guild Python binary and will be available to run for end-users.

Installing from a build

To run the guild command on your system, you may do one of the following:

where $GUILD_PYTHON_REPO is the path to the cloned Guild Python repository.

The same rules apply to guild-lite. Note that you can effectively use the guild command for guild-lite using a guild alias equal to $GUILD_PYTHON_REPO/bazel-bin/guild/guild-lite.

What's working, what's not

Guild Python is still a volatile project and features may suddenly be added or break. We apologize for this instability and will work aggressively to stabilize the project. In the meantime, we are grateful for your patience! Please refer to CHANGES.md for updates.

Commands

Below is a list of Guild Python commands and their status:

Name Status
check working
evaluate working
prepare working
project working
query working
runs working
train working
view active development, BROKEN

Several Guild Erlang commands have either been renamed or replaced by new commands, or are not yet implemented in Guild Python. Refer to the table below for details.

Old command New command Status Feature parity / notes
check check implemented equivalent
delete-eval evals rm not implemented
delete-run runs rm implemented enhanced (see run help)
evaluate evaluate implemented equivalent
install install not implemented
list-attrs query attrs not implemented equivalent
list-evals evals not implemented enhanced
list-models project models implemented enhanced
list-runs runs implemented equivalent
package package not implemented
prepare prepare implemented equivalent
serve ??? not impemented may be dropped
status ??? not impemented may be renamed/replaced
train train implemented equivalent
uninstall uninstall not implemented
view view active development, BROKEN

View

View is under active development. We're currently re-integrating with TensorBoard, which is a significant refactor as TensorBoard has changed quite a bit since our last integration:

To simplify integration in the future, we're taking a big step in Guild Python:

While this step is disruptive, it will control both our UI dependencies and our use of TensorBoard. The result will be more stable builds and UI behavior and easier synchronization with changes made to TensorBoard.

Python 3

Guild Python now supports Python 3. If there's a bug Guild Python that occurs only under Python 3, we'll treat it with the same priority as a bug occurring under Python 2.