Skip to main content

A package for managing ML experiments over Discord in conjunction with WandB.

Project description

Adjutant

Adjutant is a package for managing ML experiments over Discord in conjunction with WandB.

Installation

pip install adjutant-discord

Discord bot creation

To allow adjutant to post to discord as a bot, first follow these instructions for creating a Discord bot and adding it to your Server. You then create an Adjutant object with your bot token.

Note: Be careful not to share your bot's token. Consider storing it in an environment variable or file that is not checked in to version control.

WandB setup

Adjutant is designed to work with WandB for ML experiment tracking. Create a WandB account at wandb.ai.

Wherever you plan to run Adjutant, make sure you are either logged in to your WandB account, or have an API key populated in the WANDB_API_KEY environment variable. More information is available in the WandB docs.

Adjutant commands

Once Adjutant is running and has connected to Discord (see the Basic Adjutant example below to get started), you can send it the following commands by posting in the chat.

Command Effect Example
$hello Get a response from the bot $hello
$experiment {hyperparams} Launch a new experiment with the given hyperparameters (must provide run_experiment_script in constructor) $experiment {"epochs": 10, "batch_size": 32}

Quickstart

For more advanced examples, please see examples, starting with the MNIST example.

Basic Adjutant

The most basic formulation of Adjutant provides updates on WandB experiments under the given project name. Your WandB entity name is your account name, and the project title is the name of the project you have created (or will create) to store experiments.

from adjutant import Adjutant
client = Adjutant('my-wandb-entity', 'my-wandb-project-title')
client.run('my-discord-token')

When you run the script, you will see your bot post to your Discord chat with information on the WandB runs it found for the project.

Adjutant with experiment launching

By providing a run_experiment_script constructor argument, Adjutant will be able to respond to user requests on Discord to run a new experiment. Adjutant will execute run_experiment_script in a subprocess so that it can still respond to new requests. run_experiment_script may also request another entity, e.g. Kubernetes, to initiate the experiment on its behalf rather than actually running the experiment itself.

First, here are the contents of run_experiment.sh, which takes a JSON-formatted string as its command line argument. Adjutant will pass this script the hyperparameters with which to run the experiment. In this script, train_model.py trains a new model with the supplied hyperparameters. For an example of what the training script might look like, see the MNIST example.

#!/bin/bash
python train_model.py "$1"

Now we can create a client that references run_experiment.sh.

from adjutant import Adjutant
client = Adjutant('my-wandb-entity',
                  'my-wandb-project-title',
                  run_experiment_script='run_experiment.sh')
client.run('my-discord-token')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adjutant-discord-0.0.10.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

adjutant_discord-0.0.10-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file adjutant-discord-0.0.10.tar.gz.

File metadata

  • Download URL: adjutant-discord-0.0.10.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for adjutant-discord-0.0.10.tar.gz
Algorithm Hash digest
SHA256 762aeab09d21a7273dccddb1cb230f90b56663d1c2311cf5decfbc2c5d29f2d6
MD5 aa8a889befabef6808156d39cb4b45f5
BLAKE2b-256 d5ff30b3e9689e1fe918748723e62852724c0b0c04ff32313f26bc4b0976ef43

See more details on using hashes here.

File details

Details for the file adjutant_discord-0.0.10-py3-none-any.whl.

File metadata

  • Download URL: adjutant_discord-0.0.10-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for adjutant_discord-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 740d2f6b5db99c04f512281f7607dec5cf7f9a3b64fc2fb3ac874a1d9f0d6784
MD5 1836e9873227852a92a46068cf3e2db4
BLAKE2b-256 00d19d96f84bb3ead609ec8e2fe30de7dbc3bf67179721939f9c27dcffc435f7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page