A lightweight library for adding fault tolerance to large-scale PyTorch distributed training workloads.
Project description
torchsnapshot
This library is currently in Alpha and currently does not have a stable release. The API may change and may not be backward compatible. If you have suggestions for improvements, please open a GitHub issue. We'd love to hear your feedback.
A light-weight library for adding fault tolerance to large-scale PyTorch distributed training workloads.
Install
Requires Python >= 3.7 and PyTorch >= 1.11
From pip:
pip install --pre torchsnapshot-nightly
From source:
git clone https://github.com/facebookresearch/torchsnapshot
cd torchsnapshot
pip install -r requirements.txt
python setup.py install
Concepts
- Stateful object - an object that whose state can be obtained via
.state_dict()
and restored via.load_state_dict()
. Most PyTorch components (e.g.Module
,Optimizer
,LRScheduler
) already implement this protocol. - App state - the application state described using multiple stateful objects.
- Snapshot - the persisted app state.
Basic Usage
Describing the application state with multiple stateful objects:
app_state = {"model": model, "optimizer": optimizer}
Taking a snapshot of the application state:
from torchsnapshot import Snapshot
# File System
snapshot = Snapshot.take(path="/foo/bar/baz", app_state=app_state)
# S3
snapshot = Snapshot.take(path="s3://foo/bar", app_state=app_state)
# Google Cloud Storage
snapshot = Snapshot.take(path="gcs://foo/bar", app_state=app_state)
Referencing an existing snapshot:
snapshot = Snapshot(path="foo/bar/baz")
Restoring the application state from a snapshot:
snapshot.restore(app_state=app_state)
See the example directory for more examples.
License
torchsnapshot is BSD licensed, as found in the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file torchsnapshot-nightly-2022.8.20.tar.gz
.
File metadata
- Download URL: torchsnapshot-nightly-2022.8.20.tar.gz
- Upload date:
- Size: 38.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce05cb4c5f2095298caec9682173f87885c20752a65d8aa6f06cba85f2dbf8e7 |
|
MD5 | 8cfddda9b8025113a3f1cfb53cfac8ac |
|
BLAKE2b-256 | 455bfc829ff543af607beb751e64fa4b14e86d07057e12a66228da7ca0ece720 |
Provenance
File details
Details for the file torchsnapshot_nightly-2022.8.20-py3-none-any.whl
.
File metadata
- Download URL: torchsnapshot_nightly-2022.8.20-py3-none-any.whl
- Upload date:
- Size: 49.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e8d38055da8db4ddf5fb910d03e96aa87b02d93653b1fae0d72ee5efcc2f451 |
|
MD5 | 339cae9f10dfa15555f1fe7ab4cac5f7 |
|
BLAKE2b-256 | dbe1b9d38ed6ecb8c19da490d9afe4b117fd5a8537c89244d6058567f27af7b7 |