You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,17 +4,18 @@
4
4
5
5
A memory-first, lightning-fast, ready-to-use ML checkpointing library.
6
6
7
-
PyTorch DCP, Megatron-LM and NeMo 2.0 adapters are readily available for seamless integration, on top of our general core checkpointing library that can be used for custom integrations.
7
+
Adapters for PyTorch DCP, Megatron-LM and NeMo 2.0 are readily available for seamless integration.
8
+
They are built on top of the core checkpointing APIs, which can also be used directly for custom integrations.
8
9
9
-
If interested in direct integration support with another framework, please let us know by creating a [feature request](https://github.com/google/ml-flashpoint/issues/new?template=feature_request.md) or upvoting an existing one!
10
+
If interested in a native integration with another framework, please let us know by creating a [feature request](https://github.com/google/ml-flashpoint/issues/new?template=feature_request.md) or upvoting an [existing one](https://github.com/google/ml-flashpoint/issues?q=is%3Aissue%20state%3Aopen%20label%3Aenhancement)!
10
11
11
12
For learning more about using the library and its performance, check out the [user documentation](https://google.github.io/ml-flashpoint).
12
13
Below you will find development instructions for contributors.
13
14
14
15
## Installation
15
16
16
17
This library defines core dependencies, as well as additional optional dependencies for specific adapters, to avoid polluting consumers with unnecessary dependencies.
17
-
See the adapters installation commands for examples of the available adapters.
18
+
See the adapters installation commands below for examples of the available options, and the [`pyproject.toml`](./pyproject.toml) as the source of truth for all available adapters.
Copy file name to clipboardExpand all lines: docs/README.md
+18-8Lines changed: 18 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,25 +18,35 @@ The goal is to ultimately improve your ML runtime (total time and goodput), by a
18
18
1. Free up your long-term storage bandwidth for other use cases.
19
19
20
20
ML Flashpoint saves checkpoints to shared memory, to be able to recover when the node is not lost, and automatically replicates them asynchronously to peer(s) in the training cluster, to improve resilience during node losses.
21
-
Replication has not been observed to have any negative impact on ongoing training or overall job time.
21
+
Replication has not been observed to have any meaningful negative impact on ongoing training or overall job time.
22
22
See the [overview](overview.md) for more detail.
23
23
24
24
### Performance
25
25
26
-
We performed some tests on a [Vertex AI Training Cluster](https://docs.cloud.google.com/vertex-ai/docs/training/training-clusters/overview) with 4 [A3-Mega](https://docs.cloud.google.com/compute/docs/accelerator-optimized-machines#a3-mega-vms) nodes for Gemma 27B and Llama 70B pre-training over just 300 steps and observed the improvements listed below.
26
+
We observe meaningful improvements even in small-scale tests, spanning just 300 training steps with 4 [A3-Mega](https://docs.cloud.google.com/compute/docs/accelerator-optimized-machines#a3-mega-vms) nodes, for Gemma 27B and Llama 70B pre-training.
27
+
We executed such tests on a [Vertex AI Training Cluster](https://docs.cloud.google.com/vertex-ai/docs/training/training-clusters/overview) and obtained the speedups listed below.
27
28
These tests were conducted using ML Flashpoint _alongside_ NeMo's recommended checkpointing (as you would in production), where NeMo's default checkpointing used a 7-10 TB [Filestore](https://cloud.google.com/filestore) instance.
28
29
29
-
Observations when comparing the hybrid of ML Flashpoint (every 5 steps) and NeMo checkpointing (every 50 steps) to just NeMo's regular checkpointing (every 10 steps):
30
+
[¶](#perf-summary){ #perf-summary }
31
+
When comparing
32
+
33
+
1. the hybrid of ML Flashpoint (every 5 steps) and NeMo checkpointing (every 50 steps), to
34
+
1. NeMo's regular checkpointing (every 10 steps - so half as often)
35
+
36
+
the hybrid approach resulted in:
30
37
31
38
* Data write times that are up to 20-30x faster, with little to no optimization.
32
39
This is expected to further improve with additional optimizations.
33
40
* Total checkpoint recovery times that are ~7-10x faster (includes the time it takes to do checkpoint detection, cross-node coordination, replication, read into model state and be ready to resume training).
34
-
* For _async_ checkpointing: improvements averaging **3-6%** for _overall job time_, with peaks of **5-10%** improvements.
35
-
These improvements only account for checkpoint save efficiency, representing a "worst case" in the sense that checkpointing purely adds overhead and isn't actually used.
36
-
Any job interruptions will also benefit from the improved checkpoint recovery times.
41
+
* For _async_ checkpointing: improvements averaging **3-6%** for _overall job time_, and reaching **5-10%** when NeMo checkpointing is deferred to the end (300th step) instead of being done every 50 steps.
42
+
These improvements only account for checkpoint _save_ efficiency, representing a "lower bound" value as it doesn't account for the speedups in _recovery_ time.
43
+
Any job interruptions would also benefit from ML Flashpoint's recovery performance gains.
44
+
45
+
!!! info
37
46
38
-
While [ML runtime goodput](https://cloud.google.com/blog/products/ai-machine-learning/goodput-metric-as-measure-of-ml-productivity) is important, we focus on overall job time as an end-to-end metric, as it is simpler and allows for straightforward _total_ cost comparisons.
39
-
Runtime goodput alone can be misleading if improvements to unproductive time actually worsen productive (active training) time, and the change in total evaluation period (job time) is not taken into account.
47
+
While [ML runtime goodput](https://cloud.google.com/blog/products/ai-machine-learning/goodput-metric-as-measure-of-ml-productivity) is important, we focus on overall job time as an end-to-end metric, as it is simpler and allows for straightforward _total_ cost comparisons.
48
+
49
+
Runtime goodput alone can be misleading if improvements to unproductive (non-training) time actually worsen productive (active training) time, and the change in total evaluation period (job time) is not taken into account.
0 commit comments