Skip to main content

HFResourceScanner

PyPI - Version

Scan resources consumed during training using HFTrainer and break up consumption by category with almost ZERO overheads.

Works for all training approaches (such as full-fine tuning, Prompt Tuning, LORA) for HFTrainer and other trainers based on it, such as SFTTrainer. Limited support for FSDP (currently).

Measures and reports:

  1. GPU memory consumption broken up into 4 categories: paramters, Optimizer, Gradients and Activations.
  2. Time taken for a step broken up into 3 categories: forward, backward and optimizer update.
  3. Other time components: init time, checkpoint time etc
  4. Number and sizes of network primitive calls.

Install

From PyPi:

pip install HFResourceScanner

From source:

pip install .

Usage

2 line change to your existing code:

  1. Import the Scanner.
from HFResourceScanner import Scanner
  1. Create and add a Scanner object to the list of callbacks:
...
callbacks.append(Scanner())
...

In the default configuration, prints out data to stdout.

Configuring

You can further configure the Scanner to:

  1. Choose the step to instrument and scan at (we only scan at a single step). There is no reason to change from the default of 5.
  2. Output to stdout (the default), file or use a callback function to deal with the output. See examples provided in the examples/ folder.

Methodology

Uses a combination of the following items:

  1. HFTrainer Callbacks to measure memory and breakup at step boundary.
  2. Pytorch hook functions such as nn.Module Forward and optimizer.step function to measure memory at ideal locations.

Memory breakup

It is important to note that this scanning happens for a single step:

  1. At step start, setup hook functions.
  2. During the step, run the functions to take single point measurements.
  3. At the end of the step, correlate the data and cleaup the hook functions.

Alternatives

  1. Pytorch Profile: can give a complete breakup of stack traces and memory consumption. While this is much more exhaustive and useful for optimizing implementations, this may be overwhelming for casual users. Also, this approach can take non-trivial amount of time to compute memory allocations and is quite slow for larger models.

License

Apache 2.0

Metadata

Release files for HFResourceScanner 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HFResourceScanner 0.1.2
File Size Uploaded
hfresourcescanner-0.1.2.tar.gz 11.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HFResourceScanner 0.1.2
File Interpreter ABI Platform
HFResourceScanner-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 24.3 kB

Release files / hfresourcescanner-0.1.2.tar.gz

Download URL hfresourcescanner-0.1.2.tar.gz
Size 11.7 kB
Tags Source
SHA-256 checksum
How to use checksums
26e11abf1ba831eb3caf71e7b4b14b6ddd569ca09743d5c1edd0c53004fd8703
BLAKE2b-256 checksum
How to use checksums
daf9f85dfbdc43653c3cba19b7ec46ab0aba7baf5f10724a2284861fc64cf72c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / HFResourceScanner-0.1.2-py3-none-any.whl

Download URL HFResourceScanner-0.1.2-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a432059ff48ada80cd62a1320b92ffc106e8aaf3398aa4f33e399ad4154b8f93
BLAKE2b-256 checksum
How to use checksums
768170aeec24f506ea6c44f692dd556f323fd211b83cf3a67737428092288117
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page