google-deepmind/xmanager

A platform for managing machine learning experiments

What it solves

XManager simplifies the process of packaging, running, and tracking machine learning experiments. It removes the manual overhead of managing different execution environments (local vs. cloud) and the complexity of launching multiple trials with varying hyperparameters across different compute resources.

How it works

Users write Python "launch scripts" that define the experiment's lifecycle. The process follows a structured workflow:

  1. Experiment Context: An experiment is created to track metadata.
  2. Executable Specifications: The user defines what to run (e.g., a Python directory, a Bazel target, or a pre-built binary).
  3. Packaging: XManager packages the executable for a specific target environment (e.g., building a Docker image for Vertex AI).
  4. Job Definition: Users define hyperparameters and resource requirements (like GPU counts).
  5. Execution: Jobs or JobGroups (for gang scheduling) are added to the experiment and launched on a chosen executor, such as a local machine, Kubernetes, or Google Cloud's Vertex AI.

Who it’s for

Machine learning researchers and engineers who need to run large-scale experiments, perform hyperparameter sweeps, and seamlessly move workloads between local development and cloud infrastructure.

Highlights

  • Multi-Platform Support: Launch experiments locally, on Kubernetes, or via Google Cloud Platform (Vertex AI).
  • Flexible Packaging: Supports various executable types including Python containers, Bazel binaries, and pre-built images.
  • Hyperparameter Management: Easily define and launch multiple trials with different arguments and environment variables.
  • Gang Scheduling: Use JobGroup to ensure multiple related jobs are scheduled and descheduled simultaneously.

Related

  • Project
  • Project
  • Project
  • Project
  • Project