Skip to main content

A powerful tool designed to streamline the configuration, execution and management of Machine Learning experiments across various computing environments.

Project description

NeMo Run

[!IMPORTANT] NeMo Run is still in active development and this is a pre-release. The API is subject to change without notice while in pre-release. First official release will be 0.1.0 and will be included in NeMo FW 24.09 as well.

NeMo Run is a powerful tool designed to streamline the configuration, execution, and management of machine learning experiments across various computing environments. NeMo Run has three core responsibilities:

  1. Configuration
  2. Execution
  3. Management

To learn more, click on each link. This represents the typical order that NeMo Run users follow for setting up and launching experiments.

Why Use NeMo Run?

Please see this detailed guide for reasons to use NeMo Run.

Install NeMo Run

To install the project, use the following command:

pip install git+https://github.com/NVIDIA-NeMo/Run.git

Make sure you have pip installed and configured properly.

Get Started

To get started with NeMo Run, follow these three steps based on the core responsibilities mentioned above. For this example, we’ll showcase a pre-training example in Nemo 2.0 using Llama3.

  1. Configure your function:
from nemo.collections import llm
partial_func = llm.llama3_8b.pretrain_recipe(name="llama3-8b", ckpt_dir="/path/to/store/checkpoints", num_nodes=1, num_gpus_per_node=8)
  1. Define your Executor:
import nemo_run as run
# Local executor
local_executor = run.LocalExecutor()
  1. Run your experiment:
run.run(partial_func, executor=local_executor, name="llama3_8b_pretraining")

Design Philosophy and Inspiration

In building NeMo Run, we drew inspiration from and relied on the following primary libraries. We would like to extend our gratitude for their work.

Apart from these, we also build on other libraries. A full list of dependencies can be found in pyproject.toml.

NeMo Run was designed keeping the following principles in mind:

Pythonic

In NeMo Run, you can build and configure everything using Python, eliminating the need for multiple combinations of tools to manage your experiments. The only exception is when setting up the environment for remote execution, where we rely on Docker.

Modular

The decoupling of task and executor allows you to form different combinations of execution units with relative ease. You configure different remote environments once, and you can reuse it across a variety of tasks in a Pythonic way.

Opinionated but Flexible

NeMo Run is opinionated in some places, like storing of metadata information for experiments in a particular manner. However, it remains flexible enough to accommodate most user experiments.

Set Up Once and Scale Easily

While it may take some time initially for users to become familiar with NeMo Run concepts, the tool is designed to scale experimentation in a fluid and easy manner.

Tutorials

Hello world

The hello_world tutorial series provides a comprehensive introduction to NeMo Run, demonstrating its capabilities through a simple example. The tutorial covers:

  • Configuring Python functions using Partial and Config classes.
  • Executing configured functions locally and on remote clusters.
  • Visualizing configurations with graphviz.
  • Creating and managing experiments using run.Experiment.

You can find the tutorial series below:

Contribute to NeMo Run

Please see the contribution guide to contribute to NeMo Run.

FAQs

Please find a list of frequently asked questions here.

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

nemo_run-0.7.0.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nemo_run-0.7.0-py3-none-any.whl (243.3 kB view details)

Uploaded Python 3

File details

Details for the file nemo_run-0.7.0.tar.gz.

File metadata

  • Download URL: nemo_run-0.7.0.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for nemo_run-0.7.0.tar.gz
Algorithm Hash digest
SHA256 7176cde88194eb699483191af66536843e016227c40bf49384556057a4fe8bfd
MD5 f9a3c64a8ad75e4890c2c4a557b9764a
BLAKE2b-256 e25dec53d87a698ef9a9d294d0e779c4c9fc0ee373882ee000200d755d02d473

See more details on using hashes here.

File details

Details for the file nemo_run-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: nemo_run-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 243.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for nemo_run-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f1b86a5675178c6207f2f32fdf2de879801daa8d3e1cf867aa5180a787d3771a
MD5 7cae8e84924741bfa0e00f7918bbf061
BLAKE2b-256 c4e965352abfd75df6f77a6b16617a3cae102cbe62b74778ffe50edbabe36547

See more details on using hashes here.

Supported by

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