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
+45-4Lines changed: 45 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,32 +2,73 @@
2
2
3
3
A Python toolkit for [ML.ENERGY](https://ml.energy) datasets: loading raw results, filtering and analyzing runs, fitting models, and building data packages.
4
4
5
-
Actual data are stored in Hugging Face Hub: [ml-energy/benchmark-v3](https://huggingface.co/datasets/ml-energy/benchmark-v3). This repository contains code for working with the data, not the data itself.
5
+
We currently have [The ML.ENERGY Benchmark v3.0](https://github.com/ml-energy/benchmark) dataset, which includes LLM and diffusion inference runs on NVIDIA H100 and B200 GPUs.
6
+
Actual data are stored in Hugging Face Hub: [`ml-energy/benchmark-v3`](https://huggingface.co/datasets/ml-energy/benchmark-v3).
7
+
This repository contains the toolkit code, not the data itself.
8
+
9
+
## What the toolkit does
10
+
11
+
-**Load and filter benchmark runs** with typed, immutable collection classes (`LLMRuns`, `DiffusionRuns`).
12
+
-**Extract bulk data** — power timelines, ITL samples, output lengths — as DataFrames.
-[**The ML.ENERGY Leaderboard v3.0**](https://ml.energy/leaderboard): Benchmark results are loaded and compiled into the leaderboard web app data format.
55
+
-[**OpenG2G**](TODO): Datacenter-grid coordination simulation framework; loads benchmark data and fits models.
56
+
-[**The ML.ENERGY blog**](https://ml.energy/blog): Analysis scripts for blog posts.
57
+
28
58
## Documentation
29
59
30
60
See the full [documentation site](https://ml-energy.github.io/mlenergy-data/) for:
31
61
32
62
-[Usage guide](https://ml-energy.github.io/mlenergy-data/guide/) — progressive walkthrough from loading data to fitting models.
33
63
-[API reference](https://ml-energy.github.io/mlenergy-data/api/records/) — auto-generated from docstrings.
64
+
65
+
## Citation
66
+
67
+
```bibtex
68
+
@inproceedings{mlenergy-neuripsdb25,
69
+
title={The {ML.ENERGY Benchmark}: Toward Automated Inference Energy Measurement and Optimization},
70
+
author={Jae-Won Chung and Jeff J. Ma and Ruofan Wu and Jiachen Liu and Oh Jun Kweon and Yuxuan Xia and Zhiyu Wu and Mosharaf Chowdhury},
Copy file name to clipboardExpand all lines: data_publishing/DATASET_CARD.md
+31-9Lines changed: 31 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# The ML.ENERGY Benchmark V3 Dataset
2
2
3
-
This dataset contains benchmark results from [The ML.ENERGY Benchmark](https://github.com/ml-energy/benchmark).
3
+
This dataset contains benchmark results from [The ML.ENERGY Benchmark](https://github.com/ml-energy/benchmark), which includes LLM and diffusion inference runs on NVIDIA H100 and B200 GPUs.
4
4
You can use [The ML.ENERGY Leaderboard](https://ml.energy) to explore the benchmarking results.
5
5
6
6
## Subsets
@@ -10,7 +10,7 @@ You can use [The ML.ENERGY Leaderboard](https://ml.energy) to explore the benchm
10
10
11
11
## Usage
12
12
13
-
You can programmatically utilize the dataset using the ML.ENERGY data toolkit.
13
+
You can programmatically work with the dataset using the [ML.ENERGY data toolkit](https://github.com/ml-energy/data).
14
14
15
15
```bash
16
16
pip install mlenergy-data
@@ -20,14 +20,36 @@ pip install mlenergy-data
20
20
from mlenergy_data.records import LLMRuns, DiffusionRuns
21
21
22
22
# Load (fast, parquet only ~few MB)
23
-
llm= LLMRuns.from_hf()
23
+
runs= LLMRuns.from_hf()
24
24
25
-
#Filter and analyze (parquet only, no download)
26
-
for r in llm.task("gpqa").gpu("B200"):
27
-
print(r.nickname, r.energy_per_token_joules)
25
+
#Find the most energy-efficient model on GPQA
26
+
best =min(runs.task("gpqa"), key=lambdar: r.energy_per_token_joules)
27
+
print(f"{best.nickname}: {best.energy_per_token_joules:.3f} J/tok on {best.gpu_model}")
28
28
29
-
# Bulk data methods auto-download raw files as needed
Copy file name to clipboardExpand all lines: docs/guide.md
+56-21Lines changed: 56 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,19 @@
4
4
5
5
For full working examples of the toolkit in production, see:
6
6
7
-
-[ML.ENERGY Leaderboard data build](https://github.com/ml-energy/leaderboard/blob/main/scripts/build_data.py) -- builds the leaderboard JSON data from benchmark runs
8
-
-[ML.ENERGY Blog analysis scripts](https://github.com/ml-energy/data/blob/main/blog_analysis_scripts.py) -- generates figures for the ML.ENERGY blog
9
-
-[OpenG2G simulation data build](TODO) -- builds power traces, logistic fits, and latency fits for grid simulation
7
+
- ML.ENERGY Leaderboard data build
8
+
- Builds the leaderboard JSON data from benchmark runs
A "compiled data directory" is one built by `data_publishing/build_hf_data.py` (or downloaded from HF Hub). It contains parquet summary files under `runs/`, raw result files under `llm/` and `diffusion/`, and benchmark config files under `configs/`.
46
+
33
47
## Filtering
34
48
35
49
All filter methods return a new collection — chain freely:
These methods return pandas DataFrames for numerical analysis.
131
164
When loaded from HF Hub (`from_hf()`), they automatically download only the raw files needed for the current collection. The download scope is determined by your filters. HF Hub caches files locally, so repeated calls are instant.
132
165
166
+
To eagerly download all raw files upfront, use `prefetch()`:
167
+
168
+
```python
169
+
# Eagerly download all raw files for a filtered collection
170
+
runs = LLMRuns.from_hf().task("gpqa").prefetch()
171
+
power_tl = runs.timelines(metric="power.device_instant") # no download delay
Copy file name to clipboardExpand all lines: docs/index.md
+30-1Lines changed: 30 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
To aid in working with these datasets, we also provide a Python toolkit: `mlenergy-data`.
5
5
6
6
We currently have [The ML.ENERGY Benchmark v3.0](https://github.com/ml-energy/benchmark) dataset, which includes LLM and diffusion inference runs on NVIDIA H100 and B200 GPUs.
7
-
Actual data are currently stored in Hugging Face Hub: [`ml-energy/benchmark-v3`](https://huggingface.co/datasets/ml-energy/benchmark-v3).
7
+
Actual data are stored in Hugging Face Hub: [`ml-energy/benchmark-v3`](https://huggingface.co/datasets/ml-energy/benchmark-v3).
8
8
9
9
## What the toolkit does
10
10
@@ -29,6 +29,24 @@ runs = LLMRuns.from_hf()
29
29
# Find the most energy-efficient model on GPQA
30
30
best =min(runs.task("gpqa"), key=lambdar: r.energy_per_token_joules)
31
31
print(f"{best.nickname}: {best.energy_per_token_joules:.3f} J/tok on {best.gpu_model}")
0 commit comments