From 4b38b455e2420faa28a24d4baa85af52732c9a23 Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Wed, 22 Apr 2026 11:49:34 +0200 Subject: [PATCH 1/8] add pruning_demo (Puzzletron and Minitron guide) in Model-Optimizer/examples/ with README and notebooks Signed-off-by: Alexandre Chidiac --- examples/pruning_demo/00_prerequisites.ipynb | 195 +++++ examples/pruning_demo/README.md | 685 ++++++++++++++++++ .../advanced_compression_experiments.md | 174 +++++ .../all_curves_throughput_vs_latency.png | Bin 0 -> 194193 bytes examples/pruning_demo/distillation_curves.png | Bin 0 -> 118556 bytes .../pruning_demo/distillation_loss_7B.png | Bin 0 -> 117629 bytes examples/pruning_demo/memory_sweep.png | Bin 0 -> 107728 bytes .../pruning_demo/memory_sweep_combined.png | Bin 0 -> 158715 bytes .../pruning_demo/scenario1_minitron.ipynb | 274 +++++++ .../pruning_demo/scenario1_puzzletron.ipynb | 282 +++++++ .../pruning_demo/scenario2_minitron.ipynb | 239 ++++++ .../pruning_demo/scenario2_puzzletron.ipynb | 491 +++++++++++++ examples/pruning_demo/summary_chart.png | Bin 0 -> 87846 bytes 13 files changed, 2340 insertions(+) create mode 100644 examples/pruning_demo/00_prerequisites.ipynb create mode 100644 examples/pruning_demo/README.md create mode 100644 examples/pruning_demo/advanced_compression_experiments.md create mode 100644 examples/pruning_demo/all_curves_throughput_vs_latency.png create mode 100644 examples/pruning_demo/distillation_curves.png create mode 100644 examples/pruning_demo/distillation_loss_7B.png create mode 100644 examples/pruning_demo/memory_sweep.png create mode 100644 examples/pruning_demo/memory_sweep_combined.png create mode 100644 examples/pruning_demo/scenario1_minitron.ipynb create mode 100644 examples/pruning_demo/scenario1_puzzletron.ipynb create mode 100644 examples/pruning_demo/scenario2_minitron.ipynb create mode 100644 examples/pruning_demo/scenario2_puzzletron.ipynb create mode 100644 examples/pruning_demo/summary_chart.png diff --git a/examples/pruning_demo/00_prerequisites.ipynb b/examples/pruning_demo/00_prerequisites.ipynb new file mode 100644 index 00000000000..cca8e92fbeb --- /dev/null +++ b/examples/pruning_demo/00_prerequisites.ipynb @@ -0,0 +1,195 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27446984", + "metadata": {}, + "source": [ + "# Prerequisites: Data Preparation & Baseline Evaluation (~15 min on 2x H200)\n", + "\n", + "This notebook has two goals:\n", + "1. **Prepare the distillation dataset** — download WikiText-103 and tokenize it into the binary format expected by Megatron-Bridge. This dataset is used during the distillation step (after pruning) in all scenario notebooks.\n", + "2. **Establish the teacher baseline** — evaluate the original Qwen3-8B on MMLU before any compression.\n", + "\n", + "> **Why prepare the dataset before compression?** The distillation step (which comes *after* pruning) requires a pre-tokenized dataset in Megatron binary format. Preparing it upfront avoids interrupting the compression pipeline and ensures a consistent dataset across all scenarios.\n", + "\n", + "> **Note on calibration datasets:** Pruning also requires calibration data to score the importance of each component — the model runs forward passes on a small dataset to measure how much each neuron, head, or layer contributes to the output. This calibration data (we use `nvidia/Nemotron-Post-Training-Dataset-v2`) is handled separately in each scenario notebook. Minitron downloads it automatically under the hood, while Puzzletron requires an explicit preparation step. See the respective notebooks (`scenario1_minitron.ipynb`, `scenario2_puzzletron.ipynb`, etc.) for details.\n", + "\n", + "**Prerequisites:** Run this notebook from inside the NeMo container with the base model already downloaded at `/workspace/models/Qwen3-8B` (see the guide's Prerequisites section)." + ] + }, + { + "cell_type": "markdown", + "id": "b25245c6", + "metadata": {}, + "source": [ + "## 0. Install ModelOpt from the cloned repository\n", + "\n", + "Replace the container's pre-installed ModelOpt with the version from the cloned repository (which includes the Puzzletron and Minitron features used in this guide)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ac537de", + "metadata": {}, + "outputs": [], + "source": [ + "!rm -rf /opt/venv/lib/python3.12/site-packages/modelopt\n", + "!cp -r /workspace/Model-Optimizer/modelopt /opt/venv/lib/python3.12/site-packages/modelopt\n", + "!mkdir -p /workspace/datasets" + ] + }, + { + "cell_type": "markdown", + "id": "ea318822", + "metadata": {}, + "source": [ + "## 1. Download distillation dataset\n", + "\n", + "For distillation, we use WikiText-103 — a small, generic language modeling dataset. We download it and save it as JSONL, which is the input format expected by the Megatron tokenizer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22112d26", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import os\n", + "from datasets import load_dataset\n", + "\n", + "DATA_PATH = '/workspace/datasets/wikitext-103-v1'\n", + "os.makedirs(DATA_PATH, exist_ok=True)\n", + "\n", + "dataset = load_dataset('wikitext', 'wikitext-103-v1', split='train')\n", + "\n", + "with open(f'{DATA_PATH}/wikitext-train.jsonl', 'w') as file:\n", + " file.writelines(json.dumps(item) + '\\n' for item in dataset)\n", + "\n", + "print(f'Saved {len(dataset)} samples to {DATA_PATH}/wikitext-train.jsonl')" + ] + }, + { + "cell_type": "markdown", + "id": "143149a8", + "metadata": {}, + "source": [ + "## 2. Tokenize for Megatron\n", + "\n", + "Megatron-Bridge requires data in a pre-tokenized binary format (`.bin` + `.idx` index file) rather than raw text. This format allows fast random access during training without re-tokenizing on the fly.\n", + "\n", + "This step runs the Qwen3-8B tokenizer over the WikiText-103 JSONL and writes the output in the Megatron binary format expected by the distillation scripts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ddd2e70b", + "metadata": {}, + "outputs": [], + "source": [ + "from modelopt.torch.utils.plugins import megatron_preprocess_data\n", + "\n", + "megatron_preprocess_data(\n", + " jsonl_paths='/workspace/datasets/wikitext-103-v1/wikitext-train.jsonl',\n", + " output_dir='/workspace/datasets/wikitext-103-v1',\n", + " tokenizer_name_or_path='/workspace/models/Qwen3-8B',\n", + " json_keys=['text'],\n", + " workers=32,\n", + " log_interval=100000,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "79027a32", + "metadata": {}, + "source": [ + "## 3. Verify\n", + "\n", + "Check that all expected files are in place." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "66442d5c", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "distill_path = '/workspace/datasets/wikitext-103-v1'\n", + "expected_files = ['wikitext-train.jsonl', 'wikitext-train_text.bin', 'wikitext-train_text.idx']\n", + "\n", + "print(f'Distillation dataset: {distill_path}')\n", + "for f in expected_files:\n", + " full = os.path.join(distill_path, f)\n", + " exists = os.path.isfile(full)\n", + " size = os.path.getsize(full) / (1024**2) if exists else 0\n", + " print(f' {f}: {\"OK\" if exists else \"MISSING\"} ({size:.1f} MB)')\n", + "\n", + "print()\n", + "print('Data preparation complete. You can now proceed to the scenario notebooks.')" + ] + }, + { + "cell_type": "markdown", + "id": "ynlx6sgkqr", + "metadata": {}, + "source": [ + "## 4. Evaluate teacher model (baseline)\n", + "\n", + "Before compressing, we establish the baseline MMLU score for the original Qwen3-8B. Results in the guide are expressed as a percentage of this number.\n", + "\n", + "We use [`lm-eval`](https://github.com/EleutherAI/lm-evaluation-harness) — a standard open-source evaluation harness — to run the MMLU benchmark. MMLU (Massive Multitask Language Understanding) covers 57 subjects across STEM, humanities, and social sciences, using 4-choice questions. The 5-shot setting provides 5 in-context examples per question, which is the standard configuration for comparing LLMs on this benchmark." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "zzansswg3zq", + "metadata": {}, + "outputs": [], + "source": [ + "!lm_eval --model hf \\\n", + " --model_args pretrained=/workspace/models/Qwen3-8B,dtype=bfloat16 \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "id": "281mvurl3op", + "metadata": {}, + "source": [ + "**Expected result:** MMLU (5-shot) = **0.7493**. This is the teacher baseline used throughout the guide." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/pruning_demo/README.md b/examples/pruning_demo/README.md new file mode 100644 index 00000000000..92dec8d4741 --- /dev/null +++ b/examples/pruning_demo/README.md @@ -0,0 +1,685 @@ +# How to Reduce Your LLM Size and Efficiency with NVIDIA Model-Optimizer: A Pruning & Distillation Guide + +## Table of Contents + +1.[ Introduction](#1-introduction) + +[Part I — Setup & Experiments](#part-i--setup--experiments) + +2. [Prerequisites](#2-prerequisites) +3. [Scenario 1: Quick & Reliable Compression](#3-scenario-1-quick--reliable-compression) +4. [Scenario 2: Hardware-Constrained Compression](#4-scenario-2-hardware-constrained-compression) + +[Part II — Results, Analysis & Insights](#part-ii--results-analysis--insights) + +5. [Head-to-Head: When Does Each Method Win?](#5-head-to-head-when-does-each-method-win) +6. [Distillation: An Impactful Step](#6-distillation-an-impactful-step) +7. [Inference Performance](#7-inference-performance) +8. [Limitations & Practical Tips](#8-limitations--practical-tips) +9. [Open Questions](#9-open-questions) + +10.[ References](#10-references) + +--- + +## 1. Introduction + +As LLMs are deployed across an ever-wider range of platforms — from cloud clusters to edge devices — the ability to produce smaller, faster models from existing ones becomes essential. +**Structural compression** (removing parameters from the model itself) is one of the most effective levers available to achieve this. + +This guide walks you through two concrete scenarios for shrinking an LLM using [NVIDIA Model-Optimizer](https://github.com/NVIDIA/Model-Optimizer) (ModelOpt), each using a different compression method. + +Throughout this guide, we use [**Qwen3-8B**](https://huggingface.co/Qwen/Qwen3-8B) as our base model — a dense, Transformer-based, decoder-only LLM with 8B parameters and 36 layers. All compressed variants are evaluated with [**MMLU**](https://arxiv.org/abs/2009.03300) **(5-shot)**. Companion Jupyter notebooks are provided so you can reproduce every result on this model end-to-end. + +> **MMLU (Massive Multitask Language Understanding)** is a benchmark covering 57 subjects across STEM, humanities, social sciences, and more. Each question is a 4-choice multiple choice problem, giving a random baseline of 25%. The 5-shot variant provides 5 in-context examples before each question. + +| | Scenario 1 | Scenario 2 | +|---|---|---| +| **Goal** | Make my general-purpose model smaller and faster, quickly and reliably | Fit a strict hardware memory budget | +| **Usecases** | Create a smaller version of the same model architecture to form a consistent family | Create a single, highly optimized deployment model that fits specific hardware budget | +| **Compression** | Light/Moderate (10–15% parameter reduction) | Aggressive (>30% memory reduction) | +| **Method** | Homogeneous Pruning ([Minitron](https://arxiv.org/abs/2408.11796)) | Heterogeneous NAS-based Pruning ([Puzzletron](https://arxiv.org/html/2411.19146v3)) | +| **Complexity** | Low — Importance-based ranking, uniform pruning | High — Fine-grained NAS search + MIP optimization | +| **Output** | Homogeneous (all Transformer blocks have the same structure) | Heterogeneous architecture (variable layer widths) | + +Both paths are followed by **knowledge distillation**, which recovers accuracy lost during pruning. In our Qwen3-8B experiments, we show that significant recovery is possible with as few as 100 training iterations on a small dataset, though actual recovery will vary by model and compression level. + +The overall pipeline is the same for both scenarios — only the compression step differs: + +```mermaid +flowchart LR + classDef model fill:#D5E8D4,stroke:#82B366,color:#000 + classDef dataprep fill:#DAE8FC,stroke:#6C8EBF,color:#000 + classDef compress fill:#FFE6CC,stroke:#D6B656,color:#000 + classDef eval fill:#E1D5E7,stroke:#9673A6,color:#000 + classDef distill fill:#F8CECC,stroke:#B85450,color:#000 + + A["Baseline Model
(Qwen3-8B)"]:::model --> EVAL0["Evaluation
(baseline)"]:::eval + A --> B["Distillation Data Prep
WikiText-103"]:::dataprep + A --> C{"Compression
Method"}:::compress + C --> D["Minitron
Homogeneous pruning
(Calibration Data Prep under the hood)"]:::compress + C --> CAL["Calibration Data Prep
Nemotron-Post-Training-v2"]:::dataprep --> E["Puzzletron
Heterogeneous NAS"]:::compress + D --> F["Evaluation
(pruned)"]:::eval + E --> F + F --> G["Knowledge Distillation
Qwen3-8B -> student"]:::distill + B --> G + G --> H["Evaluation
(distilled)"]:::eval +``` + +### What this guide covers + +- **Pruning**: structurally removing neurons, attention heads, or entire layers to produce a smaller model. +- **Distillation**: transferring knowledge from the original (teacher) model to the pruned (student) model to recover accuracy lost during pruning. + +### What this guide does NOT cover + +- **Quantization**: reducing numerical precision (e.g. FP16 → INT8). +- **Sparsity**: zeroing out weights while keeping the architecture. +- **MoE and hybrid architectures**: this guide focuses on dense Transformer models. Compression of Mixture-of-Experts (MoE) and hybrid architectures will be covered in a future guide. + +> **Note:** Pruning and quantization are complementary. After following this guide, you can further compress your pruned model with quantization for additional deployment gains. + +### The two methods at a glance + +**Minitron is a special case of Puzzletron**: any architecture Minitron can produce, Puzzletron can also find. Both follow the same pipeline (find a smaller architecture, then recover accuracy via distillation); they score the components of each Transformer layer (neurons, attention heads, FFN widths) and remove the ones that contribute least to the model's output. What distinguishes them is how fine-grained that search is. + +- **Minitron** applies *homogeneous pruning*: the same pruning decision is applied across all layers simultaneously. The compression target is a **parameter count** (e.g. "reduce to 7B"). The result is a standard, smaller model with the same architecture type as the original. Fast and simple. + +- **Puzzletron** applies *heterogeneous pruning* via Neural Architecture Search (NAS): it evaluates multiple candidate configurations for each layer independently (different FFN widths, optional attention removal), then uses Mixed-Integer Programming (MIP) to find the optimal per-layer combination under a given resource constraint (e.g. a **memory budget**). The result is a model where each layer can have a different structure, tailored to a specific hardware budget. More powerful, but slower. + +Puzzletron's per-layer search space is much broader than Minitron's. The trade-off is complexity: Minitron is the right default for moderate, predictable, general-purpose compression; Puzzletron becomes necessary when you need to maximize accuracy under a hard hardware constraint. + +### How to read this guide + +- **"I need a smaller and faster general-purpose model — quickly and reliably"** → go to [Scenario 1: Quick & Reliable Compression (Section 3)](#3-scenario-1-quick--reliable-compression). +- **"I must fit a strict memory budget"** → go to [Scenario 2: Hardware-Constrained Compression (Section 4)](#4-scenario-2-hardware-constrained-compression). +- **"Which method should I use?"** → read end-to-end. Section 5 compares both methods head-to-head. + +**Guide organization:** This guide is split into two parts. **Part I — Setup & Experiments** (Sections 2–4) covers the technicalities needed to reproduce the experiments: environment setup and step-by-step walkthroughs for each scenario. **Part II — Results, Analysis & Insights** (Sections 5–9) focuses on what those experiments reveal: a head-to-head comparison, a deep dive into distillation, inference benchmarks, practical tips and limitations, and open questions for future work. + +> **Note on reproducibility:** The pruning frameworks and scoring mechanisms used by Minitron and Puzzletron are under active development. As ModelOpt evolves, exact evaluation numbers may differ from one release to another. The trends and comparative insights presented in this guide (which method wins in which regime, how distillation behaves, and the accuracy-compression trade-offs) are expected to remain consistent. + +--- + + +# Part I — Setup & Experiments + +--- + +## 2. Prerequisites + +### Hardware + +All experiments in this guide were run on **2x H200 GPUs**. This can be adapted to different GPU counts and types depending on your setup. Adjust tensor/pipeline parallelism and batch size accordingly. + +> **Architecture requirement:** The NeMo container and ModelOpt scripts used in this guide require an **x86-64 (AMD64)** host. + +### Container + +> **Setup source of truth:** ModelOpt evolves quickly. The instructions below reflect the setup used at the time this guide was written and are provided as a working example. For the most up-to-date container version and installation steps, refer to: +> [puzzletron/mbridge_distillation/README.md](https://github.com/NVIDIA/Model-Optimizer/blob/feature/puzzletron/examples/puzzletron/mbridge_distillation/README.md) + +We use the [NVIDIA NeMo Framework Docker container (26.02)](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo?version=26.02.00), which includes all the libraries needed pre-installed (including [Megatron-Bridge](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/megatron_bridge/README.md) — NVIDIA's library that bridges HuggingFace models with the Megatron-LM training framework, enabling efficient multi-GPU distillation). + +You need [Docker](https://docs.docker.com/get-docker/) and the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) to enable GPU access inside containers. + +```bash +docker run \ + --gpus all \ + --shm-size=16GB \ + --net=host \ + --ulimit memlock=-1 \ + --rm -it \ + -w /workspace \ + nvcr.io/nvidia/nemo:26.02 bash +``` + +### Clone ModelOpt + +Clone the ModelOpt repository to access examples and scripts: + +```bash +git clone https://github.com/NVIDIA/Model-Optimizer.git /workspace/Model-Optimizer +cd /workspace/Model-Optimizer +``` + +### Evaluation setup + +Inside the container, install `lm-eval` for benchmark evaluation: + +```bash +rm -rf /opt/venv/lib/python3.12/site-packages/lm_eval +pip install lm-eval==0.4.8 +``` + +### Base model + +We use [Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) as our base model throughout this guide. It is a dense, decoder-only Transformer with the following architecture: + +| Layers | Hidden size | FFN intermediate size | Attention heads (Q) | KV heads (GQA) | Parameters | +|---|---|---|---|---|---| +| 36 | 4096 | 12288 | 32 | 8 | ~8B | + +Each Transformer block has two components, both of which are targeted by the compression methods in this guide: + +- **Attention (GQA — Grouped Query Attention):** Computes contextual relationships between tokens. Qwen3-8B uses 8 shared KV heads for 32 query heads, which reduces the KV cache. Puzzletron can remove attention entirely from selected layers, making it the primary lever for memory reduction. +- **FFN (Feed-Forward Network):** A per-token MLP applied after attention. The intermediate size (12288) controls its capacity. Puzzletron can reduce this per layer; Minitron reduces it uniformly across all layers. + +Authenticate with HuggingFace and download Qwen3-8B: + +```bash +hf auth login --token +hf download Qwen/Qwen3-8B --local-dir /workspace/models/Qwen3-8B +``` + +### Companion notebooks + +| Notebook | Description | Runtime (2x H200) | +|---|---|---| +| `00_prerequisites.ipynb` | Prepare the data + Baseline evaluation | ~15 min | +| `scenario1_minitron.ipynb` | Scenario 1 — Minitron | ~1h45 | +| `scenario1_puzzletron.ipynb` | Scenario 1 — Puzzletron | ~6h (on first Puzzletron run) | +| `scenario2_minitron.ipynb` | Scenario 2 — Minitron | ~45 min | +| `scenario2_puzzletron.ipynb` | Scenario 2 — Puzzletron | ~6h15 (on first Puzzletron run) | + +From within the container, copy the notebooks to your local workspace: + +```bash +cp -r /workspace/Model-Optimizer/examples/pruning_demo/* /workspace +``` + +If this doesn't work, upload the notebooks manually in Jupyter after launching it. + +Finally, start Jupyter Lab: + +```bash +cd /workspace +pip install --upgrade ipywidgets notebook +jupyter lab --ip 0.0.0.0 --port=8888 --allow-root +``` + +--- + +## 3. Scenario 1: Quick & Reliable Compression + +> *"I need a smaller and faster general-purpose model — quickly and reliably."* + +You have a working LLM and want to reduce its size by 10–15% (in number of parameters) for general-purpose tasks. You need a straightforward pipeline with predictable results and a standard, homogeneous model as output. You don't want to invest time experimenting and familiarizing with a complex pipeline or dealing with heterogeneous model formats. + +**Minitron** is the right tool for this job. + +### 3.1 When to choose this path + +- Your compression target is **moderate** (10–15% reduction in number of parameters). +- You want a **simple, fast pipeline**: prune → distill → deploy. +- You need a **standard/homogeneous model** as output (same architecture type, just smaller). +- You value **predictability**: Minitron's importance-based ranking produces consistent results. +- You are not targeting a specific downstream task (**general-purpose** compression). + +**Examples:** +- You're serving a 70B model on 4x H100s via TensorRT-LLM. Pruning it to ~56B lets you serve on 2x H100s with the same architecture, cutting your GPU cost in half overnight. +- Your team maintains one large base model and needs to quickly ship multiple size variants (e.g. 8B / 7B / 6B) for different customer SLAs. Minitron lets you derive them all from the same checkpoint with a single script, instead of training each variant independently. + +### 3.2 How Minitron works + +Minitron compresses a model in two stages: + +**Stage 1 — Importance-based pruning.** Minitron supports two complementary pruning strategies: + +- **Depth pruning**: removes entire Transformer layers. Layers are ranked by *perplexity-based scoring* or *block importance* (measuring each layer's contribution to the model's output), and the least important ones are dropped. +- **Width pruning**: reduces the dimensions within each layer uniformly. Neurons and heads are ranked by *activation-based importance scoring* during a calibration pass, and the lowest-ranked ones are removed across all layers. + +Both strategies can be combined. An optional automatic NAS search can be enabled to explore the space of (depth, width) configurations and select the best one for a given parameter target. The result is a standard, homogeneous model. + +**Stage 2 — Knowledge distillation.** The pruned model (student) is trained to mimic the original model (teacher) using logits-based KL divergence loss. + +### 3.3 Walkthrough: Qwen3-8B → 7B parameters + +**▶ Data preparation:** Run notebook `00_prerequisites.ipynb` to prepare the data and evaluate the original model. + +**▶ Minitron pruning and distillation:** Run notebook `scenario1_minitron.ipynb` for the full end-to-end pipeline (prune → distill → evaluate). + +#### Results + +| Model | Layers | Hidden Size | FFN Intermediate | Parameters | MMLU (5-shot) | % of Teacher | +|---|---|---|---|---|---|---| +| Qwen3-8B (teacher) | 36 | 4096 | 12288 | 8B | 0.7493 | 100% | +| Minitron — pruned | 32 | 3840 | 12288 | 6.96B | 0.7038 | 93.9% | +| Minitron — pruned + distilled | 32 | 3840 | 12288 | 6.96B | **0.7166** | **95.6%** | + +Distillation recovers **+1.28 percentage points** of MMLU accuracy with just 100 iterations on WikiText-103. + +### 3.4 Comparison with Puzzletron at the same parameter target + +To validate that Minitron is the right choice for this scenario, we also ran Puzzletron at the same ~7B parameter target. Puzzletron produces a 36-layer heterogeneous model with variable FFN widths per layer (some as low as 2560) and selective attention removal. + +▶ See notebook `scenario1_puzzletron.ipynb` to reproduce this run. + +| Model | Parameters | MMLU (pruned) | MMLU (distilled) | % of Teacher | +|---|---|---|---|---| +| **Minitron 7B** | 6.96B | 0.7038 | **0.7166** | **95.6%** | +| Puzzletron 7B | 6.99B | 0.6621 | 0.6823 | 91.1% | + +**Minitron wins on MMLU by +3.43 percentage points after distillation.** + +> **Note on Puzzletron search space:** The Puzzletron run above used a limited search space. A broader search (more FFN size candidates, more block variants) could potentially find better architectures; but this comes at a cost. Each additional candidate increases scoring time, calibration GPU hours, and MIP complexity. At moderate compression targets, the marginal gains from expanding the search are unlikely to justify the additional pipeline complexity and compute investment. This is precisely where Minitron's simplicity shines. + +**Takeaway:** For moderate, general-purpose compression where you want reliability and simplicity, Minitron is the practical default — it delivers strong accuracy on general knowledge benchmarks like MMLU, with a simpler pipeline and a standard model format. + +> **Important Note (benchmark-dependent behavior):** The comparison above uses MMLU only (general-purpose). On other benchmarks, the ranking between Minitron and Puzzletron can flip at this compression level. See [Section 5.4](#54-benchmark-specific-behavior) for a full multi-benchmark analysis, especially if your use case targets a specific downstream task. + +--- + +## 4. Scenario 2: Hardware-Constrained Compression + +> *"I must fit a strict memory budget."* + +You need to deploy an LLM on hardware with a hard memory ceiling (an edge device like NVIDIA Jetson, a specific GPU with limited VRAM, etc.). The compression is aggressive (>20%), and you are willing to invest in a more complex pipeline to squeeze the best possible accuracy out of your budget. + +**Puzzletron** is the right tool for this job. + +### 4.1 When to choose this path + +- You have a **hard hardware constraint** expressed as a memory budget (e.g. "must fit within 78,000 MiB"). +- Your compression target is **aggressive** (>20% reduction). +- You are willing to invest in a **more complex pipeline** (NAS search, MIP optimization) to maximize accuracy within the constraint. +- A **heterogeneous model** (different layer widths, selective attention removal) is acceptable for your deployment. + +**Examples:** +- You need to deploy an 8B model on an edge device such as an NVIDIA Jetson AGX Orin (64 GB). Puzzletron can target the exact memory budget your application allows. +- You're building a latency-optimized model for real-time inference where removing attention from certain layers directly reduces compute per token, and you want NAS to find the optimal trade-off automatically. + +### 4.2 How Puzzletron works + +Puzzletron compresses a model through an automated NAS pipeline: + +**Step 1 — Build a replacement library.** For each Transformer layer, Puzzletron generates a set of candidate block variants: the original block, blocks with reduced FFN widths (e.g. 10240, 8192, 5120, 2560), and blocks with attention removed entirely. Each variant is scored for quality and cost (memory footprint, parameter count, ...). + +**Step 2 — MIP optimization.** A Mixed-Integer Program takes the full library of per-layer candidates and their quality/cost scores, and finds the optimal combination that minimizes total quality loss subject to the target constraints (e.g. memory ≤ 78,000 MiB). This is what makes Puzzletron *heterogeneous*: the solver can choose a different configuration for every layer. + +**Step 3 — Knowledge distillation.** Same as Minitron: the assembled heterogeneous model (student) is distilled against the original model (teacher) using logits-based KL divergence loss. + +### 4.3 Walkthrough: Qwen3-8B - 126,215 MiB → 78,000 MiB memory target + +**▶ Data preparation:** Run notebook `00_prerequisites.ipynb` to prepare the data and evaluate the original model (if not already done). + +**▶ Puzzletron NAS and distillation:** Run notebook `scenario2_puzzletron.ipynb` for the full end-to-end pipeline (prune → NAS search → distill → evaluate). + +#### Results + +| Model | Layers | Memory Footprint | MMLU (5-shot) | % of Teacher | +|---|---|---|---|---| +| Qwen3-8B (teacher) | 36 | 126,215 MiB | 0.7493 | 100% | +| Puzzletron — pruned | 36 | 77,992 MiB | 0.2752 | 36.7% | +| Puzzletron — pruned + distilled | 36 | 77,992 MiB | **0.5613** | **74.9%** | + +The pre-distillation accuracy is near-random (MMLU has a 25% baseline for 4-choice questions); this is expected at >35% compression. Distillation recovers **+28.61 percentage points**, transforming a non-functional model into a usable one. + +#### Puzzletron architecture details + +``` +block_0: attention kv_heads_8 ffn intermediate_12288 +block_1: attention kv_heads_8 ffn intermediate_5120 +block_2: attention kv_heads_8 ffn intermediate_5120 +block_3: attention kv_heads_8 ffn intermediate_7424 +block_4: attention no_op ffn intermediate_9984 +block_5: attention no_op ffn intermediate_9984 +block_6: attention kv_heads_8 ffn intermediate_12288 +block_7: attention no_op ffn intermediate_9984 +block_8: attention no_op ffn intermediate_9984 +block_9: attention no_op ffn intermediate_9984 +block_10: attention no_op ffn intermediate_12288 +block_11: attention no_op ffn intermediate_12288 +block_12: attention kv_heads_8 ffn intermediate_12288 +block_13: attention kv_heads_8 ffn intermediate_12288 +block_14: attention kv_heads_8 ffn intermediate_12288 +block_15: attention kv_heads_8 ffn intermediate_12288 +block_16: attention no_op ffn intermediate_9984 +block_17: attention kv_heads_8 ffn intermediate_12288 +block_18: attention kv_heads_8 ffn intermediate_12288 +block_19: attention kv_heads_8 ffn intermediate_12288 +block_20: attention no_op ffn intermediate_7424 +block_21: attention kv_heads_8 ffn intermediate_12288 +block_22: attention kv_heads_8 ffn intermediate_12288 +block_23: attention kv_heads_8 ffn intermediate_12288 +block_24: attention kv_heads_8 ffn intermediate_12288 +block_25: attention no_op ffn intermediate_12288 +block_26: attention no_op ffn intermediate_12288 +block_27: attention no_op ffn intermediate_12288 +block_28: attention no_op ffn intermediate_12288 +block_29: attention kv_heads_8 ffn intermediate_12288 +block_30: attention no_op ffn intermediate_12288 +block_31: attention no_op ffn intermediate_12288 +block_32: attention kv_heads_8 ffn intermediate_12288 +block_33: attention kv_heads_8 ffn intermediate_12288 +block_34: attention kv_heads_8 ffn intermediate_12288 +block_35: attention kv_heads_8 ffn intermediate_9984 +``` + +### 4.4 Comparison with Minitron at the same memory target + +To validate that Puzzletron is the right choice for this scenario, we also ran Minitron at the same memory budget. To match ~78,000 MiB, Minitron drops 14 of 36 layers (keeping 22), producing a 5.49B parameter model. + +▶ See notebook `scenario2_minitron.ipynb` to reproduce this run. + +| Model | Memory Footprint | MMLU (pruned) | MMLU (distilled) | % of Teacher | +|---|---|---|---|---| +| **Puzzletron 78k** | 77,992 MiB | 0.2752 | **0.5613** | **74.9%** | +| Minitron 78k | 78,054 MiB | 0.2351 | 0.4620 | 61.7% | + +**Puzzletron wins on MMLU by +9.93 percentage points after distillation.** + +At this extreme compression level, Minitron's strategy of dropping entire layers removes too many reasoning pathways. Puzzletron's approach (keeping all 36 layers but surgically thinning them) preserves the model's depth and gives distillation more structure to work with. + +**Takeaway:** For aggressive compression under a hard memory constraint, Puzzletron's heterogeneous NAS consistently outperforms Minitron's uniform pruning. The additional pipeline complexity is justified by a significant accuracy advantage. + +> **Important Note (benchmark-dependent behavior):** The comparison above uses MMLU only. On other benchmarks, the ranking between Minitron and Puzzletron can flip. However, at this aggressive compression level, our experiments show that Puzzletron wins across the board, outperforming Minitron on every benchmark we evaluated. See [Section 5.4](#54-benchmark-specific-behavior) for the full multi-benchmark results. + +--- + + +# Part II — Results, Analysis & Insights + +--- + +## 5. Head-to-Head: When Does Each Method Win? + +Sections 3 and 4 (Part I) showed the recommended method for each scenario. Here we consolidate all results to reveal the full picture. + +### 5.1 Summary of all experiments + +| Compression Target | Method | Parameters | Memory | MMLU (pruned) | MMLU (distilled) | % of Teacher | +|---|---|---|---|---|---|---| +| **7B params (~14%)** | **Minitron** | **6.96B** | **111,570 MiB** | **0.7038** | **0.7166** | **95.6%** | +| 7B params (~14%) | Puzzletron | 6.99B | 123,929 MiB | 0.6621 | 0.6823 | 91.1% | +| **78,000 MiB (~38%)** | **Puzzletron** | **7.07B** | **77,992 MiB** | **0.2752** | **0.5613** | **74.9%** | +| 78,000 MiB (~38%) | Minitron | 5.49B | 78,054 MiB | 0.2351 | 0.4620 | 61.7% | + +### 5.2 Why each method wins in its regime + +In theory, Minitron is a subset of Puzzletron: any architecture Minitron can find, Puzzletron could also find if its search space were large enough. But the search space must be finite, and expanding it comes with significant compute and complexity costs. This is why both methods have their sweet spot. + +**Scenario 1 (moderate compression):** + +On MMLU, Minitron outperforms Puzzletron at this level (+3.43pp post-distill). Its uniform pruning directly targets a parameter count, produces a clean architecture in a single step, and avoids the complexity of a full NAS pipeline. At the same time, this advantage is benchmark-dependent: on other benchmarks, Puzzletron could retain more of the teacher's accuracy than Minitron (see [Section 5.4](#54-benchmark-specific-behavior)). This means there is no single-bullet approach: different compression methods have their winning territories even at moderate compression. That said, when factoring in pipeline complexity and the standard model format Minitron produces, it remains the practical default for most general-purpose compression needs at this level. + +Moreover, Minitron can be applied **iteratively**: for example, prune 10%, distill, then prune another 10% and distill again. This staged schedule typically preserves more quality than a single, more aggressive pruning step at the same overall parameter reduction. + +**Scenario 2 (aggressive memory compression):** + +Puzzletron becomes essential. When the target is a hard memory budget, Puzzletron can optimize for it directly via MIP constraints, whereas Minitron optimizes for a parameter count, and mapping parameter targets to memory budgets is indirect and suboptimal. More importantly, at this level of compression, Minitron acts like a butcher (dropping entire layers), while Puzzletron acts like a surgeon (selectively thinning FFN widths and removing attention per-layer). The surgical approach preserves far more model structure, giving distillation more to work with. This is why Puzzletron recovers to 74.9% of the teacher vs. Minitron's 61.7%. + +### 5.3 Accuracy vs. compression + +![Pruning + Distillation Results on Qwen3-8B](summary_chart.png) + +### 5.4 Benchmark-specific behavior + +The MMLU-based comparisons in Sections 3–4 and the summary table above tell only part of the story. Evaluating the same compressed models on [HellaSwag](https://arxiv.org/abs/1905.07830) (commonsense reasoning) and [GSM8K](https://arxiv.org/abs/2110.14168) (math reasoning) reveals that **the best compression method depends on the benchmark**. + +**Scenario 1 — 7B parameter target (% of teacher, post-distillation)** + +| Benchmark | Minitron 7B | Puzzletron 7B | Winner | +|---|---|---|---| +| MMLU | **95.6%** | 91.1% | **Minitron** | +| HellaSwag acc_norm | 88.3% | **91.4%** | **Puzzletron** | +| GSM8K strict | 83.1% | **92.8%** | **Puzzletron** | + +**Scenario 2 — 78,000 MiB memory target (% of teacher, post-distillation)** + +| Benchmark | Puzzletron 78k | Minitron 78k | Winner | +|---|---|---|---| +| MMLU | **74.9%** | 61.7% | **Puzzletron** | +| HellaSwag acc_norm | **87.7%** | 64.4% | **Puzzletron** | +| GSM8K strict | **53.2%** | 3.7% | **Puzzletron** | + +Several observations stand out: + +**At moderate compression, the winner depends on the benchmark:** In Scenario 1, the picture is benchmark-dependent: Minitron leads on MMLU (~96% vs. ~91% of teacher), while Puzzletron leads on HellaSwag acc_norm (~91% vs. ~88%) and GSM8K (~93% vs. ~83%), suggesting the additional pipeline complexity may not be warranted for general-purpose compression, though heterogeneous pruning appears to better preserve reasoning capabilities. There is no single-bullet approach: different compression algorithms have their winning territories, and pipeline complexity should also be taken into account. + +**At aggressive compression, Puzzletron wins across the board:** In Scenario 2, there is no benchmark where Minitron comes close. The advantage is especially stark on GSM8K, where Minitron retains only 3.7% of the teacher's accuracy vs. Puzzletron's 53.2%. This suggests that per-layer selective pruning keeps critical reasoning pathways that Minitron's uniform approach removes. + +> **Note:** The companion notebooks reproduce only the MMLU evaluations end-to-end. The HellaSwag and GSM8K results reported here were obtained using the same `lm-eval` harness on the same compressed checkpoints. + +### 5.5 Extra insights: accuracy across the full memory compression spectrum + +The two scenarios in this guide represent two specific points on a continuous compression curve. Complementary experiments using Puzzletron's MIP sweep mode (which re-runs the MIP solver across multiple memory targets without repeating the full NAS pipeline) allowed us to sample additional points and compare both methods side-by-side across the full spectrum. + +![Puzzletron vs. Minitron Memory Sweep on Qwen3-8B](memory_sweep_combined.png) + +Several observations stand out: + +**At 90% memory, both methods are nearly equivalent.** Post-distillation accuracy is 0.7415 (Minitron) vs. 0.7406 (Puzzletron); a 0.1pp gap that is well within noise. At this compression level, Minitron's simplicity makes it the clear practical choice. + +**At 80% memory, Minitron wins post-distillation, despite losing pre-distillation.** Before distillation, Puzzletron (0.5910) leads Minitron (0.5084) by +8.3pp. After distillation, Minitron (0.7302) overtakes Puzzletron (0.6921) by +3.8pp. This is a concrete example of the architecture ranking flip described in [Section 6.4](#64-architecture-ranking-can-flip-after-distillation). + +**The crossover point lies somewhere between 20% and 38% compression.** Below ~20% compression, Minitron consistently wins post-distillation. Beyond ~38%, Puzzletron pulls decisively ahead. The exact crossover will depend on the model, the distillation budget, and the Puzzletron search space — but this range provides a practical guideline. + +### 5.6 Decision rules + +| If... | Then use... | +|---|---| +| Compression is <15% and general-purpose | **Minitron** | +| You need a standard/homogeneous model | **Minitron** | +| Compression is >20% | **Puzzletron** | +| You have a hard memory budget | **Puzzletron** | +| You want minimal pipeline complexity | **Minitron** | +| You need to preserve specific capabilities (e.g. reasoning) | **Puzzletron** | +| You want maximum accuracy at any cost | **Puzzletron** | + +--- + +## 6. Distillation: An Impactful Step + +### 6.1 Why distillation matters for both methods + +Pruning removes parameters, but the remaining weights were trained in the context of the full model. They don't "know" their neighbors have been removed. Distillation re-aligns the pruned model's representations with the teacher's, allowing it to recover accuracy by learning to produce similar output distributions. + +This applies equally to Minitron and Puzzletron. Regardless of how the model was pruned (uniformly or heterogeneously), the student benefits from being guided by the teacher's logits. + +### 6.2 How little data you actually need + +In our Qwen3-8B experiments, we used a deliberately minimal distillation setup: + +| Parameter | Value | +|---|---| +| Dataset | WikiText-103 (train split) | +| Iterations | 100 | +| Tokens processed | ~1.6M | + +The results were remarkable: +1.28pp to +28.61pp of MMLU recovery depending on the compression level, using a small generic dataset and just 100 iterations. Note that more extensive distillation (using more iterations, larger datasets, or higher-quality data such as [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2)) can enable further recovery. + +> **Important caveat:** This fast convergence is specific to Qwen3-8B and should not be generalized. In other settings, distillation may require billions of tokens and thousands of iterations to converge. The Qwen3-8B result demonstrates that distillation can be surprisingly efficient, but your mileage will vary. Always monitor loss curves to verify convergence before stopping training. + +### 6.3 Distillation loss curves + +The plot below shows the training and validation distillation loss (KL divergence) for both methods at the 7B parameter target: + +![Distillation loss curves — Scenario 1](distillation_curves.png) + +Both curves converge smoothly, with Puzzletron maintaining a consistently lower loss throughout: its heterogeneous architecture preserves more of the original model's behavior, even though it ultimately scores lower on MMLU (0.6823 vs. 0.7166). This confirms that **distillation loss alone does not predict downstream task accuracy**. + +### 6.4 Architecture ranking can flip after distillation + +An important insight: **the architecture that looks best before distillation is not necessarily the one that recovers best after distillation.** The 80% memory case in [Section 5.5](#55-extra-insights-accuracy-across-the-full-memory-compression-spectrum) is a concrete example: Puzzletron's pruned model leads Minitron by +8.3pp before distillation, yet Minitron overtakes it by +3.8pp after. More generally, we observed this ranking reversal at multiple compression levels. + +A promising improvement to address this is **Blockwise Local Distillation (BLD)**. BLD locally trains block variants *before* the MIP assembly step, so the search prefers blocks that are "distillable" and compatible after reassembly, not just blocks that look good as immediate swaps. The experiments in this guide did not use BLD; adding it on top of the Puzzletron pipeline described here is expected to further improve post-distillation accuracy. + +--- + +## 7. Inference Performance + +Sections 5 and 6 focused on accuracy. But for deployment, throughput and latency matter just as much. Here we benchmark all compressed models from Scenarios 1 and 2 on a single GPU using [vLLM](https://docs.vllm.ai) and compare their serving performance against the original Qwen3-8B. + +### 7.1 Experiment setup + +**vLLM with AnyModel support:** Serving Puzzletron's heterogeneous architectures requires vLLM's new `AnyModel` backend, which adds generic support for Puzzletron-optimized models with per-layer varying widths and selective attention removal. This feature is currently available via a [pull request](https://github.com/vllm-project/vllm/pull/36512) and is expected to land in a future vLLM release. Minitron models and the baseline use standard vLLM (no special support needed). + +**Benchmarking tool:** We use [AIPerf](https://github.com/ai-dynamo/aiperf) to profile each model at increasing concurrency levels (1, 4, 8, 16, 32, 64, 128 concurrent requests). + +**Workload:** Each request sends ~1,000 input tokens and generates ~200 output tokens, simulating a summarization-style use case. + +**Hardware:** 1x NVIDIA H200 NVL GPU. + +**Models benchmarked (all post-distillation):** Qwen3-8B (baseline), Minitron 7B (Scenario 1), Puzzletron 7B (Scenario 1), Minitron 78k (Scenario 2), Puzzletron 78k (Scenario 2) + +> **How to reproduce:** Serving Puzzletron's heterogeneous models with vLLM requires a few extra setup steps. See [Appendix](#appendix-serving-a-puzzletron-model-with-vllm) for the full procedure. + +### 7.2 Results + +![Throughput vs Latency — all models](all_curves_throughput_vs_latency.png) + +Results shown in the table at concurrency 64 (near-saturated throughput). Full curves across all concurrency levels are in the chart above. + +| Scenario | Model | Throughput (tok/s) | Mean TPOT (ms) | P99 TPOT (ms) | Mean TTFT (ms) | +|---|---|---|---|---|---| +| — | **Qwen3-8B (baseline)** | 218.9 | 267.81 | 321.63 | 2,426.40 | +| Scenario 1 (7B params) | **Minitron 7B** | 246.7 | 243.15 | 293.74 | 2,229.41 | +| Scenario 1 (7B params) | **Puzzletron 7B** | 219.2 | 267.87 | 321.93 | 2,428.24 | +| Scenario 2 (78k MiB) | **Minitron 78k** | 364.0 | 160.99 | 195.01 | 1,496.71 | +| Scenario 2 (78k MiB) | **Puzzletron 78k** | 370.5 | 158.41 | 192.21 | 1,516.35 | + +> **Metrics glossary:** **Throughput** = output tokens generated per second across all concurrent requests. **TPOT** (Time Per Output Token) = inter-token latency, i.e. how long between consecutive tokens in a single response. **TTFT** (Time To First Token) = how long until the first token is generated after a request is submitted. + +### 7.3 Analysis & Insights + +**At moderate compression (Scenario 1), Minitron delivers a clear inference speedup; Puzzletron does not.** + +Minitron 7B reaches ~13% higher peak throughput than the baseline and ~15% lower single-request latency. Puzzletron 7B, by contrast, is nearly indistinguishable from the baseline (~2% throughput improvement). This makes sense: Minitron's homogeneous architecture (fewer layers and a uniformly smaller hidden size) translates directly into less compute per forward pass. Puzzletron keeps all 36 layers and varies FFN widths per layer; the irregular structure offers less opportunity for the runtime to optimize. + +Combined with the accuracy results from [Section 5](#5-head-to-head-when-does-each-method-win), Minitron wins both on MMLU accuracy and inference speed at this compression level — reinforcing it as the practical default for moderate, general-purpose compression. + +**At aggressive compression (Scenario 2), both methods deliver massive speedups, and Puzzletron beats Minitron on throughput while preserving far more accuracy.** + +Both Scenario 2 models dramatically outperform the baseline: Minitron 78k reaches 364 tok/s and Puzzletron 78k reaches 371 tok/s at concurrency 64 — a ~66–69% improvement over the baseline's 219 tok/s. On single-request latency, Minitron 78k is slightly faster (6.15 ms vs. 7.21 ms TPOT at concurrency 1), but the gap narrows under load and Puzzletron edges ahead on peak throughput. + +The key insight is the accuracy-performance trade-off: Puzzletron 78k retains 74.9% of teacher MMLU vs. Minitron 78k's 61.7% (similar pattern across other benchmarks) while delivering slightly better throughput. At this compression level, Puzzletron gives you more accuracy *and* more throughput. + +> **Coming soon: optimizing directly for throughput and latency.** The experiments above use Puzzletron with a memory or parameter count target: the MIP solver maximizes a quality score subject to these resource budgets. An upcoming Puzzletron feature will allow optimizing directly for inference throughput or latency as the primary constraint, enabling the MIP solver to find architectures that are not just memory-efficient but also maximally fast to serve. Early results show that this inference-aware optimization provides significant accuracy gains over memory-targeted compression at the same latency level. + +--- + +## 8. Limitations & Practical Tips + +### 8.1 Limitations of this guide + +- **Single base model:** All experiments use Qwen3-8B. Results (especially distillation convergence speed and the crossover point between Minitron and Puzzletron) may differ on other models and model families. +- **Limited benchmarks:** The notebooks reproduce MMLU end-to-end. Supplementary evaluations on HellaSwag and GSM8K (see [Section 5.4](#54-benchmark-specific-behavior)) confirm that the best method is benchmark-dependent, but three benchmarks on one model are not enough to build general per-task guidelines. +- **Minimal distillation:** 100 iterations on WikiText-103 is a lower bound. Production deployments should use more iterations, larger datasets, and domain-specific data. +- **Fixed search space for Puzzletron:** The NAS search space (FFN candidate sizes, attention removal options) was kept small for tractability. A broader search space could yield better architectures at the cost of longer search time. +- **Single-step Minitron:** We use a one-shot Minitron configuration rather than a multi-step iterative scheme, which simplifies the pipeline but typically achieves less compression and leaves some potential quality–compression gains on the table. + +### 8.2 Practical tips + +- **Start with Minitron:** If you're unsure which method to use, start with Minitron. It's faster to set up, produces a standard model, and gives you a strong baseline. You can always run Puzzletron afterward if you need more aggressive compression. +- **Distillation is not optional:** At any compression level beyond ~10%, always distill. The accuracy gain can be substantial. +- **Combine with quantization:** After pruning and distillation, you can further compress your model with quantization (e.g. FP8, NVFP4). The two techniques are complementary: pruning reduces the architecture, quantization reduces the precision. +- **Monitor memory, not just parameters:** Two models with the same parameter count can have very different memory footprints. Puzzletron's memory-aware MIP handles this directly; with Minitron, verify your memory budget manually after pruning. + +### 8.3 Deployment considerations for heterogeneous architectures + +Puzzletron produces models with per-layer varying FFN widths and selective attention removal. vLLM recently added support for these architectures via the `AnyModel` backend (see [Section 7](#7-inference-performance) for benchmarks and setup instructions). As of this writing, this support is available via an [open pull request](https://github.com/vllm-project/vllm/pull/36512) and is expected to be merged into mainline vLLM in a future release. Other inference engines (TensorRT-LLM, etc.) do not yet support heterogeneous architectures. Minitron models, being homogeneous, are deployable on any standard inference stack today. + +--- + +## 9. Open Questions + +The experiments in this guide raise new questions to investigate. Below are directions we find promising for future work. + +**Combining Minitron depth pruning with Puzzletron width pruning.** +In this guide, Minitron and Puzzletron are used independently. A natural next step is to combine them: first use Minitron to remove the least important layers (depth pruning), then apply Puzzletron's per-layer NAS to the remaining layers (heterogeneous width pruning). This two-stage approach could achieve more aggressive compression than either method alone: Minitron reduces the layer count quickly and cheaply, while Puzzletron fine-tunes the surviving layers to fit a precise hardware budget. + +**Model and scale sensitivity: do we need model-specific compression guidelines?** +All our results come from a single model (Qwen3-8B). Do other architectures or model sizes respond differently to Minitron and Puzzletron? For instance, does the crossover point between the two methods shift for larger models (70B+) or for architectures with different attention patterns (e.g. GQA vs. MHA, MoE vs. dense)? + +**Distillation recipe: how to choose the dataset, duration, and scale?** +Our experiments used 100 iterations on WikiText-103, a deliberately minimal setup that happened to work well for Qwen3-8B. But how should one choose the distillation dataset (generic vs. domain-specific?), the number of iterations, and the token budget for a new model? Is there a principled way to estimate the required distillation effort given a model and compression level, or does it always require empirical tuning? + +**Serving heterogeneous architectures: how to balance Tensor Parallelism and Pipeline Parallelism?** +Puzzletron produces models where layers have different widths and some lack attention entirely. Standard TP/PP strategies assume uniform layers. How should parallelism be partitioned when layer costs vary significantly? Finding efficient serving configurations for heterogeneous architectures is an open problem that directly impacts their practical deployment. + +**Benchmark-specific behavior: can we build guidelines per downstream task?** +As shown in [Section 5.4](#54-benchmark-specific-behavior), the relative ranking of compressed models shifts depending on the benchmark. Can we identify which compression strategies preserve which capabilities? Our experiments on MMLU, HellaSwag, and GSM8K suggest that Minitron's depth pruning better preserves general knowledge while Puzzletron's heterogeneous pruning better preserves reasoning, but three benchmarks on one model are not enough to generalize. + +> **Going further:** To explore these questions, see [Advanced Compression Experiments: Results & Insights](advanced_compression_experiments.md), which gathers the results and insights from more sophisticated experiments. + +--- + +## 10. References + +- **Minitron:** Sreenivas et al., [*Compact Language Models via Pruning and Knowledge Distillation*](https://arxiv.org/abs/2407.14679), 2024. +- **More Minitron Results:** Sreenivas et al., [*LLM Pruning and Distillation in Practice: The Minitron Approach*](https://arxiv.org/pdf/2408.11796), 2024. +- **Puzzletron:** Bercovich et al., [*Puzzle: Distillation-Based NAS for Inference-Optimized LLMs*](https://arxiv.org/abs/2411.19146), 2024. +- **NVIDIA ModelOpt:** [GitHub Repository](https://github.com/NVIDIA/Model-Optimizer) +- **Llama Puzzletron Tutorial:** [Puzzletron Example on ModelOpt](https://github.com/NVIDIA/Model-Optimizer/blob/feature/puzzletron/examples/puzzletron/README.md) +- **Model Compression with Megatron-Bridge:** [Megatron-Bridge Examples](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/megatron_bridge/README.md) +- **Qwen3-8B:** [HuggingFace Model Card](https://huggingface.co/Qwen/Qwen3-8B) + +--- + +

+ +## Appendix: Serving a Puzzletron Model with vLLM + +Puzzletron's heterogeneous models require a few extra steps to serve with vLLM. Below is the procedure for the Scenario 1 Puzzletron model (`distilled_Qwen3-8B-Puzzle-7B`); the same steps apply to any Puzzletron checkpoint. + +**Step 1 — Install vLLM with AnyModel support:** + +```bash +pip install git+https://github.com/askliar/vllm.git@feature/add_anymodel_to_vllm +``` + +**Step 2 — Patch the model config to use the AnyModel backend:** + +Puzzletron checkpoints are saved as standard HuggingFace models, but vLLM needs to know to load them via the `AnyModel` backend. Update the `config.json`: + +```python +python -c " +import json +config_path = '/workspace/output/distilled_Qwen3-8B-Puzzle-7B/config.json' +with open(config_path) as f: + config = json.load(f) +config['architectures'] = ['AnyModel'] +config['base_architecture'] = 'Qwen3ForCausalLM' +with open(config_path, 'w') as f: + json.dump(config, f, indent=2) +print('Done:', config['architectures'], config['base_architecture']) +" +``` + +**Step 3 — Launch the vLLM server:** + +```bash +vllm serve /workspace/output/distilled_Qwen3-8B-Puzzle-7B \ + --trust-remote-code \ + --port 8000 & +``` + +**Step 4 — Install AIPerf (in a second terminal):** + +```bash +pip install aiperf +``` + +**Step 5 — Benchmark with AIPerf:** + +```bash +for c in 1 4 8 16 32 64 128; do + echo "=== Concurrency: $c ===" + aiperf profile \ + --model /workspace/output/distilled_Qwen3-8B-Puzzle-7B \ + --url http://localhost:8000 \ + --endpoint-type chat \ + --streaming \ + --concurrency $c \ + --request-count 200 \ + --synthetic-input-tokens-mean 1000 \ + --synthetic-input-tokens-stddev 100 \ + --output-tokens-mean 200 \ + --output-tokens-stddev 20 \ + --tokenizer /workspace/output/distilled_Qwen3-8B-Puzzle-7B \ + --artifact-dir /workspace/aiperf_results_puzzle7B/concurrency_$c +done +``` + +> **Note:** For Minitron models and the baseline, skip Step 2 — standard vLLM serves them directly. \ No newline at end of file diff --git a/examples/pruning_demo/advanced_compression_experiments.md b/examples/pruning_demo/advanced_compression_experiments.md new file mode 100644 index 00000000000..a8f6b835240 --- /dev/null +++ b/examples/pruning_demo/advanced_compression_experiments.md @@ -0,0 +1,174 @@ +# Advanced Compression Experiments: Results & Insights + +This document extends the [main tutorial](README.md) with results and insights from more sophisticated experiments, addressing the open questions raised in Section 9. + +--- + +## 1. Extended Distillation: WikiText vs. Nemotron-v2 at 80% Memory + +The main tutorial uses a deliberately minimal distillation setup (100 iterations on WikiText-103, ~1.6M tokens). Here we investigate what happens when we scale up distillation significantly (using the higher-quality [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) with 1000x more tokens) on Qwen3-8B models compressed to ~80% of the original memory footprint. + +### 1.1 Results across all benchmarks + +| Model | Params | Distillation | Tokens | MMLU | HellaSwag acc_norm | GSM8K flex | +|---|---|---|---|---|---|---| +| Original Qwen3-8B | 8B | — | — | 0.7493 | 0.7653 | 0.8749 | +| | | | | | | | +| **Puzzletron 80%** | | | | | | | +| Puzzletron — pruned | 7.75B | — | — | 0.5910 | 0.6863 | 0.5762 | +| Puzzletron + WikiText | 7.75B | gbs=4, seq=4096, 100 iters | 1.6M | 0.6921 | 0.7390 | 0.7612 | +| **Puzzletron + Nemotron-v2** | **7.75B** | **gbs=768, seq=8192, 300 iters** | **1.9B** | **0.7186** | **0.7381** | **0.8378** | +| | | | | | | | +| **Minitron 80% (36→28 layers)** | | | | | | | +| Minitron — pruned | 6.65B | — | — | 0.5084 | 0.5295 | 0.0114 | +| Minitron + WikiText | 6.65B | gbs=4, seq=4096, 100 iters | 1.6M | 0.7302 | 0.6166 | 0.4761 | +| **Minitron + Nemotron-v2** | **6.65B** | **gbs=768, seq=8192, 300 iters** | **1.9B** | **0.7394** | **0.6357** | **0.7453** | + +### 1.2 Key takeaways + +**Nemotron-v2 improves both methods, but the gains are benchmark-dependent.** MMLU improvements are modest (+2.65pp for Puzzletron, +0.92pp for Minitron). The real payoff is on reasoning: Puzzletron's GSM8K jumps +7.66pp, Minitron's +26.92pp. Higher-quality distillation disproportionately recovers reasoning capabilities. + +**Minitron + WikiText (1.6M tokens) still beats Puzzletron + Nemotron-v2 (1.9B tokens) on MMLU.** Minitron recovers to 97.5% of the teacher with minimal distillation, while Puzzletron needs 1000x more compute to reach 95.9%. + +**On reasoning (GSM8K), Puzzletron leads regardless of distillation recipe.** With Nemotron-v2, Puzzletron retains 96.0% of the teacher vs. Minitron's 85.4%. Depth pruning's impact on reasoning can be partially compensated by better distillation, but heterogeneous pruning still preserves reasoning structure better. + +**Distillation loss still doesn't predict downstream accuracy.** Minitron's final loss (5.59e-1) is 10x higher than Puzzletron + Nemotron-v2 (5.63e-2), yet Minitron scores better on MMLU. + +--- + +## 2. Chaining Minitron Depth Pruning with Puzzletron + +### 2.1 Motivation + +The main tutorial uses Minitron and Puzzletron independently. A natural question is: can we combine them? + +This is motivated by a limitation in Puzzletron's scoring for full layer removal: its independent block-level scoring does not account for inter-block dependencies when multiple layers are removed simultaneously, leading to poor layer selection and degraded quality. + +| Method | Layers dropped (1-indexed) | Pre-distill MMLU | Post-distill MMLU | +|---|---|---|---| +| Minitron (BI scoring) | L27–L34 | 0.5084 | 0.7302 | +| Puzzletron (Cosine Embedding Loss) | L3–L4, L8–L9, L15, L19, L21, L27 | 0.2949 | 0.4993 | + +> **Note:** To isolate depth pruning behavior, Puzzletron was configured to only allow full layer removal. + +Minitron's BI scoring concentrates drops in late layers, producing a far better model. This motivates a chained approach: Minitron for depth pruning, then Puzzletron for heterogeneous width pruning on the surviving layers. + +### 2.2 Experiment: Minitron 36→32L + Puzzletron → 80% memory + +We first prune Qwen3-8B from 36 to 32 layers using Minitron (~10% reduction), then apply Puzzletron to the 32-layer model to reach the 80% memory target (~10% further reduction). We compare this chained approach against using each method alone at the same 80% memory target. + +**Intermediate step — Minitron 36→32L (~90% memory)** + +| Model | Params | Distillation | Tokens | MMLU | HellaSwag acc_norm | GSM8K flex | +|---|---|---|---|---|---|---| +| Qwen3-8B (teacher) | 8.19B | — | — | 0.7493 | 0.7653 | 0.8749 | +| Minitron 36→32L — pruned | 7.42B | — | — | 0.7396 | 0.6671 | 0.2873 | +| Minitron 36→32L + WikiText | 7.42B | gbs=4, seq=4096, 100 iters | 1.6M | 0.7421 | 0.6987 | 0.7604 | + +Minitron's depth pruning retains 98.7% of MMLU with no distillation at all (0.7396), confirming that the 4 dropped late layers contribute little to general knowledge. GSM8K drops sharply (0.2873) but recovers well with minimal distillation (0.7604). + +**80% memory target — all three approaches compared** + +| Model | Params | Distillation | Tokens | MMLU | HellaSwag acc_norm | GSM8K flex | +|---|---|---|---|---|---|---| +| Qwen3-8B (teacher) | 8.19B | — | — | 0.7493 | 0.7653 | 0.8749 | +| | | | | | | | +| **Chained: Minitron 36→32L + Puzzletron** | | | | | | | +| Pruned | 7.42B | — | — | 0.6674 | 0.6698 | 0.6331 | +| + WikiText | 7.42B | gbs=4, seq=4096, 100 iters | 1.6M | 0.7074 | 0.6874 | 0.7081 | +| **+ Nemotron-v2** | **7.42B** | **gbs=768, seq=8192, 300 iters** | **1.9B** | **0.7332** | **0.7126** | **0.8499** | +| | | | | | | | +| **Puzzletron only** | | | | | | | +| Pruned | 7.75B | — | — | 0.5910 | 0.6863 | 0.5762 | +| + WikiText | 7.75B | gbs=4, seq=4096, 100 iters | 1.6M | 0.6921 | 0.7390 | 0.7612 | +| **+ Nemotron-v2** | **7.75B** | **gbs=768, seq=8192, 300 iters** | **1.9B** | **0.7186** | **0.7381** | **0.8378** | +| | | | | | | | +| **Minitron depth only (36→28L)** | | | | | | | +| Pruned | 6.65B | — | — | 0.5084 | 0.5295 | 0.0114 | +| + WikiText | 6.65B | gbs=4, seq=4096, 100 iters | 1.6M | 0.7302 | 0.6166 | 0.4761 | +| **+ Nemotron-v2** | **6.65B** | **gbs=768, seq=8192, 300 iters** | **1.9B** | **0.7394** | **0.6357** | **0.7453** | + +### 2.3 Key takeaways + +**The chained approach gives the best balanced results with extended distillation.** With Nemotron-v2, Minitron+Puzzletron achieves 0.7332 MMLU, 0.7126 HellaSwag, and 0.8499 GSM8K. No single method matches this balance: Minitron alone leads on MMLU (0.7394) but lags on HellaSwag (0.6357) and GSM8K (0.7453); Puzzletron alone leads on HellaSwag (0.7381) but trails on MMLU (0.7186). + +**Chaining leverages each method's strength.** Minitron handles depth pruning cleanly (BI scoring correctly identifies which late layers to drop), then Puzzletron applies surgical per-layer width optimization on the surviving 32-layer model. The result is a model that preserves both general knowledge and reasoning better than either method alone. + +**Pre-distillation quality is much higher for the chained approach.** The chained model starts at 0.6674 MMLU before any distillation — well above Puzzletron alone (0.5910) and Minitron alone (0.5084). This gives distillation more structure to work with. + +**Conclusion:** On Qwen3-8B, for an 80% memory target, pruning ~10% with Minitron depth (36→32L) followed by ~10% with Puzzletron width, then applying extended distillation with Nemotron-v2, gives the best balanced trade-off across all benchmarks tested. + +--- + +## 3. Blockwise Local Distillation (BLD) + +BLD (bypass) locally trains block variants before the MIP assembly step, so the search prefers blocks that recover well after distillation rather than blocks that merely look good as immediate swaps. + +### 3.1 At moderate compression (7B target): marginal impact + +We tested BLD on the Scenario 1 setup (Qwen3-8B → 7B), applying it to FFN subblock variants pruned below 50% of the original intermediate size. + +| Model | Parameters | MMLU (pruned) | MMLU (distilled) | % of Teacher | +|---|---|---|---|---| +| Minitron 7B | 6.96B | 0.7038 | 0.7166 | 95.6% | +| Puzzletron 7B | 6.99B | 0.6621 | 0.6823 | 91.1% | +| Puzzletron 7B + BLD | 6.99B | 0.6696 | 0.6867 | 91.6% | + +BLD provides a marginal improvement over standard Puzzletron (+0.44pp post-distillation), and the MIP selects a very similar architecture. At this moderate compression level, the gain appears insufficient to justify the added complexity, and Minitron still leads on MMLU by a wide margin. + +### 3.2 At aggressive compression (80% memory target): significant impact + +A recurring pattern when optimizing for memory is that the MIP solver drops full attention blocks from many layers (since KV cache dominates memory). This means the FFN part of those attention-less variants becomes critical and is exactly where BLD can have the most impact. Here we apply BLD to train the FFN part of block variants that drop attention (`no_op`). + +**Results (% of teacher, post-distillation with WikiText)** + +| Benchmark | Puzzletron 80% | Puzzletron 80% + BLD | Minitron 80% | +|---|---|---|---| +| MMLU | 92.4% | **98.0%** | 97.5% | +| HellaSwag acc_norm | **96.6%** | 95.6% | 80.6% | +| GSM8K flex | 87.0% | **92.0%** | 54.4% | + +**Full results** + +| Model | MMLU (pruned) | MMLU (distilled) | HellaSwag acc_norm (pruned) | HellaSwag acc_norm (distilled) | GSM8K flex (pruned) | GSM8K flex (distilled) | +|---|---|---|---|---|---|---| +| Qwen3-8B (teacher) | 0.7493 | — | 0.7653 | — | 0.8749 | — | +| Puzzletron 80% | 0.5910 | 0.6921 | 0.6863 | 0.7390 | 0.5762 | 0.7612 | +| **Puzzletron 80% + BLD** | **0.7277** | **0.7341** | **0.7097** | **0.7317** | **0.7331** | **0.8044** | +| Minitron 80% | 0.5084 | 0.7302 | 0.5295 | 0.6166 | 0.0114 | 0.4761 | + +BLD transforms Puzzletron's results at this compression level. The pre-distillation MMLU jumps from 0.5910 to 0.7277. After WikiText distillation, Puzzletron + BLD reaches 0.7341 MMLU, beating both standard Puzzletron (0.6921) and Minitron (0.7302) — flipping the Puzzletron vs. Minitron ranking on MMLU, where without BLD Minitron was ahead. The improvement is consistent across all benchmarks, with GSM8K showing a particularly strong gain (0.8044 vs. 0.7612 without BLD). + +Unlike the moderate compression case where BLD had negligible impact, at aggressive compression BLD substantially changes the architecture the MIP selects and the quality of the resulting model. + +--- + +## 4. Beyond Dense Transformers: Compressing a Mamba-Transformer Hybrid + +All experiments so far use Qwen3-8B, a dense Transformer-only model. Here we test both methods on [Nemotron-Nano-12B-v2](https://huggingface.co/nvidia/NVIDIA-Nemotron-Nano-12B-v2), a **Mamba-Transformer hybrid** with 12.3B parameters and 62 layers (alternating Mamba and attention blocks). This is an early exploration; results are pre-distillation only (MMLU). + +### 4.1 Results + +| Model | MMLU | % of Teacher | +|---|---|---| +| Nemotron-Nano-12B-v2 (baseline, 49k MiB) | 78.6 | 100% | +| | | | +| **~10B parameter target** | | | +| Minitron 10B | **73.7** | **93.8%** | +| Puzzletron 10B | 48.9 | 62.2% | +| | | | +| **~34k MiB memory target** | | | +| Minitron 34k | 51.8 | 65.9% | +| Puzzletron 34k | **54.3** | **69.1%** | + +### 4.2 Observations + +**Puzzletron never removes Mamba blocks.** Across all Puzzletron runs (both 10B and 34k MiB targets), every Mamba block is kept intact: the MIP solver exclusively targets attention blocks and FFN layers for pruning. This suggests that removing a single Mamba block is too costly for model quality. + +**At moderate compression (~10B), Minitron dominates.** Minitron retains 93.8% of teacher MMLU vs. Puzzletron's 62.2%. This is consistent with the Qwen3-8B pattern where Minitron wins at moderate compression, but the gap is much larger here. + +**At aggressive compression (~34k MiB), Puzzletron slightly leads.** Puzzletron edges ahead (54.3 vs. 51.8 MMLU), similarly to the pattern observed on Qwen3-8B. + +**Hybrid architectures present unique challenges for Puzzletron.** On dense Transformers, Puzzletron's strength is heterogeneous per-layer optimization. On hybrids, the Mamba blocks are effectively frozen — Puzzletron can only optimize the attention/FFN half of the model. This reduces its effective search space and may explain why Minitron's simpler uniform approach outperforms at moderate compression levels. + +--- diff --git a/examples/pruning_demo/all_curves_throughput_vs_latency.png b/examples/pruning_demo/all_curves_throughput_vs_latency.png new file mode 100644 index 0000000000000000000000000000000000000000..91045515bc5a51382d0955656c7e801e8db8cdb5 GIT binary patch literal 194193 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

rPBO>h>J2R7>Bo80H;=kOXX_4!RhN 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

_CWjTX?y+bpY>@8Rx2ysE1uka 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 cFZaPF+QAbTJ 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 z z>BLXcdC9xKh9vq{gk1K7f9S zow6H55St~skQ#;>}eknvtQa?z4*_)tE0oIvWy z9xZtA0Xke+dArz@AS}MLIb8A~!8!;iD~DiV}` z_QSGvoE|ueDQOKQ_MVppm+v1enR5Rfyvq7U;5%UU2?b8y$8>$h>LRIxD^nA=`e4|(hB>|b#4SLp-mfi zh(aQLZ{ji^MfD*bFbPW62Z#*G3*w<$K&0uD3}k>fEiEl9;P<4jFQgCBy=)9&38F?N zKS@7K769d_ytC99o6(kCepR6Apc02sX9AVYym}qbpo4cFq=}AQ@yQ374sU)Avzz$K zoCs}c=jwgSu@pnmSRp!7Ft(>VBsG>fLbOX$UJ3|Uiv63YB6lBMgVqfSkvsa)N`edB zy%Z`8vGD^cYeA+`rma%-{a8_sn8{}3j zgK+$19LvU`TA82|iY&CTpu>31yCudl7)1lU zUTx0{5tDEkIb$wMN5bFBAYg<+o5_V1#=4iPsrODi8-r#KS9b2nBHwq-+qgKO!;s-$ zZtm_05nSE*K>CB=E@6n|oA?in zSKMJz&jse6P6mwiY9H>Us)44MaDPye=nUN}FySK9DAd=piP3%>^t-wWFj&GiQXCXD zxk3zsYXLM6shwllw&rg)G=8lgAkr@d?^fhYRsxXGhP<(lMCcp!m#%dAUYwudZ+|fb zY&nkpq4pSyFuSECUbboH@-9g^9uO`_p2=;!Ec#GI6kjq%5pc4J-FjOH907COs*Tv< zl|fu_Q0Q5UiC8LvuJraT7zqkO%>L|>`+bg&{>%t@KGivW9L4aoKuF=uxsb<>ugxwu zpM4to-C=|q>L{4RXgNeBVBqsx^{4$%@u%MGZ{;|V-L|vHD?{DY$R(#;gFt#{B z*oHW3Try62vMGrZJdYYeW7$Pa)y)+8H(Y#}%DapqExd8%MRel$P_~A*>iZNdSC;tt zRs3&#ly6(uQnQ58NAcnyDhrr2wY4BKo#c^1V`N>?hYi9hqeewd0L3JU>O%a-4$N00 z45F%*&uV%}GP6)rxuU-PAeLL$ya2K;BthSPX7=5r%kCo>8W~Fso*IXys@CuZZ&@Qm zH~mT!z4wL{Ky)*2XH~)z=k$;Izn6k&%jt@jj zEqOSgCT4$4k(s`VuvO5np z5V-(ldj+kKCt?`t*T0c{E06-_3M7FOMv3A)U7S`2PTv791M!L?Uq4G3H4`#IkOn#@ zK%JM`j`S=|vCSU^ZbrMG_W~{#eTUF+r)_@K9tkil;?4m~A5u2K&slM>aZRczgw>Fr zwc1**R3{g=8HlBCSnA?m4B!A9CPR7Zn&_+r?Yx=yoLKYA0tETq*1YdRXm2+e3SK)% zy`WAEo8;nZGanecTV`tY!o0J}!MAz8CTWS}h@LF2LLVkNKnj&~(fHny4SEEll_!_* z`88>!K8XEx#&eJ-i%p1U^Qo;_2G_QzG5FgPg~n*{D4E81_p>wwUY5XKJ&s<~c) zV+v1q8<(6~8U38su5;M#rhui}MuoKJ%=%Hq$#$S#V?N(Xw`0qO!|n|2202%DCF4LQ z3viH#y8RKixnfi?WCpc5WU%!l)22}m%;MAfT%7m3Ly2*<7C#d^5ce>bzsFq}`uHL=-1 zkrG&^=S^QtPfmsoHh+KG*l$1aOvv3~%q+GpovyZYE_1hC%Z{_U$sERZ&&uatFSZx5 zm&?VycsU7J#aCs27;PN1S^FG*Z)3Z~^@8n1-D`u;dmqT$Y}blcN-I}ZcQD`jYx-&u zwvUxUnTLke3TX~DJ%kQ}RUO+it(($Px(^Qclk&dE$$15C5%G&CezBdLoi(RsrusfO z-DXEv#iceh)3ssP|A)?yUdnXRECdmDhLJDYMGTvJtON z(m#5rvvxO>SG%-tpQ!qG+D8V}OWawnNO^g*D}=2ps`^nMc-5?K=x20Z<75z6jqh8i zA1YCIr?YmAC*kJj6xh9;Dk7Imi=G;2AzUmgyXcxMC`yPaQzPMe=r~T!+?7;ntA(F? zE>{Pm=Grq8ab;$0f>r%c_42LP|B6}IWM2#4-P*D_K6GtpY&;7RMnh0sbMD7nDTvHE zXUSk15t@L0N{dC>XD&rekejh2swD0x)u5VdlPfq zXZ#-+^3y+ej6XVg`PsIKbyx4M@BGe#B!~CorV)$hNywaW{d(jYQ`|rD^4Brlz(!f5 zF#d~g_Vqlew<}jupvJ_5lP#IP1(x?uUKd~U;ou3PlKQ1(94OmFyNJ3G&sDA=)G-xt z#nq>1rk`I

r`v;H_$hjqdJalf~_g43voL-+GlU7XIP- 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%0A1E#Qt#e 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%0D}c#0-J6{ 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 literal 0 HcmV?d00001 diff --git a/examples/pruning_demo/memory_sweep_combined.png b/examples/pruning_demo/memory_sweep_combined.png new file mode 100644 index 0000000000000000000000000000000000000000..d649ba487943459ce0cd11f884ba7835502f9765 GIT binary patch literal 158715 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 &b%H*JymUC9RRl_>9u9Bf^ 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 B9SQ&d literal 0 HcmV?d00001 diff --git a/examples/pruning_demo/scenario1_minitron.ipynb b/examples/pruning_demo/scenario1_minitron.ipynb new file mode 100644 index 00000000000..71cd5c32df6 --- /dev/null +++ b/examples/pruning_demo/scenario1_minitron.ipynb @@ -0,0 +1,274 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scenario 1 — Minitron: Quick & Reliable Compression (~1h45 on 2x H200)\n", + "\n", + "This notebook prunes Qwen3-8B down to ~7B parameters using **Minitron** (homogeneous pruning), then distills and evaluates the result.\n", + "\n", + "**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n", + "\n", + "**Prerequisites:**\n", + "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", + "- Base model downloaded at `/workspace/models/Qwen3-8B`." + ] + }, + { + "cell_type": "markdown", + "id": "b14dbc2b", + "metadata": {}, + "source": [ + "## 1. Prune (long step)\n", + "\n", + "Minitron's `prune_minitron.py` script handles the full pruning pipeline in one command:\n", + "1. Loads the model into Megatron-Bridge format\n", + "2. Runs a calibration pass on the Nemotron-Post-Training-Dataset-v2 to compute importance scores\n", + "3. Enumerates all valid (depth, width) configurations, keeps the 10 candidates with parameter count closest to and below 7B, scores them using a fast MMLU proxy, and selects the best one\n", + "4. Exports the pruned model as a HuggingFace checkpoint\n", + "\n", + "We skip pruning `num_attention_heads` to keep the GQA structure intact (the model reduces hidden size, FFN intermediate size, and drops layers instead).\n", + "\n", + "> **Calibration dataset note:** The pruning script automatically downloads and uses 1,024 samples from `nvidia/Nemotron-Post-Training-Dataset-v2` for calibration (configurable via `--calib_dataset_name` and `--calib_num_samples`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "867f6497", + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "torchrun --nproc_per_node 2 prune_minitron.py \\\n", + " --pp_size 2 \\\n", + " --hf_model_name_or_path /workspace/models/Qwen3-8B \\\n", + " --prune_target_params 7e9 \\\n", + " --hparams_to_skip num_attention_heads \\\n", + " --output_hf_path /workspace/output/Qwen3-8B-Pruned-7B" + ] + }, + { + "cell_type": "markdown", + "id": "9o737xevmu", + "metadata": {}, + "source": [ + "**Expected output:** Minitron selects the following best architecture:\n", + "\n", + "```\n", + "[BEST SUBNET] {'num_layers': 32, 'hidden_size': 3840, 'ffn_hidden_size': 12288} -> 6.96B params, 0.7073 score\n", + "\n", + "Dropping decoder layers [28, 31, 32, 33] from model.\n", + "```\n", + "\n", + "The model goes from 36 to 32 layers (dropping 4 late layers), hidden size is reduced from 4096 to 3840, and FFN intermediate size stays at 12288." + ] + }, + { + "cell_type": "markdown", + "id": "ef1f4a07", + "metadata": {}, + "source": [ + "## 2. Verify pruned model\n", + "\n", + "Check that the pruned checkpoint was saved correctly." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5be1ca4a", + "metadata": {}, + "outputs": [], + "source": [ + "!ls -lh /workspace/output/Qwen3-8B-Pruned-7B/" + ] + }, + { + "cell_type": "markdown", + "id": "8433afa3", + "metadata": {}, + "source": [ + "## 3. Evaluate pruned model (before distillation)\n", + "\n", + "Run MMLU (5-shot) on the pruned model to measure how much accuracy was lost during pruning. This gives us the pre-distillation baseline." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d25fc66c", + "metadata": {}, + "outputs": [], + "source": [ + "!lm_eval --model hf \\\n", + " --model_args pretrained=/workspace/output/Qwen3-8B-Pruned-7B,dtype=bfloat16 \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "id": "dcff37f6", + "metadata": {}, + "source": [ + "## 4. Distill\n", + "\n", + "Run knowledge distillation: the pruned model (student) learns to mimic the original Qwen3-8B (teacher) using logits-based KL divergence loss on the tokenized WikiText-103 dataset.\n", + "\n", + "We run 100 iterations with a sequence length of 4096 and a global batch size of 4 (~1.6M tokens)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", + "\n", + "> **Tip:** In the TensorBoard settings (top-right gear icon), check **\"Reload data\"** so the charts update automatically as training progresses." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess\n", + "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_7B/tb_logs\", \"--port\", \"6006\"])\n", + "print(\"TensorBoard started at http://localhost:6006\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's run the distillation.\n", + "> **Expected runtime: ~20-30 minutes on 2x H200.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13f7b0f2", + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "torchrun --nnodes 1 --nproc_per_node=2 distill.py \\\n", + " --student_hf_path /workspace/output/Qwen3-8B-Pruned-7B \\\n", + " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", + " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --output_dir /workspace/output/distill_output_7B \\\n", + " --seq_length 4096 \\\n", + " --tp_size 2 \\\n", + " --pp_size 1 \\\n", + " --mbs 1 \\\n", + " --gbs 4 \\\n", + " --train_iters 100 \\\n", + " --lr 0.0001 \\\n", + " --min_lr 1e-05 \\\n", + " --lr_warmup_iters 10 \\\n", + " --eval_interval 10 \\\n", + " --eval_iters 10 \\\n", + " --log_interval 1" + ] + }, + { + "cell_type": "markdown", + "id": "e79f5aa6", + "metadata": {}, + "source": [ + "Finally, kill tensorboard:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e92fcb22", + "metadata": {}, + "outputs": [], + "source": [ + "subprocess.run([\"pkill\", \"-f\", \"tensorboard\"])" + ] + }, + { + "cell_type": "markdown", + "id": "665dd4wp1xw", + "metadata": {}, + "source": [ + "**Expected distillation loss curve:**\n", + "\n", + "![Minitron 7B distillation loss](distillation_loss_7B.png)\n", + "\n", + "The KL divergence drops from ~0.93 to ~0.38 over 100 iterations, with training and validation loss tracking closely (no overfitting)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Export to HuggingFace format\n", + "\n", + "Distillation saves a Megatron distributed checkpoint. Convert it back to HuggingFace format for evaluation and deployment." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!python /opt/Megatron-Bridge/examples/conversion/convert_checkpoints.py export \\\n", + " --hf-model /workspace/output/Qwen3-8B-Pruned-7B \\\n", + " --megatron-path /workspace/output/distill_output_7B/checkpoints/iter_0000100 \\\n", + " --hf-path /workspace/output/distilled_Qwen3-8B-Pruned-7B" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Evaluate distilled model\n", + "\n", + "Run MMLU (5-shot) on the distilled model. Compare with the pre-distillation score from Step 3 to measure distillation recovery.\n", + "\n", + "**Expected results on Qwen3-8B:**\n", + "\n", + "| Model | MMLU (5-shot) | % of Teacher |\n", + "|---|---|---|\n", + "| Qwen3-8B (teacher) | 0.7493 | 100% |\n", + "| Minitron — pruned | 0.7038 | 93.9% |\n", + "| Minitron — pruned + distilled | **0.7166** | **95.6%** |" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!lm_eval --model hf \\\n", + " --model_args pretrained=/workspace/output/distilled_Qwen3-8B-Pruned-7B,dtype=bfloat16 \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/pruning_demo/scenario1_puzzletron.ipynb b/examples/pruning_demo/scenario1_puzzletron.ipynb new file mode 100644 index 00000000000..623a0fe7b3a --- /dev/null +++ b/examples/pruning_demo/scenario1_puzzletron.ipynb @@ -0,0 +1,282 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scenario 1 — Puzzletron: Heterogeneous Pruning (Comparison) (~6h on 2x H200)\n", + "\n", + "This notebook compresses Qwen3-8B to ~7B parameters using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n", + "\n", + "This serves as the **comparison run** for Scenario 1. The recommended approach for moderate compression is Minitron (see `scenario1_minitron.ipynb`). We run Puzzletron here to demonstrate how it compares at this compression level.\n", + "\n", + "**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n", + "\n", + "**Prerequisites:**\n", + "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", + "- Base model downloaded at `/workspace/models/Qwen3-8B`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Install Puzzletron dependencies" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "pip install -e .[hf,puzzletron] && \\\n", + "pip install -r examples/puzzletron/requirements.txt && \\\n", + "pip install lm-eval==0.4.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Prepare calibration dataset\n", + "\n", + "Puzzletron requires explicit dataset preparation. We download and format the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2), which Puzzletron uses to score the quality of candidate block replacements during the NAS search." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "python -m modelopt.torch.puzzletron.dataset.prepare_dataset \\\n", + " --dataset_name=nvidia/Nemotron-Post-Training-Dataset-v2 \\\n", + " --output_dir=/workspace/datasets/Nemotron-Post-Training-Dataset-v2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Configure the NAS search\n", + "\n", + "In the YAML configuration files, we need to set:\n", + "- **`input_hf_model_path`**: path to the base Qwen3-8B model\n", + "- **`target_memory`**: set high (130,000 MiB) so it doesn't constrain — we're targeting by parameter count here\n", + "- **`num_params`**: 7B parameter target\n", + "- **`eval_samples`**: number of samples for scoring (32 for faster search)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!sed -i 's|input_hf_model_path: .*|input_hf_model_path: /workspace/models/Qwen3-8B|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + "\n", + "!sed -i 's|target_memory: .*|target_memory: 130_000|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + "\n", + "!sed -i 's|target_memory: .*|target_memory: 130_000|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + "\n", + "!sed -i 's|num_params: .*|num_params: 7_000_000_000|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + "\n", + "!sed -i '/^scoring:/,/^[a-z]/{s|eval_samples: .*|eval_samples: 32|}' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", + "\n", + "This step is significantly longer than Minitron's single-command pruning.\n", + "\n", + "The MIP (Mixed-Integer Programming) solver will find the optimal heterogeneous architecture that has at most 7B parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove if already exists from a previous run\n", + "!rm -f /workspace/puzzle_dir/subblock_stats.json\n", + "!cd /workspace/Model-Optimizer && \\\n", + "torchrun --nproc_per_node 1 \\\n", + " examples/puzzletron/main.py \\\n", + " --config examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml \\\n", + " 2>&1 | tee /workspace/puzzletron_qwen3_7B.log" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Evaluate pruned model (before distillation)\n", + "\n", + "Evaluate the Puzzletron-compressed model on MMLU. The model is heterogeneous (variable FFN widths per layer), so we use the `lm_eval_hf.py` script which supports this architecture." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!sed -i 's/\"torch\\.bfloat16\"/\"bfloat16\"/g' \\\n", + " /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0/config.json\n", + "\n", + "!sed -i '1s/^/__version__ = \"0.4.8\"\\n/' /usr/local/lib/python3.12/dist-packages/lm_eval/__init__.py\n", + "\n", + "!cd /workspace/Model-Optimizer && \\\n", + "python examples/llm_eval/lm_eval_hf.py \\\n", + " --model hf \\\n", + " --model_args pretrained=/workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0/,dtype=bfloat16,parallelize=True \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Distill\n", + "\n", + "Distill the heterogeneous Puzzletron model against the original Qwen3-8B teacher. Same distillation recipe as the Minitron notebooks: 100 iterations on WikiText-103.\n", + "\n", + "The `distill.py` script handles both distillation and automatic export to HuggingFace format in one step." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", + "\n", + "> **Tip:** In the TensorBoard settings (top-right gear icon), check **\"Reload data\"** so the charts update automatically as training progresses." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess\n", + "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_puzzle_7B/tb_logs\", \"--port\", \"6006\"])\n", + "print(\"TensorBoard started at http://localhost:6006\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's run the distillation.\n", + "> **Expected runtime: ~20-30 minutes on 2x H200.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!torchrun --nproc_per_node=2 \\\n", + " /workspace/Model-Optimizer/examples/megatron_bridge/distill.py \\\n", + " --student_hf_path /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0 \\\n", + " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", + " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --output_dir /workspace/output/distill_output_puzzle_7B \\\n", + " --hf_export_path /workspace/output/distilled_Qwen3-8B-Puzzle-7B \\\n", + " --student_hf_model Qwen/Qwen3-8B \\\n", + " --seq_length 4096 \\\n", + " --tp_size 2 \\\n", + " --pp_size 1 \\\n", + " --mbs 1 \\\n", + " --gbs 4 \\\n", + " --train_iters 100 \\\n", + " --lr 0.0001 \\\n", + " --min_lr 1e-05 \\\n", + " --lr_warmup_iters 10 \\\n", + " --eval_interval 10 \\\n", + " --eval_iters 10 \\\n", + " --log_interval 1" + ] + }, + { + "cell_type": "markdown", + "id": "4bcefb8b", + "metadata": {}, + "source": [ + "Finally, kill tensorboard:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "389d78f6", + "metadata": {}, + "outputs": [], + "source": [ + "subprocess.run([\"pkill\", \"-f\", \"tensorboard\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Evaluate distilled model\n", + "\n", + "Compare with the Minitron result at the same parameter target (see `scenario1_minitron.ipynb`).\n", + "\n", + "**Expected results on Qwen3-8B:**\n", + "\n", + "| Model | Parameters | MMLU (5-shot) | % of Teacher |\n", + "|---|---|---|---|\n", + "| Qwen3-8B (teacher) | 8B | 0.7493 | 100% |\n", + "| **Minitron 7B — distilled** | **6.96B** | **0.7166** | **95.6%** |\n", + "| Puzzletron 7B — pruned | 6.99B | 0.6621 | 88.4% |\n", + "| Puzzletron 7B — distilled | 6.99B | 0.6823 | 91.1% |" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "python examples/llm_eval/lm_eval_hf.py \\\n", + " --model hf \\\n", + " --model_args pretrained=/workspace/output/distilled_Qwen3-8B-Puzzle-7B,dtype=bfloat16,parallelize=True \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/pruning_demo/scenario2_minitron.ipynb b/examples/pruning_demo/scenario2_minitron.ipynb new file mode 100644 index 00000000000..09f75f58b2f --- /dev/null +++ b/examples/pruning_demo/scenario2_minitron.ipynb @@ -0,0 +1,239 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scenario 2 — Minitron: Aggressive Depth Pruning (Comparison Baseline) (~45 min on 2x H200)\n", + "\n", + "This notebook prunes Qwen3-8B from 36 layers down to 22 layers using **Minitron** depth pruning, then distills and evaluates the result.\n", + "\n", + "This serves as the **comparison baseline** for Scenario 2. The recommended approach for aggressive compression is Puzzletron (see `scenario2_puzzletron.ipynb`). We run Minitron here to demonstrate why depth pruning underperforms at this compression level.\n", + "\n", + "**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n", + "\n", + "**Prerequisites:**\n", + "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", + "- Base model downloaded at `/workspace/models/Qwen3-8B`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Prune (36 → 22 layers)\n", + "\n", + "To match the ~78,000 MiB memory budget used in the Puzzletron comparison, we need aggressive compression. With Minitron, the most effective way to achieve large memory savings is **depth pruning** — removing entire Transformer layers. Each layer carries not only its weights but also a KV cache allocation at inference time, so dropping a layer saves both weight memory and KV cache memory. This makes depth pruning far more memory-efficient per parameter removed than width pruning alone.\n", + "\n", + "Minitron ranks the layers to decide which 14 layers to drop, keeping the 22 that contribute most to the model's output quality." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a8f9525", + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "torchrun --nproc_per_node 2 prune_minitron.py \\\n", + " --pp_size 2 \\\n", + " --hf_model_name_or_path /workspace/models/Qwen3-8B \\\n", + " --prune_export_config '{\"num_layers\": 22}' \\\n", + " --output_hf_path /workspace/output/Qwen3-8B-Minitron-22L" + ] + }, + { + "cell_type": "markdown", + "id": "1844685e", + "metadata": {}, + "source": [ + "## 2. Verify pruned model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e9f5bcf3", + "metadata": {}, + "outputs": [], + "source": [ + "!ls -lh /workspace/output/Qwen3-8B-Minitron-22L/" + ] + }, + { + "cell_type": "markdown", + "id": "1a50b0fb", + "metadata": {}, + "source": [ + "## 3. Evaluate pruned model (before distillation)\n", + "\n", + "With 14 layers removed (~39% of the model's depth), we expect a significant accuracy drop. At this level of compression, the model may be near-random on MMLU." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a386f374", + "metadata": {}, + "outputs": [], + "source": [ + "!lm_eval --model hf \\\n", + " --model_args pretrained=/workspace/output/Qwen3-8B-Minitron-22L,dtype=bfloat16 \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Distill" + ] + }, + { + "cell_type": "markdown", + "id": "24b3e413", + "metadata": {}, + "source": [ + "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", + "\n", + "> **Tip:** In the TensorBoard settings (top-right gear icon), check **\"Reload data\"** so the charts update automatically as training progresses." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57251157", + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess\n", + "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_22L/tb_logs\", \"--port\", \"6006\"])\n", + "print(\"TensorBoard started at http://localhost:6006\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "Distill the 22-layer model against the full Qwen3-8B teacher. Same setup as Scenario 1: 100 iterations on WikiText-103.\n", + "> **Expected runtime: ~20-30 minutes on 2x H200.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "377df69d", + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "torchrun --nnodes 1 --nproc_per_node=2 distill.py \\\n", + " --student_hf_path /workspace/output/Qwen3-8B-Minitron-22L \\\n", + " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", + " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --output_dir /workspace/output/distill_output_22L \\\n", + " --seq_length 4096 \\\n", + " --tp_size 2 \\\n", + " --pp_size 1 \\\n", + " --mbs 1 \\\n", + " --gbs 4 \\\n", + " --train_iters 100 \\\n", + " --lr 0.0001 \\\n", + " --min_lr 1e-05 \\\n", + " --lr_warmup_iters 10 \\\n", + " --eval_interval 10 \\\n", + " --eval_iters 10 \\\n", + " --log_interval 1" + ] + }, + { + "cell_type": "markdown", + "id": "83ede15e", + "metadata": {}, + "source": [ + "Finally, kill tensorboard:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0459c564", + "metadata": {}, + "outputs": [], + "source": [ + "subprocess.run([\"pkill\", \"-f\", \"tensorboard\"])" + ] + }, + { + "cell_type": "markdown", + "id": "88e4ad67", + "metadata": {}, + "source": [ + "## 5. Export to HuggingFace format" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9083cb6d", + "metadata": {}, + "outputs": [], + "source": [ + "!python /opt/Megatron-Bridge/examples/conversion/convert_checkpoints.py export \\\n", + " --hf-model /workspace/output/Qwen3-8B-Minitron-22L \\\n", + " --megatron-path /workspace/output/distill_output_22L/checkpoints/iter_0000100 \\\n", + " --hf-path /workspace/output/distilled_Qwen3-8B-Minitron-22L" + ] + }, + { + "cell_type": "markdown", + "id": "c91a1b15", + "metadata": {}, + "source": [ + "## 6. Evaluate distilled model\n", + "\n", + "Compare with the Puzzletron result at the same memory budget (see `scenario2_puzzletron.ipynb`).\n", + "\n", + "**Expected results on Qwen3-8B:**\n", + "\n", + "| Model | Memory | MMLU (5-shot) | % of Teacher |\n", + "|---|---|---|---|\n", + "| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n", + "| Minitron 22L — pruned | 78,054 MiB | 0.2351 | 31.4% |\n", + "| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |\n", + "| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cef7952c", + "metadata": {}, + "outputs": [], + "source": [ + "!lm_eval --model hf \\\n", + " --model_args pretrained=/workspace/output/distilled_Qwen3-8B-Minitron-22L,dtype=bfloat16 \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/pruning_demo/scenario2_puzzletron.ipynb b/examples/pruning_demo/scenario2_puzzletron.ipynb new file mode 100644 index 00000000000..e233e0d9ef3 --- /dev/null +++ b/examples/pruning_demo/scenario2_puzzletron.ipynb @@ -0,0 +1,491 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Scenario 2 — Puzzletron: Hardware-Constrained Compression (~6h15 on 2x H200)\n", + "\n", + "This notebook compresses Qwen3-8B to fit within a **78,000 MiB memory budget** using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n", + "\n", + "This is the **recommended approach** for Scenario 2. Puzzletron can directly target a memory constraint via its MIP (Mixed-Integer Programming) solver, producing a heterogeneous architecture that maximizes accuracy within the budget. For comparison, see `scenario2_minitron.ipynb`.\n", + "\n", + "**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n", + "\n", + "**Prerequisites:**\n", + "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", + "- Base model downloaded at `/workspace/models/Qwen3-8B`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Install Puzzletron dependencies\n", + "\n", + "Puzzletron requires additional dependencies beyond the base ModelOpt installation. Skip this step if you already ran `scenario1_puzzletron.ipynb` in the same container session." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "pip install -e .[hf,puzzletron] && \\\n", + "pip install -r examples/puzzletron/requirements.txt && \\\n", + "pip install lm-eval==0.4.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Prepare calibration dataset\n", + "\n", + "Download and format the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) for Puzzletron's block scoring phase. Skip if already prepared." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "python -m modelopt.torch.puzzletron.dataset.prepare_dataset \\\n", + " --dataset_name=nvidia/Nemotron-Post-Training-Dataset-v2 \\\n", + " --output_dir=/workspace/datasets/Nemotron-Post-Training-Dataset-v2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Configure the NAS search\n", + "\n", + "Puzzletron is driven by two YAML configuration files:\n", + "\n", + "- **`qwen3_8b_pruneffn_memory.yaml`** — The top-level config. It sets the input model path, the calibration dataset path, the working directory, the MIP memory constraint, and the list of FFN intermediate sizes to search over (the search space). This is the file you edit for each experiment.\n", + "\n", + "- **`qwen3_8b.yaml`** — The base model config. It defines the full pipeline settings: pruning strategy, scoring parameters, MIP solver settings (constraints, objective function, batch sizes for memory computation)... Most of these can be left at their defaults.\n", + "\n", + "Here, the **primary constraint is memory** (78,000 MiB), not parameter count. We set:\n", + "- **`input_hf_model_path`**: path to the base Qwen3-8B model\n", + "- **`target_memory`**: 78,000 MiB — the hard memory ceiling the compressed model must fit within\n", + "- **`num_params`**: set high (8B) so it doesn't constrain — memory is the binding constraint\n", + "- **`eval_samples`**: number of samples for scoring (32 for faster search)\n", + "\n", + "This is Puzzletron's strength: the MIP solver directly optimizes for the memory budget, accounting for both weights and KV cache per layer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "w0oomdb959h", + "metadata": {}, + "outputs": [], + "source": [ + "!sed -i 's|input_hf_model_path: .*|input_hf_model_path: /workspace/models/Qwen3-8B|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + "\n", + "!sed -i 's|target_memory: .*|target_memory: 78_000|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + "\n", + "!sed -i 's|target_memory: .*|target_memory: 78_000|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + "\n", + "!sed -i 's|num_params: .*|num_params: 8_000_000_000|' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + "\n", + "!sed -i '/^scoring:/,/^[a-z]/{s|eval_samples: .*|eval_samples: 32|}' \\\n", + " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### How Puzzletron computes memory footprint\n", + "\n", + "To understand the 78,000 MiB target, it helps to know how Puzzletron computes memory. The total footprint is the sum of three components, computed **layer-by-layer**:\n", + "\n", + "```\n", + "Total_Memory = Σ (Attention_Memory[layer] + FFN_Memory[layer]) + Non_Block_Memory\n", + "```\n", + "\n", + "**Per-layer attention memory** = KV cache + attention weights:\n", + "- KV cache: `batch_size × seq_len × kv_dim × 2 × sizeof(dtype)` per layer (this is the dominant term)\n", + "- Attention weights: Wq, Wk, Wv, Wo projections + layer norm\n", + "\n", + "**Per-layer FFN memory** = weight memory for the 3 linear layers (gate, up, down projections) + layer norm\n", + "\n", + "**Non-block memory** = input embeddings + output LM head + final layer norm\n", + "\n", + "When attention is removed from a layer (`no_op`), both the KV cache and attention weights for that layer drop to zero — this is why removing attention is far more memory-efficient than reducing FFN width.\n", + "\n", + "The computation uses the inference settings from the YAML config: `batch_size=96`, `seq_len=8192` (4096 prefill + 4096 generation), `dtype=bfloat16` (2 bytes).\n", + "\n", + "Let's verify by computing the memory footprint of the original Qwen3-8B:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7xfweabvsx4", + "metadata": {}, + "outputs": [], + "source": [ + "# Qwen3-8B architecture\n", + "hidden = 4096\n", + "num_heads = 32\n", + "num_kv_heads = 8\n", + "head_dim = 128\n", + "kv_dim = num_kv_heads * head_dim # 1024\n", + "ffn_size = 12288\n", + "vocab = 151936\n", + "layers = 36\n", + "dtype_bytes = 2 # bfloat16\n", + "\n", + "# Inference settings (from YAML config)\n", + "batch_size = 96\n", + "seq_len = 4096 + 4096 # prefill + generation\n", + "\n", + "# --- Per-layer attention memory ---\n", + "# KV cache\n", + "kv_cache_per_layer = batch_size * seq_len * kv_dim * 2 * dtype_bytes / (1024**2)\n", + "# Attention weights: Wq + Wo + Wk + Wv + q_norm + k_norm + input_layernorm\n", + "attn_params = hidden * (num_heads * head_dim) * 2 + hidden * kv_dim * 2 + head_dim * 2 + hidden\n", + "attn_weights_per_layer = attn_params * dtype_bytes / (1024**2)\n", + "attn_total_per_layer = kv_cache_per_layer + attn_weights_per_layer\n", + "\n", + "# --- Per-layer FFN memory ---\n", + "# 3 linear layers (gate, up, down) + post_attention_layernorm\n", + "ffn_params = hidden * ffn_size * 3 + hidden\n", + "ffn_per_layer = ffn_params * dtype_bytes / (1024**2)\n", + "\n", + "# --- Non-block memory ---\n", + "# Input embeddings + LM head (not tied) + final RMS norm\n", + "non_block_params = vocab * hidden * 2 + hidden\n", + "non_block = non_block_params * dtype_bytes / (1024**2)\n", + "\n", + "# --- Total ---\n", + "total = layers * (attn_total_per_layer + ffn_per_layer) + non_block\n", + "\n", + "print(f\"=== Qwen3-8B Memory Footprint (batch={batch_size}, seq={seq_len}, bf16) ===\")\n", + "print(f\"Per-layer KV cache: {kv_cache_per_layer:>10.2f} MiB\")\n", + "print(f\"Per-layer attention weights:{attn_weights_per_layer:>9.2f} MiB\")\n", + "print(f\"Per-layer FFN weights: {ffn_per_layer:>10.2f} MiB\")\n", + "print(f\"Per-layer total: {attn_total_per_layer + ffn_per_layer:>10.2f} MiB\")\n", + "print(f\"All {layers} layers: {layers * (attn_total_per_layer + ffn_per_layer):>10.2f} MiB\")\n", + "print(f\"Non-block (embed + LM head):{non_block:>9.2f} MiB\")\n", + "print(f\"\")\n", + "print(f\"TOTAL: {total:>10.2f} MiB ({total/1024:.2f} GiB)\")\n", + "print(f\"\")\n", + "print(f\"KV cache share: {layers * kv_cache_per_layer / total * 100:.1f}% of total memory\")\n", + "print(f\"Target budget: 78,000 MiB -> need to reduce by {total - 78000:.0f} MiB ({(total - 78000) / total * 100:.1f}%)\")" + ] + }, + { + "cell_type": "markdown", + "id": "s6jj7021ojg", + "metadata": {}, + "source": [ + "**Expected output:**\n", + "\n", + "| Component | Per Layer | All 36 Layers | Share |\n", + "|---|---|---|---|\n", + "| KV cache | 3,072 MiB | 110,592 MiB | 87.6% |\n", + "| Attention weights | 80 MiB | 2,880 MiB | 2.3% |\n", + "| FFN weights | 288 MiB | 10,368 MiB | 8.2% |\n", + "| Embeddings + LM head | — | 2,374 MiB | 1.9% |\n", + "| **Total** | **3,440 MiB** | **126,215 MiB (123.26 GiB)** | **100%** |\n", + "\n", + "The KV cache alone accounts for nearly 88% of the total memory. This is why Puzzletron's ability to remove attention (and its KV cache) from selected layers is so effective for meeting a memory target. To reach 78,000 MiB, we need to cut ~48,215 MiB (38.2%)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", + "\n", + "This is the core Puzzletron pipeline. It runs the full 8-step process:\n", + "1. Convert the model to Puzzletron's heterogeneous format\n", + "2. Score pruning activations across all layers\n", + "3. Generate pruned checkpoint variants at different FFN sizes\n", + "4. Build a replacement library of all per-layer candidates\n", + "5. Calculate memory/parameter stats for each candidate\n", + "6. Score each replacement's quality — longest step\n", + "7. Run MIP optimization to find the best architecture within the memory constraint\n", + "8. Assemble the final heterogeneous model\n", + "\n", + "### Search space\n", + "\n", + "For each of the 36 Transformer layers, the MIP solver can choose from the following options:\n", + "\n", + "**FFN block:** keep the original (intermediate_size=12288), replace with a pruned variant at one of the candidate sizes `[2560, 5120, 7424, 9984]`, or remove it entirely (`no_op`). That's **6 FFN options per layer**.\n", + "\n", + "**Attention block:** keep the original (GQA with 8 KV heads) or remove it entirely (`no_op`). That's **2 attention options per layer**.\n", + "\n", + "Combined, each layer has up to **12 possible configurations** (6 FFN × 2 attention). Across 36 layers, the theoretical search space is 12³⁶ — far too large to enumerate. The MIP solver efficiently finds the optimal combination by formulating it as a constrained optimization problem.\n", + "\n", + "The MIP solver will find the optimal heterogeneous architecture that fits within 78,000 MiB. Unlike Scenario 1 (where the model only reduced FFN widths), here the solver is expected to also **remove attention from multiple layers** — since KV cache is the dominant memory consumer, removing attention from a layer saves far more memory than thinning its FFN." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove if already exists from a previous run\n", + "!rm -f /workspace/puzzle_dir/subblock_stats.json\n", + "!cd /workspace/Model-Optimizer && \\\n", + "torchrun --nproc_per_node 1 \\\n", + " examples/puzzletron/main.py \\\n", + " --config examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml \\\n", + " 2>&1 | tee /workspace/puzzletron_qwen3_78k.log" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Evaluate pruned model (before distillation)\n", + "\n", + "At ~38% memory compression, the model is expected to be near-random before distillation. This is normal — distillation will recover significant accuracy.\n", + "\n", + "> **Note:** The `sed` command below fixes a dtype formatting issue in the generated config." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!sed -i 's/\"torch\\.bfloat16\"/\"bfloat16\"/g' \\\n", + " /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0/config.json\n", + "\n", + "!sed -i '1s/^/__version__ = \"0.4.8\"\\n/' /usr/local/lib/python3.12/dist-packages/lm_eval/__init__.py\n", + "\n", + "!cd /workspace/Model-Optimizer && \\\n", + "python examples/llm_eval/lm_eval_hf.py \\\n", + " --model hf \\\n", + " --model_args pretrained=/workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0/,dtype=bfloat16,parallelize=True \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Distill\n", + "\n", + "Distill the heterogeneous model against the original Qwen3-8B teacher. Same recipe: 100 iterations on WikiText-103. At this compression level, distillation is critical — it transforms the model from near-random to functional.\n", + "\n", + "The `distill.py` script handles both distillation and automatic export to HuggingFace format." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", + "\n", + "> **Tip:** In the TensorBoard settings (top-right gear icon), check **\"Reload data\"** so the charts update automatically as training progresses." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import subprocess\n", + "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_puzzle_78k/tb_logs\", \"--port\", \"6006\"])\n", + "print(\"TensorBoard started at http://localhost:6006\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's run the distillation.\n", + "> **Expected runtime: ~20-30 minutes on 2x H200.**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!torchrun --nproc_per_node=2 \\\n", + " /workspace/Model-Optimizer/examples/megatron_bridge/distill.py \\\n", + " --student_hf_path /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0 \\\n", + " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", + " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --output_dir /workspace/output/distill_output_puzzle_78k \\\n", + " --hf_export_path /workspace/output/distilled_Qwen3-8B-Puzzle-78k \\\n", + " --student_hf_model Qwen/Qwen3-8B \\\n", + " --seq_length 4096 \\\n", + " --tp_size 2 \\\n", + " --pp_size 1 \\\n", + " --mbs 1 \\\n", + " --gbs 4 \\\n", + " --train_iters 100 \\\n", + " --lr 0.0001 \\\n", + " --min_lr 1e-05 \\\n", + " --lr_warmup_iters 10 \\\n", + " --eval_interval 10 \\\n", + " --eval_iters 10 \\\n", + " --log_interval 1" + ] + }, + { + "cell_type": "markdown", + "id": "e00c38cc", + "metadata": {}, + "source": [ + "Finally, kill tensorboard:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7e0d8deb", + "metadata": {}, + "outputs": [], + "source": [ + "subprocess.run([\"pkill\", \"-f\", \"tensorboard\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Evaluate distilled model\n", + "\n", + "Compare with the Minitron result at the same memory budget (see `scenario2_minitron.ipynb`).\n", + "\n", + "**Expected results on Qwen3-8B:**\n", + "\n", + "| Model | Memory | MMLU (5-shot) | % of Teacher |\n", + "|---|---|---|---|\n", + "| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n", + "| Puzzletron 78k — pruned | 77,992 MiB | 0.2752 | 36.7% |\n", + "| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |\n", + "| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "python examples/llm_eval/lm_eval_hf.py \\\n", + " --model hf \\\n", + " --model_args pretrained=/workspace/output/distilled_Qwen3-8B-Puzzle-78k,dtype=bfloat16,parallelize=True \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "id": "dsm07ynktiu", + "metadata": {}, + "source": [ + "## 8. Bonus: Memory Sweep\n", + "\n", + "Puzzletron supports a **MIP (Mixed-Integer Programming) sweep mode** that lets you explore multiple memory compression rates in a single run. Instead of running the full pipeline for each target, the sweep reuses the scoring and replacement library from Steps 1–6 and only re-runs the MIP solver at each compression rate making it very fast.\n", + "\n", + "This produces a CSV with accuracy and memory metrics for each configuration, allowing you to map out the accuracy-memory trade-off curve and find the right operating point for your deployment.\n", + "\n", + "### Enable sweep mode\n", + "\n", + "We add the sweep configuration to the YAML and run with `--mip-only` (skips the scoring steps that were already completed in Step 4):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "l66a4t3u8kg", + "metadata": {}, + "outputs": [], + "source": [ + "import yaml\n", + "\n", + "config_path = '/workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml'\n", + "\n", + "with open(config_path) as f:\n", + " config = yaml.safe_load(f)\n", + "\n", + "# Add sweep configuration\n", + "config['mip']['sweep'] = {\n", + " 'enabled': True,\n", + " 'memory_compression_rates': [0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n", + " 'output_csv': '/workspace/puzzle_dir/mip_sweep_results.csv',\n", + "}\n", + "\n", + "with open(config_path, 'w') as f:\n", + " yaml.dump(config, f, default_flow_style=False)\n", + "\n", + "print('Sweep config added. Compression rates: [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]')" + ] + }, + { + "cell_type": "markdown", + "id": "v90anz5pdsc", + "metadata": {}, + "source": [ + "### Run the sweep" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "i4470igyxwi", + "metadata": {}, + "outputs": [], + "source": [ + "!cd /workspace/Model-Optimizer && \\\n", + "torchrun --nproc_per_node 1 \\\n", + " examples/puzzletron/main.py \\\n", + " --config examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml \\\n", + " --mip-only \\\n", + " 2>&1 | tee /workspace/puzzletron_sweep.log | grep \"Puzzletron Progress\"" + ] + }, + { + "cell_type": "markdown", + "id": "uilkjsv2wx", + "metadata": {}, + "source": [ + "Here is an example of what the accuracy-memory trade-off curve looks like when we ran this sweep (MMLU accuracy for Qwen3-8B w.r.t. memory compression rate):\n", + "\n", + "![Puzzletron Memory Sweep](memory_sweep.png)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/pruning_demo/summary_chart.png b/examples/pruning_demo/summary_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..f14be7de3673b96c14e1f94a1547b39f04c49944 GIT binary patch literal 87846 zcmeFZcR1Jo|3CVYtwK>5nb9Pa5mMQsVXKTNiWG|MT^S{jiUt+REF>eFl#!MY*|Nz9 z+2hIYL zJj04A=!`Nb(lmGCg0~Ak(+FyrVR=%J@q1MeZ(Q}vzg~BqlUn?L`)d{B zivI`x_{z!l_I91^>~VbZ@&yrT8_(B<3n&XceH|5bT=V#0mAXmsJ$v*bv}1LuB6mcI z?b(y*=Gr4_*PNxP*ZAX=Nz|3>0cxXrW2?w*>uP@AHOPb~aL46ha~7j=5VNSH`NKVD zE$r=Y8)w_b8m1a?NZPQzeD$hBdF_qofonLgets--_`CC!E6)-W>6Mk0A3S^*>oqr# z@#c+kjGXhgG&A|Ei$61IY!5%@!Bvh=O^JwyJ$b_W@!pPWTK9Lxp8NdBrlVM4etKl} z>eV4L28RVl-g^Aqd7JOx?T}4kf_wI?|MTaMhPJkPo@1|0tP-uHZ9M}oFYiD@>L#tI z-Dck#mXfTjt-B|BYu@@S$=SEQ^$!nceP3C*<-h^n9Xoc2OG^g^1ki5Yy!l(4>guV% zI(n%KKSUz)_xmnyE^rxn_i(TErIlsx_Z1a_!oswHfq~miazx0#etB~5)JV%Fdwcu2 z$hv&z3$wGcJq4z*I;Blb99y?;9dc3Z{}NN1ec|}P(9p*6CwO#4+|zynf`ap5?vs6M z{FiaMJTM|HL1p;ID`AIThvuy0=c#|&n|}V(obG68DZp=ZKYskEbmokpl9JM; z@lM5CoO|gSQVbWgW3-#cC8n+}nVwLLeUP>E*?_@jrjc;?={#@7=q8>(-k6 zp3`ewM_bDR*K&)yjaxJ|H=n`3xfsS?hR5C6)#X1{yugenqjczy-#mx4we^-AI~ecW zxwFrEUh>@6C!tsbr<*cPYaBh=V5<-*W`299A=UEN`y2Z_rnbL(_paVqLsL`n$dNU> zP2c*dhHQ*IRpc@ID?}_jB4Wa*Wjzg5b#=Ad^lwftZ|~PGBgRv|f3o3)s90D$Gnxqr z4%Xmqq7DoW9yqvr?_Rdm8$}Mex$ScqZ9VzD!95*oPU74r4qdK}-7EWOXlYN+j(6?5 zGQcWr-x}=L`?0$3LSq^amem%m3$1VeEF{HMED!ge{`^QvcwwxwQ%5O#E~Ch2i3>|Q z;Ne3~kEsFO?+pSU8^uZ%uMXBFZjqNa>2^L<>~-Vhn{!?D$@)#X4tzTeQw(lNEjr-3 zxn=BC@X)8nI@0g&Sy`OaKJq|3R%7^g(`#yn_QJAQ<)AD*dJ4nZwW=*ScI(*L-#Y~b z2Orq}ubM2?tmTqqz^bA6J%29Ln(w?i*S;;HrzQKsrhMn&z~!ZdlChnU9Q5?`FHgLV zd!G8ItXe)ghM!@~c>zB}_M2ZcuZe_ NmUuJvqe!tN}52X5uqwfy@2;&7&Nqt{$- z)a*o!SV+Ogv7QniUg`7SX^uXU+%ahD#ftl+x^UqF_DE_6hqi`Bc+cYl-g4C9Q)R}* zUa|>C9tswGs;ynOmRnjSS?>kw#*Kl8qjqb06q@E=VKggn`4F&rlZBPl)Pa=6bPETE zFs!RMy%$>F8X7)K_J6(n=a=fwl^A;F&3+{%2ZtKdSB|xO`uOqP%ad=cqO$GVxEfNA zt79=NFE2P$_j}EbpKg77nHt|Eaz+0BuH$N7pD0lEWNAJ*;C=J%Hf=#s(WCdouy0FN zmgP5!oEVSvMCpC*{a?@U^TWOBdtzsB1>=7k%@0p3|Ec6#Nv5pve(>@Bu5FAOxJAp3 zV(;1Ig|T%THV7MUqJ?R#>i<_x zSh!>zpAQH;{fK9&DpQHA81Z^?0~0NUUsjg$;L76ON0R4Pp>}R(XR77?={T&arlys1 z@|*O;$MhqLtQk)I$F2<3Ge$;6ic3nW;DTxswfSb}=leW27Zw!>_x7$e+F(@q@}n#>wtT6b21yi@aZ(tn!Ub?yKE*9Y)t^4SUs;|xC~4Qse(v14?PmFs(b3W3K8tSG zgMz3#H`7s`rKW}ydoR4}=-@*?j_CEA8U4^(6D2&TD(jMds^}dG^q;}Rr*R&Chr}f$ z{7DD6zY8m#Uecj`v$^-*4MypwMCUI$JymyP@d;$+*_m99CT7(rHn3lWSwKLb>Fwn$ z6`|bpEG#VbFHh<(@nCPVK)xP32?aRLcV+oRp_@e7 zsiK{njw#z4-R!(KIXXB^_I-}%b?W<6I}k1Jv$zlcG7yg~)-=yiTwMGRR-A6OtzmuY zah4*_nTkU9$xF+N?#~kwH|0HXL{kvAtXPAVyB^Dt^nHgnPW@kId!x)*H*GqOn>3pl zZ7T@EjmP3Mx8osx`t*r(yG3j#}!!6s*1X?*dkzjXG;(#eTy4XwQiMsvepaM|yKgXbpDeBiD^y8CUP7<{uasU_d*)D>}9~HyN>*las^MD6xOPX%gyNaf>t{2GGWn zG3$*yJfbN4+dBS+hK2^%wd62fqi2Z}d92{+QrugdTG+35Iif`-?<;?+8ws>5X{r6H6i!%O_5pNNT()Q|L~^X{rBPrXVUR$swu933;}Q7 z?$hO*GxKDcuU_J;dNtP7B~V~~m7l>R=i)lN3d!bUmA83R8?#y`gnzaC66DN%BsItP@_iW_x#KSWTa35_7IY$HvyyR!KQEYI=&j-0;Z;>a@&Kds;a!czJ3=i>!jvlCMG84`~>AA z79cOKHz6TG$;c=&=_RVW*2lTN#|}a*7wePm2$@@1Jr{bKQ>-oQ{5j8iA?IQq?$UF3 zk0J1Zu&njpzkdVJ8g+}wC!v`~$VDIUHr7iB3R3s)_}VJxI{NbRDJ+GEcf16Sujo2X zGEokpVKJHIqM@T)esj6s{xR{X&&}1Fb_1v-8=L|5LOX7l&v^_iRNy++SFm4HbS)my zJ%t}YhBhrZudHlh3*G5hcuhN(mp0|)<;8k0Oh-)Zwf<7rz+H6X#tnipJ03NZV)@q= zdAe@D|8f1#W!$&8%{Ts^vTJ*y_q(r0H>-c!sAX!pdB1|fAJhl0Nx;u|Y;EH~(PxZ# z`NM;QW!2T1(ktizwa+!#LOpURrNG@?gM&Bf>kX3t1lG4tH@%e{O3l(r^~BC(s2~uajmfi~W8`Tbl(O<*oDZM&A8y{2x8% zCeHqDE7*j!L>s<$%`MxN+>1Z2lGW|g@O~ms3fs8KdB4l=2fxQJ1KtgMi>3bb`SUtf zR=>wG4mTs!)z#yVr=J?1oZL0Vbw4_K4Zn5MliNJ<0N1Ow9g9A6F|wujyK1B_T#-f&r5J4D9cg%7e!Ito3qYSA3l7TykG0DPc|rg0tl9? z2;&ROzR;LbXE5iezn$IY$4gF-9t(8E>(^=ayNy$3#yT25UQ%m5V{4moU>hLRuDl=8 zw)Gm0%yRqoQL5bC3N0&{H6LP~s^hijrWouf^!UpJSgN9<6K=J9BUj?gdxoEfqT=JX z7-!k|XJtu}4ZWwaB2v`kTaxY;^wgYhc1g>}jgs|fNpS?WzP(vikaPFN4>vbFkg%ki zn!351)QOfKAsL|LzxC)N_WZP+9jI$eB5&{mK>p#|N6=GjzCH6F7%RMb_3HRU?_s$$N-nN;-GK!tg(~0=c7rrDMeJp-u;G0tJU}vXa$@2X0s{@v@=p)=+;K5|qg0^C61xU>?<2^R=g}I) z>G{7Gx_*5KQ9{!`JITzsN5$ZrV)S&T(-E5p_CMswfulFx5$RSsX8s?(0xPenzQ*%BHO!UpKEfz9@2)duy6@ey=lZVWX$<-aN7ey1 zp*7OxUG5J2U3}z`q-NEZFGl^I=x2oNYZfzY*vWv}88Et+5{tF3WNiFMt^;3xc9NEk zuDGFiYN+9`UL@*%#jtktKHZ!Hc|lY8u47MrjHC}*CfuoAxaMaHgKvU&nrDr6}B z^VnT}_7$nbj4u8faLvUr-xaoqyLY9Qk4WCXe_t4UQ2COhGJ{6^s6qWoCS*BJRA8HaX_ zj|)pP9jDKniCb=gRI#$qv7(b|B>IYFZfaqyq+eddq&@e;YL9|^pu&OHyf;R}2{#tM zNF5DI_;@s}v9T^uyQ{Bn>%U6<^nkYz+Zx}O2Fl-rwrwL43zm)A#fu`i-#ZT&vleTN_F@q6-_Dv^d8Vt$u`*Y2RQ=UMcmzrseFb#?mp5%Rq4%?G zNVyTHqkGxKB``I07v!k+*aSWB`SAUIAHRa3O`2iT&#h-Htx_1ErtIDOMlh;@G*jwE z+}$($^rg#}74a>dJw3pi$0hAsPo%QE(rU&!lJK6t^1Ho=8-1KBeG|yXt?Y=2$;rFV z2Zx7izSvPH-t$v;Xe^)vNi`d3p3-Of1@#Gxs*l^teQMxNkD?p}Xk5M94pM~Xk|%_m z)0UQ7xYpa&#;Klob8hWWeeyM2KpE5vv@*52grg10^4`CRu!w^H3l~3>g+|f!Emk>6 zKan}*cseua=G(V#pJ6R#_N(bu#k4&2ncso^Cp7qXsNouZ3Av3951ZIf5=e!0er1}M z*;DA=;$*U0JZ;c)d+EXQ%e`l@0p<&^lA4OW3+BfF=b=T#Vn4>MT)-O)dh_Ou93`IV z%k$^YHLg}U5C2dNVA@dcdtqV0fYr{-$&rQrVPs_Bz<`Zuk%!^b${xs$Xi2+J%Wh&z zYF@n=u-4l8^l5)tr@r9tk-N=q5;fvpLVWx+V8-$Jy?nLQQxnmr?@HooQtws-^0&eA)lIdu zps?0!yA-e82o1T=;_jJVrBL`q{*OcZ*=FWauiv}}ytY3+1)MDy)!Wl^opbNGPGIcy zFAn-Fp4cOidFReL2v~IB0N~_rs#@m5Ra8}D@pyx8-`+iu-~3=EZu^sizPmNwynbCh zBWj&DrVn%)+X4aQ)_}mvn_D}Ee?i`pm4sl0MRy3OOt_}^wyth+A0w3`@3Up>xB;}5 zd>Quey#jB;!omg=bCqHb)kKO)I1kmYXRNYqL0PIzILcj1JqCycimb~1fXcBi@S)`S z^~LDIxy_NS{YF@!UXv}&&04F(A4Rv!{S9pB%ZtgiW(cqA77!LzU9WP74U&=OUTNvb zsR~;#gY6V*ENCn*;UTIz0!!uPEkV2~erVfW&=Mdv=MO|1-GBHvr$l?MwofWi^X}G& zIhXHsb+0dVDQSM|!F8R;v|>!qe!5#rY#?AYfB#~QnGuA}=jvDRNnIl&qL0Exz$|Rg z+P6RRgp^CfM02k{s{SoBj;p>wEgvdjTfhF&!nECy$I?gFo0=E6h^mG0E-7Xk-UuEj z30)#6d%2fxE!TClObhS=4)h6VdRL*^{ldBrzHy@r>S74H7gc*&6czu8q%?Sbyb(?5>fs zt*+7vyUt;Q*PIUfRE&Gen7&WZK9sIr5NlQ%DzY+x-GvpH@KfK?%@6*hZ)kQ4*+0fT z9V72r@yaAu{9=>%&*7Mx{0wg|b*+L>9rx#P|A#*-hfKI6ZTvve&MeOU$;ipsEuIcR zk&bzDFqWK+-NJ{<_Wd(+=OG?tr;2%)JuL3+I7~`w@>uVzG7|1n+uPC?HI6Pe?A+5g4&+9h^?$yT(d>} zHao4kU-YwI_jc$D4UaXw?tYbX!QP%3g41RN4+EEh{6Z=@Qeof!hk`mnpz#M$GODTX zDN|_|h@s5IY6x!Gl5O}ZEU>jD&5^~x(D9(o_sCX^aMX?YHCPHZc&UTU=6F-9gokEY~jlczFZJ zUYV8VdSIZSkPr>P7-*4zmzS52)8vsDxeeglhF?d*&Bb02279fJWpG6i)NC9OqZ?#I z-O5U6w4)?!eEbraS{Fplh}_XlVyA9lxgYKm+Ii%K)_r2T=o%|FF0#zE+IJKeU7QEW zQJH*EE$ccOo#c9*koldOsm9qmZR?W+h8Q2pWaxor5dUX>em==Cb>nDz(Q5u}I(KK@ z)HOCn)u+FOy71xi=e66kpRm6O2nZ;0%5(3(MeWBWWn0zv>Qqs_(1_Wv#p%;ja5Y*B z-Sty@*RNZ5p6#E(XCQLq$Ppn2Up3S(Qp>YY%1gf5db9SluV-drdIydmto#)mGqo~3 zF*?=-5Js#(WK4X!LrrNZ1u*`SlaqcT;QG6Y3N=Y}#rD`>%3N+FnnAXnnBC2gkh?r; z7tyREWO{q2_a6L^y)rsF8j%IS)``87$yQQB8`bl1_8S%oow?7PaE^W3POT0Y1jQ@M zp0(NUfBZ1oBb%p}tWx5$1ns&;DOZ?5$-m4fK#2;3Q8!Fek(IFLTGLICEf|=X^t68g z)CiiKGBCKeJ!2cgRjY&9iroFrv0!^t1I3DGm8PbBAWtqXE>6TmZ9hn^#%~tDEj%Vh zG}+V5?X6sRc`A!5(H;?w1HWR+Yw`dL&;Y6G}fj1WY6BcwI~sq7Iak)xmBd<%}%jxJ>my(^S4V+pn$yZa^d_;tAerP ziVs>$b-&Q@jn9_G^e+>Q9J*h)!?!Ja_v$OWKX=MO-pbnEQMrle_S%4-pWq!HGvzUA?@e#biS5RcnT+BTGE7C_6ie&zaI; zgBRry>vWiXo0F51LHa4P2{lJ}$Y_-GCyb2+MMTzY+HJaBkMgayR(Il(BU;_~^mO2h z7cb_^e#0iz>ok>j+$d^%9nd%UJ9s2LwjOi^Do{NJ28Qq$2jV9TfWh9$nTaJ&5dh?H zwX9E1)w$Uc-$*e`eFt9!ZR+ zD*6mhp14=&Z{xpz?v0jrJ?6sEyy%hDw}Fc*#eNe-R$;`xEnm20%bHSk&!TN`6?XWe zrYvuOeY~9#z6d?1(D@;86wcZTN=h2QvAAb;a7G*8U9vqeVIlE+5#WtjwdI8i3&$!I z>-OBedzTjNRw*p3xVRYfM@SRT!9_7>C8kFq>Si5i?P>)&+NCQa&4$4tA-nYE+{0p8 ztrM!hqC5(>6uA9~QyZqEp<#c!>o?blaF|3;(q9|&BZw3Nk@I=?N)uNi};O%tG`JCN_V!qWb?fR&ST2MiJR{1GVONsX_wvqdL-N^0iDhZ=Up;t8p? z_dQd*W>r(ylb;AeCQ!Z0)oxb`c#`IHbVE-fvJG(;RD57JST)Lsi?izK>8ZE_Je-~6 z;^tlrsyAn^{J10W*W13rqeT=3e22)?tgS8TvV&m|KE66~o9nTSy@{|vjay^{1qJOo zS*`Hw4Mfo8{eemP<*D|D?^RpCJ8rjpbzpNvMFpVJMSo?#2M-=tplI7PWyD(j44SHN z(u9E{O^QHy5KGCVN+oSfyd(C5xa+9t8t8DDFOfeWws=SKfw3CU2%_Mvnq0GaA1f^G zhPR)<_G7`%#!kFh{QN|L8ynMT=Ge|p+n#z|9d1mIM>^$$QQ}N2q+Skj3qPSHXb=(A ziLe$gk2Fice$(!rfDijf#(`O1UtiNh*K7Kx^@%*k7eYm_%pUBuKIT8{0$Z3HuI~3~ z$68u6C)R#w-6-HY|Vmi&^2kB4>4 z41C()#sf3$(_py6WU`}zob#0DvuMpH>te;)d-Om24u`wt%RshBp3GX1rLe`iKf*N>iY1wvY=u8lg_W3UFPlK`k z>>2-lpG6L+>F}8Rz%GfM+Sy3~1}B$-B+Xo8?%A4+X!vwc@+(JLa_@wPkCz=|ScGl) zj2NBWVFxea^%NrMfooAm`5{U)WJzj>L0nOZ;K6_+U10~8OYxinU{iOYhp0Z8D&)UL zxAq;-K_C$gV6KeM%&5cF0hJ+7Ltb7UF2fo;4O%W4`@>KkV>ynnnrY4iO#Bk5-dx}Y7d+qiKfq+*Fc7QWl~ z>J2R!_aFf%<1R9MmORLtx_tR^6`s6I3Aogkrw7B(c78!bK-nvOWBnD8oK^6Mu&qj= zDj=a!N^V{ox>wAw4FoZCBTHByO@;1zcb_T@h5{xeByVP*G}oX1f?LG(Y; z%yyZmozD7;>W}J6Vn#q2fp{;;E3PjR6Vcr@ywmcb+JJL_lZN~*)EHAzSEolhs1%rr z2ke_8!yJ~4+CW?nEBdJC5KS?l{KqUJ?vR%x~%*M^T zP=iKv8Qe`2P=!>c%G@S;7$FtiMpR1I9{y^KAMPPQN;#I5>L6ah2cSo- zBqQ=;&6NUGc&fo#RdK2z8Qu#nLc+q;yL~~KP;vwqiw#nZLd!Nm`L#jxiwIH?Pgs#t zr~uynpHKM5DpiD^qkYc~r^&wATu(RAJ>TN-3VuH@Lp*lO!PV zOe2C3Pc)a%P{YLgyUncSxmT16V4J_p& zPXyQUPDDi9u~dWP^$?+qJH1TEE%8woMWj*iM%Hae1F)P$%s~R58j;3?ulxa>j{`|A zVY9XP=(saw|8?;~kSNiSDglAI`ukxNYmj}&6tD_pTouxzZi$b#*F^O;6l3}|Yu6sm z|46^#iRRIHfn>2DBuSF)F{oA5%lKgegqLJkyY*d z{rlF+(wOg9ULb8qXy^w-FS~|^|Cu=mngZ<+-b5^8W*)g`02jh$pK~J~KD>c+>MwY5 z;P6y%!qK~~lHk{uXj$WyV<%2<0HnRpZSU||SPNa4iUL1`4*2R`Pi<|jKayOgW@e~f z{3lFIF1$)3OM;IrC;Ol&N*Dn=1bU#oz5nn*5$z2iR2_*m(j{J9?6+%araUv)c^NXn zB8;^mPbzRnNt_&@AG5Tn#xe_ATUy5ji4k_Q%sA!I8U8A6_Gjh_pdHM66sn5W+0r<;lURioYX@! zd>VczF0fsZybOqmF)N;fG|xauI#o39ney-)@!8O?x1dGgGp`jDDFAT%S)6lfE%xU2 z_xEoq@{|EmUeRsmK*sq@*Si1;1=5j1QM9jl^YUh}xmv&suPAytI(XTez%~y7KGqMO zK7E?v2OG8Y^XH>6%b*CrEA&V)T?3*3k_dtlWt;tl1_CL22|}ABsfI=zb;UW$9zrh3 zG$Qv#i(q#|8oImgo!76HPMf^FBmmjzS$aAP{Fr^RvI5f58{rw3Bh4o6HG64lxN$5d zcQVIr1gU{f0On9j5oA+>0i>I7gcBmdFZeZ5fJ%g@lwt76)s{4x0$nISVpG==`;7)c+ih(V88nwM7M>9&i;Wu+Z|=@Q-;O(r+VAd($?0+ zm>lxBK{OB#;yZTi*!aYR60BD$%FmxaiHULS>48wlP`?1O+3$01+(>6>Y1!1&RH$EM z*#82u1adEa>S4UqeJ%OUyYS$25io-A8;fs@>xFu8qR2xEu*|9k!RfDf{sP7>lYK{F zYOKZD48C8*I#*_wUS4#k$QE5SM7R+zSrx>T=piah9J}JjSz~{ibWm z*0sr<;+RyGisgGFFIYkXj1C3~i9i zVZh{rtq|XHP8eHkVP>onM(H@J0tXjY94G^a+?AyK7WdQZ*RRh&hM7`&oso^n?p7nH z?bHm^U6Qnddda_aD;)|V32o@SId>FHOlO*|6PtrX6`NaG$(BSuXsHL}FW{npwXob>qfi#8%6LIvSEb9By|4%M0B2Nr(5@G~$si7SFsGoP`vyo|gX;fWZffbjPo0T@xv`9rKUge^n& zEk$e-VOM$-xLvz;T^ViVgetPJ=rtn+O{4-B`3FK4DW~L#;NOyF0-8_`oQ(j}b$I`{ zsde1kAw*XKyMeS{jtz4Ibujp2A!1&|3#0N`4jsIZHOt{4b>f-Bp=oMqv4oHb(aRsM z(`(DhOTXST!VfKLZQTqzSry{r%`3MIzzAZOi(vR*OJ?RDz?QCnKKldV<_~4n6 zhn-|za=>SK&RX{;o)Toue_3VJH+;#v@88#hvMb@8);oAIUG>9K5J2ZR^rfjYFX(rb z{BAjiizT9pzsgfiL(pH&PMo#a){ka*By&y94~!L_Wr%A43otF6iN_3X}}{HaV=xTO1Nf3QrHWPntE1F5|Y4DQ4pDKhOos z5u51#NOHWv&O47DF+H=HSx;OLC=r(iz6nI{yZkTucIArX$4Jo-u%DEmd#k~R@c%B& zjGEz--{$50OMw@~NZM8QwRPa9X&*j(I22otuG$3_?NB^N2XqmPS`43wyfWCu;ALw& zye5wpv&^M~bixCKY)4OKbI{q*5j{Z@k1H5t<6BKKfIp8s+0Q90E!_lP26;0wQG>2d zf~KSsNMCH?FL(u(dKy2BDm;X=!`5Tb!B8ejo13{vZBmLQ>Om*?9SM)v zGo_p6U4_ynfDMHvjMZC7N(Vxa#P~oL;cDaH-FJzC-AvXbT7qGZcYBT*%neO?@LF-Q3jXuRxHUsHsH8##X-!!;*%M?hHJvrmXXKx4W^jv0Wo0 zPEb9_`^R+$BDmRwZEymkH9)E2mw&1J93ig^mgIG4@=%U$y??LrH*^6y-5=~m)QnW> zZN%t>WI|@5uup1_7N;C}p?3ocD9L;R&z9jOlW$)fFK0QCYtOS0PAWX&Qpn>7kivQ( zc@LtmVZ0^(ny8G+O-wvXWU?F<0pB&})la(w3J0;atN z%z#e*WMw<8hQo@uRxF^zL-k(o>};xM5NAn50AWorQZ?G*g^|+-z@p{%;a^krbtU4# zgJ7uAi~tbCIftlzyffUb^q?JbQQkz9gjo32eR3--_4?uV0#_CkS~VE3r}1!**@5b% zF|C>w6lLpHjCY}IZf>5rgiF|>pumGwoP>Ak?`%jW`H){>MnD+%OpoP-)EAi^Lr{u{ zZ1;8@XGWEQ=qnr@6N74Ylf*-SpfwI3zB_eurpCo#cLa&^*ADYQbE!{mfs z$t6jrz9SDFKaPjrOx$&nV1+3+ zj_t|%iW~WLZ`wLS5?r~L(d}K4d_tmr%!7zgQkd#5+VjSW@p_-K|%{(=rLm7?%TJIfB*i?)?cC((b<+!C!P6^{ZCO^>fdo+>#xZX+M@eW9nYT; zgpDRX-salTbyxeqI#JK%MOjQ%*88H2bR#iv_4R9szOPTipcbS=0dTLzbyt#EM|}RO zVG)K^$gEOP9262YP(8$L>$d|Y-S}vRI2oZ(aQRa^4%K}5Qi0GF9WuEhrwUIvPI_VQ z)rS7|r=};`9#P7neGbWd$J!dN(>~aR1w{7mfra011RG82Vs{uk9V|GIgh8~DbzEFG zfg7GVbQDMQ0{y9-JGT`{0~Lpx$O@1>fhDQz;UTy6$b)BpHuGw|&|69vz-7F)s$Ty$ zFXGXoo5)J>V@55AnP+|58aOu=2oE9s5IIn>1-PucBDB2v?luX>9*w`DM^G#gX{Pk- ze|aMRO7icwt=Qs$j~_oCNDxAg#$*HmH-tH0ZuM_wt6~i1l!$6RGy-(b4Djwtfy5dCQ{dQR6)dEU1OWm`p-5*3+h^2$|1OTq zAHI|XTu6%9CxPoIZ69TC;aBVOrs@NS{Z*W!(&NRXy_3fxeVo>w1iJIi_gPOwbR|K~u zgOEYs&v+D2nvb%V?n3pLSzaZpV1$1hKiY*T*j1oP!e6lO=&-00>>aRyERl<5U}P)< zid40mf}zy~q)b{Zc4D&6x)F%R|7P6KreOfwT$P#PQk0u31Mc}P>%4yLYsbr%%Yd)f z;p5RULL%)zcQiFM2|N|rcQ*=cYcmfI;%cE-#}>HL%sFV{-(DQvRL!soUFbbl|7C>N zbT26zt^j3}W1b87yu0;h(fi*z^)t&k4_(J~r;NFij3dw?az&CCn{=|i06b-Q%{fAq zvBWJ7O-f;rBHR5QosY~ddQE@#t;UX3iU(>7y=fY_SCl~M1BAWs41b- z`nOZo88>}yM{Onhruy>ko4_fAF;c|I1Vk=_VZSPBU~{fR`ZA~o3udU-f;|%wJHcAQ zPgWI+f)qMI?SXqc4Yj(JQmDh-XEaT#-{>98n86nSttOJy#~9q3~v?A z{raNM$3eWk5X_|Ta~?b;<^J-;i?dYfu+j(0KjcgwJP?>89nR+UQ0l@)WZ`sS8U9sn zYHdGm!d-Qqo12r92y7^Wfv7{s#89KL;#ui_U!bj;TN8?LOFTo8c)(X-j%*`cmI) zR3AAh8zzu{JTd}oV>!`NJ=D26yl!iDZf+1ig9cpo#FC@(M%g7W-5y9?h_rE&+O};Q zx&mQDXdrCaxz5hc4Ku6r#u$mrfr<)bOb5X(?!pb^SUjeGGx8@|M`}4b?jhn0g#+Wd z7@Iugz2bznq3eOTHt9Los6Q`+MYopaFM_LRUKOKQrLR6z_Eb3B$$P(3-x^zF?of?` zN8KMu+okYc6`OGu2BOBJS4I3b!=h|et!y%8Y}1S9nZWroXM{_G_Ns5Ht-P*afq8lD zyAsL%i`<(rETV{W1&m&v@W<3?a3JHy5l}ElED$(?tS%ns?+<(lj){7)&iTAp(ryex z2Dm)_N(%Yn($c!kn{T00TUl8JbG76J-P?&dUznHVR0VLOXJD~$u>y`Qs9$J(R{cLH z%bW$Xs4otN4oA6tKz%-d_;=WH?}ROS2!zJe)U>`V@aoXrfrY;@;!O6j`h%zFTSB z1q3!Na9K+djhGXW8+dLkGb7;+6ah)X;^M_y$cbrw^nil%<%z;-%uRXC4<<(RrUdaL zvbcWju1o*`GHIQ`nU@@xRJBwD*A4qS!f0!lFif@`5ROdkMxb?*iiRBC)zHwjgoghd zDNN6qMyGy_h!;@`%C6Fq3?sgk$OIQ#a@OKie?V>vX_=%`+n|Mm=3N6ICJ}HDs(01Z zjNn6&-m_-mh5av5idK*WAtUc7L}VPBM2#qOB_fd>bFZ`<(AwlIwlS>2?!63gg-{R_ z+eo{pjYj>L$IxtUNy%};JFp5;kGv2@Hh>|$tE;P~yjijV#_-o-s3NoI2^l3#E(aqP zU|4kkX`7#8fkS6sv^wjw>HlnM3icT8PhcX`?WuJ@s~D%|XIKTpSik3qI<46-{slyvOVvBf3)Xa9NAH8eFQM*=ES-Gvlj+2XPqepzA$9URcxRE<84NYfmhmU^AI-zYdCRzZ!9Q)nGb1V>K8rfXr(}Llm1fYp^Y;4qKW^GE_l)R7Q6_q1JKpUVW zu<+yQ&7rMmu&3f)`}jxa(qq2N1gL|=u;-Xl!=r}Im6ew(yX2+#KUqi+Lf=P@u@noU zK|y?CkA#FGQXIn0Vm7U(92^`-uu!@wK0^N6Gmptsys*r>B`G;OX6THO`=iX|U7657 z!Ey&R+5-4*sQPek&w)m#4w@Qo7IHiR;=!2z)|=j{z9E`S4|@oHha~v7IFv&ou5{@R zcf{4nBGz@amACBd-1*L!EI@sEfHNV09EmxD--R^aZho$5vd~o?1RS|z=kc^#!iOW1 zt}#NO1ncmZJx$Z4vh zDE&h$QT?vPHMD|GUxj7Cj;o_3&;iRZ??>bnGCd-laY84?X{P>5!I3o4CwK1nqaoiD zGe6Z<_sg#3HElx|nkd+na$COh*=wFD7ZgW5uYwgQnw#?>w{gEMXNWenb%u|&LGc3y zLr~P?D4=fEBvuVa$;RuG|GRW&f^@;s8Y=aVjSgS622NF32b{OD0Gr+PkvT_y( z*JE50Xr&vgC(cRLFrigK|FfMww5gwgp1K_=dVg8(aJ#IXwLZql&CNYE*1-pb!yjk# zz)3;)I21kmX~q_8I;S*i|+fq zW?3Ojjj{XbW>-Qf#DvkcAQrw~_>t}A8171o0b_O69xoJQug)IE4hhFZ89=?}IBk_X z2N5_?YdVpJ;-aMn4ILk--2zSESWd3CqMdWY^|9uQl^^XApPjwRPdF}dH%;^Q;4qf~ zXs-oDL@lQTjwLUcGQZRk|x&z~n229t+XQj>X6YpzkL; zFqs#5&?4yv)8%grw`fW%tpOYN#t*pnJNNGg@cAz4PW0&`l?yYK`CmQs2K*2i?HCp+ zYK>QnnG}%Tdz&Yrzjb0g;>m7k6W@5HJC=+3KuO-Yn_PZ72D}I-#chz7Dh%YKQ-LBB z=zPDR;6m@+HosJrbMFi}$acx;Dm-JC>u@&_PDbjAEvX3Q;av^4x!R#PN?>`4+ zS;CHtSO|KTv`XEv++(Dpgb!~XN7&r5`XZ>vda3Ijt)|&(xnqaAW`q$20{h;`gR=mR zV7#sL`}a(ZM%MNy)}qIY=Bov8^p%ct>euvLmk^tSki>*SfHKH#Ob*Fu2u*2KR>YQ9 zPBtiR2sJ&0nF)jg)xqdM1oSQ1fzDG4c&S%@TaPksG9(=t5iFP)y$j>!A3lE6QZRZm z6nH567zP?DWEfRr2RVL?DS_;v@KF4Kb=hYltw#TpO%@0c*^l!18dHj_24JHJNg^Rw z2-KbIS(S7^AMjptyccZ_M^+_0XHLm|@Oxxr()%!K;(Ab{%(a9u*Nh%ll#vT)qe-?m zmK^z!<`HjXzb_xAG7t*<6FtYtdsy|*L8^ZUV`l@A&$XK-Rm2?s?0eVb;>DN0UmF#@ zPEJWr;63QG2Jze9$1Ie5mlx3EGg}gdQLlJ@vQYArOZr{F*6&>*A&0bR3ZF~$13gGy~ zby}PjTLy;jgrr5exqLOk^dVFUd_4}JxjQ9UeMt9I6mpak8b2#e#!>|Qk!o$(%*enGzmuD?dmx{jN=6P-0LhMvnm3p!p7WljZHuCm0sv5g!(QMFoHc9L!tn}O6=d@z z^%)F^otrU*GxfB8bd;IjIxQH5FeFmJV@ktY`8y6|(e3U>*N4RR_IXzXh9{Ahq-G6! zmHOz&lJCmG)8Ee@K$(SgP?z)t-O#YZ4Tq2ECL{O(KgA?lhLXdBUJ?oc69FH+@3GH6H(48fHpijkHrjSPMA1yPoEqJtL7JXhHK|-* zIVdm(f}Z*=b7G-kR_~>p*#-+791%INwiFPJ%yJF+-EO_Kini_3!^e+FoC7C?tsiN` zkic0_4~lH%b9`o;{iu8H4%b3t;=`k(Me-y>gNGJBF8tUMKAG?mS$T4t77AWcoxYwP z3FQCX_cd?$DP(xez?W52Z0!(`F;Gkgp$qQ&;EuD{h+>PV1uWbU`(tD-07cjI?Ip#f zKnHu&f_*ruqQ_Y8+cH*=w+QOorIu#jrN5gt?luhu)V#%akQdCa!KP@Y;fIlT0-=7U zrqOZ=cx3qhrFe6(fGQp*oi*)GlBiH3k_fZo&(@U1$ z5#?LgPoTu}+TyCcwArDMzA|iT1TPPlz8sQbM8psF*#we0|pY{ zX~f*I36n-Rxj2LhKHfX<1C=>6+nWHerTAkcT6GgQ{b1WJV>q@5DRaxNU8|vR@6N~# z-P|xE<0>vK)39VbI=qTP%w*y>gx9^%O0)LynYr-e#}C4^pgO8NJqlimEV6Cd|pq%=Y{oguI0#v4jfF!Ga`lt;nLvwL}16hQdUx01)T)^ z3XvxPkIuC{``4HQa{pIq3Na2U68&UiBD20Ygn~pqoR?AUN*fzD!TKO*9L@uVhi-$| zB7N`+r9Z-s-3mwaxq;M@Q~030y(=rD!qr0*)6bZScR-fCh9Hk1 zRAxY6avlkqzOZf2-0W;8{AY4p*WJ5pfCk7TgaIxJ;+esb+SJR3gU&F8bem`*EiK$= zm_d-=!460S1<6n2wknZZFdZ>sk+f{mzyO&&bY3kNX`8s}p}M*{oOwcdp|?Xm(h)X+ zUVRIQf94Pus~f6c-&G`z+Iu6toQ|9ZBQZ!v8XcZscs@{c!N5?O4TMM#33Z}_Bek7 z-ULZ#Ljj*-{;GuJqX76_`Nazz`Ob&i*w99qaIi}hO_g6X{WxqMgO#NNEzKyjrFh!J zs=!^uk(0`B%ouvlsX{k@90+w9ZbzK7J&t0;sZiUSpos?o?yV!%1B^W)+0`y7``nb{ zGuNdSP4WAT)=J(i|F#pG5TXE_76j}9ZGRx|npRO1!DOqysea?}hQuQe_rwWgwPXA0 z@BqDIb+HhY%=@E58{DiexF?nHR7nU0(^i3x zoMcJ7DP*VMZ?IzVfyLp3oM&*Y;eM_uW}lDruvUgiV0yLNxA zt78NDCM5_&72A}g3?Qz?u|hF!fN!cU0`1MkI&XBZNM{Vbycv769YvYjv*AS5ICh{hkP`)g>oFENXQ zG|_uxG|Ab2Sj*+$>=+zNI-dT-stC{i9cD0yn}YpLX1p+jPKW;RZ&}PeStZM|6*?^5 zI2{B4#9e-Rkqqk|WLQ7tOyfuDOAcaiqT}?fiJXvjYm)+?gxQhY4r1@4lT!giTvdua z1itv~jkWf_V{hmUP2?O{-@~+r|3{8BB%vrEdOer*v#k@uRQe};@_2vwy^Y~U(Fg9u z0G*ft?&h?uEz^HZu>gieecGmff@k7bewv=nAx)_nt@g>a+dbrSp1F9RRupY;6&YK) z4Fid2n7DP)a1gH}Px}u}b|B|5MhFD0<}Tiq3r2zd2^*e|bYn?hACfA-W+T(*0C%W) zL#JfZ($bJje1~UG&M5_9ATgE)G7h|GX7q==j$n0?;XgziQi6Wnt%L8waMcf=_X|cQ z>}qmsL@jnUIWZTkF=}%S$_wESO|LEK$+@3cFNmVRq+SE`K!$A)8&(}=cj-`7q19)| zqd)p$Mop@s2klPl?N(A;2Ro3cDe?#)hX)MLwmdfj&PF9B5iN26D7O{H3}w*aJWfP) zEJC|end)l#FY^zVWQis%Y{v6yA6^}abchwtu2K$Mvtw|Gb*cYP8V<4^puU5c1L6wR zvn5kqQ1RJ6*HHI(*_SL%tcF})3lom+|6uRE!*cHX|M9bI*&ev^ z#0pvyUHD|N1=s$3xTHKz`Sug!)eLZHzzT@htAM&1QUnRdiOT_K1!EKTDx4zy_>b#R zvkTY_SF+pX<8LSbn>3IZlsZ&kL004ptd7EQHZGOHi^R)34(#Q^*pNAti^SvNF{!CY zPD)S$AW~CZ>5@SK2-unc7RWwbz{M;*v+@vLaM+Z4H!jTkBjAsAoL|ZEH}2c^&jbEn z3jm(L|Jon^EbTx4_+RVCf3}2c+W%wQOaH!StT+?@e#LTMPr7_n}lmX zKmhsH-YTtvx{Ej)G=8Wsz4Yc5{)tEW`wIGf-NEGn!35-T>fE`xix>OrImU##{?HEu zEDg1&f|Al|05-|V$&l5pefodBINyDH_AnSwGQ>bR#;>`8FM56`>dBE4!+?Zw5VM;w z6yrbd6Zm(fMeD7edCjhp13zR@;#`n1@>Z|+tEhmIE`G}WU+yE>U0FPw7M~^f_+J0~ zF}9df_y2a^u(8iBwy&A@|6@kMk|{8+g3$zWdi&zhHE@EEQ5gjaekF7payA6rHbNE4 zueIbI>wmqlA2Cs?LK`QROB(Fit3G%=9h5so%OjT0SF5YL+Z#OUbM&}q$pNHGlUEc4 z0AYX3FL|NJ&z-YUdKnC^*C=M$%S#Qqasm>d5Zo=+jf?@z3Ah0o1agxps5Zzc09B1& zj&0RmK+tFh;Imwc>n@??IL`bg2m*@1^7w{_kAE5ss|LX0hMp-JRnU{Pv==DGfNUl7 zj5s?~Bgpe);|Ro5hnO<9y|Jbd0M6O)%9Lov0Zgyx>03iDArT+(u#ZIYA%PyKC@g?t=RY=xt}hBlFjD%E$Na8o;Mj zNNPZpvLq!nRr%RA)K@%M1M3jB!3G7|AsEDOfo^|)KMaz| zD6Fn)NM!Kw@!>szXjCBKK=yKc@6n>=u`!Ol6idEd*DEzDJ2ThOo^$CLR7)C z9}SK^yJ9g@^4~LvZ$#bQ-Mvs<$H5ugB_a+NP}Db+ca#O8mWTH^HqxGiNEs*WL?E`h z#>Or<7*<2B+>oN=#W@Xx9Mxk$6`=SfV})TKWb{kn$+!W}KU8DM2n?#Z4AEUM>_-&9 zhu#pISC7!Ck^TollnQMZoQ^e0(j6g;-T)NOCL@M6{VH%3SkV`&+2Jh-s6@L# z0@+SbNCMih7@$;CO(WofK?D^zX+o2J{K^2cN!+G30SU#ju2WbKGw_DK9A3yHG#J&~M9^kYa*NV$MT-8iGFS=f< z5kzb>g0vz9pomEOa%`VZSNZZgX?6ju9^}}%0TBu4WNJ_6tk~S~xTI%0 zegv}Du0hbZ105Gc5CrHpYp)3-GldW+QYaSj-UvJ; zR}!?p8)|H2@C=EIDyXShjvaRsa3VhPsGeUq@WNRcd+!R%0fr^c28cLt(%lv017je# zCSB1GQw7+uwVos=??i*lUr|?Aw`%6Kk>d~UUsC}n!Fi4e#)QGUT}c_tCV8$Pg*$WP zm^P$`)9E@rZfy$5>=(`DY@e}o663p}Uohbe;I7A#rfjF|LB zcwPxwxdM@tUOloz{`p$xIy7bG$%nQRn=i3A^l&ZBe8XO5_qb*x(0+; z&ay4j_h9UjQXyfkG;!ps|5GsELVpLr&Q@;0E;ak=Bhl51xhdRxoG_ zLu|AHpZqM;N~C#{nehroe-DZcs+0T%BBX7j=LO?+zCh#%iaEe)C9oyjGv-vR;xewHg3IH(gV4+Ase3k(I+1@`|rV4_He-yxp0LeT;1;!BIhUzlM59zWQN3LdowbU zCrDJ|8lL+pTne0leel6iwTEJdLSe|BfS>;j8b*rZ!mR?<>AraekuZP1?DC0GfoS>^ zd@Rw8Yz$BC?MrdYu+Ken1f@{Tj1LeP%7d37xrfyq{5-f{oPiGPg9KASUg!bJPHpbX zEDXrJ3G;`av@H!1#10VQxc(PT(_!4jUP9{7D$uEd*}1sf_s-uXi$}`JNXZo=dkAlQ zywc7i6_ztXkL+B2R2(>W7cY`977HG{fm8a~3=;Um@l1|#RN9OJ93Km~xxH{VdEiBm z?i{~ezTgPs7i@kHuZ!=f^f?NBll<}H!3M|0c?E+d@GWDo&XTza1f2(tlkzJ@!^?3Z zl5GLVVj~6G&?qAuiU9HFr7)*3aJ=b*+o9tL=d=ry;W%DcP*@$C5!L$;vUMj%S@A$T z3c|;TjZ_?P0FMiz$ME)pcYX89h*SEo&;s>xBib2lAGBpeK*8578i; zLRA#Ks#-h$iWdz5DcB~499qH^!4q7C7KQ2vgiY@A9gNQ$6R|4*IeovBjXEV#&TIb$ zR7ru+w0*E{Kl&DpQQ{k#waCl8Zui-^d=?jvxA?1E_&Y#IzIo-Qf4W9gd=n(+WB?Ep z*nY$x$2gE~g)=~fkN+L4;*O;Sp0jLRbqF9W<8IgMs9At>_nyG+++DP`4(2D^44{w# z9$TXKBYzz5Hd360YiF2g{rGuiB6tfP0Rx#bi9OqfVIOO2IGKKS8lvgozPE#wo(-ki zP5|L=p~)V|)5gm|z1TMPa3j7&GRr~y=)-`PKGt5jLjTaeO zgc#xhnnV8xV0{V$Cp4wQo=AeFx@|{2gq36@LsKw~?i3Ip*h4)am?+1Xj0PY8ceigj z^G=~IduG}4vt3A630|*DPM52Hs(+C#t9v7t@y>+ziJyG>XwCV(s&nNwLx)+Og6&G8 zGd%QClz~T2Yrt$#KxY%^(!1Cw)KUCXv?nmXynXB2t=x;iL7XJCxNvw;S{s?6puNke z-*Rq5ed;ONvp6P+v`EonVl0an{Hf&Lb)J5zH`GU1{Ah;Izq>bj{+;nHPMsHC_qCVj ztZQgn%LvKRZTYcm&-+Jqj3t%_h7x0HHe_Z5`uH#ya2rROCi&)|-g}ehU=OwYY*1J? zkZ3vbcmlVR+jl3mTsNHn?Zp-{3(&(Wu*^9cUIlIw7gfv2V`xW&7^|!O<9HvAzm%DA z%l%>XZe7c>33hocUBXCpV>@~Bq}AQx($X1#nQ2rHC=Pkq*1CH6u0kIwJny?4nPQG#pUZ zsfxo4BtxbsaM>8>G3+cmmhn%Uifa{o5(L^y@L=x=shmAqskzT0SJ}M~CvcKZ#eAOo z`^3-g5QLqZWg7}Sg74eOnnK`= zP>bDB!{{xIfwGhBl_D{>X)TyaE~^0bfhQ--5^rCMde}$lmGhg~qJK^?Tk`R`=~0#7 zT8lweVb`^;ei`vf#GOJiKpBYG+b>XWeE`_}^Vh(@pJ8RNpmA~@Oz#GHOEVcf(&W17 z;lbg6OGyyj8YvcSY;9Y&KOct#hw@IBOU+^siVXMA>h)84WR^kjcDdwH)rWTr zt_x7hfXjQJRyqsGvJd*$i$Ntr8WI=5A)JK!fetJ5Jpo$vpph5_u!_Awc!bpmmOXj1 z)ap?yusWHRvPog598D@^cm|PJopB1NK(=O}*cLYxZLHy9=-Np$2la6@iW1a<&(U5} z@*$1MqPFPjRinxE)CPsFL=FQwFkH81j!<+KQ1VO&4db2} zxU6d1+oR)e-*7ZPLGgLdz`$-mxeOZN@eQNXKjYvIFiWAJ}pQD zC{Q13|%LVLjt6E~4)KakID4({R&X zKokRFL{!o`I%-mZJ-|(E>H9PpyMZoRX3{$p?==f!ad0ib*cIX$VCg{fyY6B(BtonV zV#s2)J+wRj6T=;YGJh`XWyY5Wuh%BUbMZB!WypKzPKl@y4X&`_b0=!~qZ%I;#4~Nm?PmhX~HNLe3xYrm;>b9r?3wwm)#)|C*t0SJ(LkU{{_NKwELvJ`rd6!@n-j*N`#C_Y+= zy2#-DQ5pSue!D-RQ3^cM;|@JoIlsQJFuGvN50tZMyEpZ0^w}_@&~ac=rE9!$d=zH@ zMA>dwdo+@TLh+El0`b8-u(T9dh^;W4L3kL*^4+-N-zKON>Ok@8049%A4fthuAQin3 z96O!B=xx+ca{$0;25nCkKJpMYMt*zVA{$v-afJ2`bO`zgccVlVM5Z&Ku!o3*)He{0 zKL=E>yIq*wozL+%>c=8-R${3M=KAKBTZqkuN z;~8ze(8$2IP=(ui~ofMu=K$gof~Kc){>iC!h)*zCBsSR+U?M@*91Nuzc#H0Vgb5%@fqmj#%-IT0|2n&YsP%K zpdi&EH;|W{!oSxkpItub7Qjr4o=BUC57QaWITX#;@qQa&)PIh7u^(*h2ilzRKBz3G z$rxBX@e!wU@!I`T@PV=6V5jU*R15`pY+h)lNSy)gSmVj+EC_sPaxQgYg#F?Oa0YAv zG;2L+x0g${JjSpNh?IuF*e4@w5mG6wlre~Nlz^Gh`A+GJC^^ZU=wtclNa>zisGP7o z_(KGD4`kqUr?HkANjP39sQ?Y>FG?W77N8;vR&_#1B2>PgyFA*NL5VVn=rM2}?80~y zFuh2uF2MKe#4hwEI2(PuJ_egm0tdF5E>;Ffg$U(>0Mj5Gf*SAuO5+*m6e-0K2-GRi z(|*iPfbb5>#aGsCZ#}mTPZG2b1A5;Kj%4Yr`BX(_$Wj- z-T?A+u{kmH*7@<{b9trl^!PTNWk)Rp?T5|^uAN5M?<9O&Xmj8Ekno(k-*p?QO(R> zkJ}%)fBIf6|2MKu7AEmU05KReyJg(CVTS-;^q}&CBjki-P-Nu9WE39+*K9cBkkK0Z zcFYPz15Nm%9F6AYn72M!{nn&6p!`yFgnldc#d3GIj|?YeuFZb-jI}I;UHR5pEwK~f z)mZrq1}^SEt;Btp9V=uZgV@-AzGSD$jrT7`xAkWLRX_uR_p#RGfvrJ< zVaNxrV1Sz^mz3Z0+m2Tqix(K6*-%11j`-4>Sk`Y_kPdUcL6)Ja(tCIT40ntIoDK%J z69nV{>f4XbUi_!Dp??JOA~A_hdwf8gNgJ>{4UCMiQCM;9DPa7INAk_d12C7Cpsrkx zm>qC_XP)Or&+x>0rZ8~^soKH0F-RIiQ#EXCZ0P)I>jz!{$WBADL>Hml3YyQ8bt z4XO7#u{hClM*ILFLkP2V!dcgZza4sIGR$EAPFI^i%ZbEq1T85B)T3?$tTqE{j#8ya zh7I8#u(e%vBHtc;1o{6u0R^o#4!=YbE2f!2#N zFa}V#{h%31+klQ1;vJZyX}|>%jT3vTdDB$vMYUJ<|2+_$XM;2E%w2ocoAPmQo?tlP zWd&Y1@MjJD&_Xr?OhNyoErvV3&Nf3s&Vslx8ivO}K1txDqpR!2{=CGKkwTR4`fQv_E&;HjG__s@S_0Bq?S5{-P5%b5{@Dm`zmjbfUG-eXp8fk@kbWAOF%%PmU5=tc^c&~9 z(KL*p0gCoGHX&*=grgK(j7_yP&e+H(8rTtK9-<_CoA2ldoJE(Ms&nR$0C4uYQIv$_ zh@|V3${OfR@mUw(pfZR0h6HzD#{3?sLj*|X7QcEd&$kUAP*C{30B=jt*yXZ5M*kJ4 z8SQ-t)f+ZQ+{DQTN1}-o`5OS@hIo}g&DI~eXcVr&qP0eMr0S3DeRTP9{fKKHfb=h0``zLH)b%PK?QZ(_%&@?)umOd>*9L=SB zyZ|qkQ&0tJN(n|^(AKHT|8uI0iy&0ve#6M%;2_634^Ph*Xp~if!jgs&6d!4G=>$U` zwO0f06W1(dExkb~K1|}zAt?u=unR*O*EoWxA}0^}ZepG(H4H64-(wS?e>mG`K-)^x z5{2mk%7Xz%wA{qlcm}m_rKO|=yRRC>N(L+(0Mg(B7&xr2Q(=Sv7l3UvZxuVy_ZAOB zR40!M`~)pBNJn?Gum%EgJcYnTS~d6^)X&#c&fJ$-};tsA|z7IHAV|t~L$J8US1~MS;LmfY0z=CA=2L;Tv8AT#DWo zE>Ckrr_tdkO!DU7c<`Wx6~?G zTm(}wgVqxQhbDZkSfIP2zGB?*O}q@~+IRm%H%@LVDpB#=J%Th&o-9Hi3S8!L`}oue zslmSK#taJ1MhHHohN&Vv0=F)VZ^8{Jr2ND150W6@AnrbrG`Z&LKEz~sG&VII`Zwx# z9e}o_up>F+b6y2MYit5u)Z{{_5U(ND9MzXj<0Oya*%OuChlW*77#STrp?L4R?fVV& zvgc3O9efrvp@MF1CgTQ9H}`i4`=X`=zl6j=BTW?dEo!>JfK7mC0AtU@nv1^3Ktw3Y zTaGxmgf$twniyLV{u?DI8{-Drv6&$ulU#?<-&sjPfT|u3!uuG5x4*0I$;wzj zp(0=IJ%0R{v4f@$?2fcTQ8ATq4QrMnZQkZ_E?<6TYz&FAHIOC%3xR;)Xgr3t?t*qP z1%i_`us3Rkuf#yIFDg41+@O)jIJ9>`p>hLD` zXESb~oN;@3%iEg+)vp*?QPFN4i^n{lnYfjrB~cWJwm7sr{*r+vz(ckfV>#fQ)}dL* zLXK!h$lyujO>{q6s9B5~pk7Z1y+Rv{5fZEZL?IZ`JZZ*EY}G)mLFjIlFkEjPP{U$m zqkx39#~uj{dmdq`b@AX25GhGXSnEj9!^+S_F3b6&k@ExZRaadq{^N@IcEC>b_YAK> z71>Y0=3f?gh<$Dzy8d8Km0gVaa`D53Px^i{UdiYz+)%abTeWiKR-U{CHT%ptUI`|d zof-^(KGf>B`rgE2)yY5M&nOUY++Jx-&d?9|wwF|O0L&)*%ZAEmrt*ZC+{C#N+xIQQ*Yo!gP;_`*|k1+R~@ z>Xpd$re{W#u)#;vt*_~jVRBUttl0J2?Y*ML$jAl!d*QIS;}eq=gI$hN)#qnwsFjA> zotFr?GMWy>x6(t6*D<3h2p5~Nuy49cI8kl0SR5kyXG}1$&(5Hd>io~jOxgyq@#f*qS$y1UC8xNvK)`Hm}B1+K~ zgY1fa%=ReW1uNa&ef#vlNn2Y1IiI)MZ@<7|{(S-Kf9H?1i9kU;jPLIp!9Bhet7#h+ z?HGcwhVz0va(iEjfWuxs3PL#=Ki0at8GtPLgnz)`Ghh0bQ(X^a0`~wWzKWEabZ2hE zC9pZv3mvP}2f#e6xFG$R$yu!szo<)B6+b#Af-Va=gn^ibw>3uzztBbH0TctMZviZH zXCMzipU@nru3es5g-U12g|SS_$?kgLjnhJ0Ykwb-)E~AmQLc1e(UdAiNMz0QB7_+lhP`NbW{BM60 z4nQdd`upq@9N5W-S4BC>{RMo4KeEMw=}_;9>NphVKzzRhwjNxugoo#R zKqs=H{mTQG><0#GExn641wfTzte>QH`7KQdR*0*nFi9W~bwc85(Km`N9>Yf`kvOb} z|9gHm-2(WhOS4#O;m-n#^wVz(U8U5agh0~eTmZYq_{1Pl(dtb{1od{(iJ>ZL#Z$kB zs;SnpN@iXXO68Nlhz*e}HBW*Zjts7?7o2b@w6>oRqZk&K6fjGu8}&P|F7?w-U}l?U z1lz~>*jR#zAb7zbjQo}?WVK!mYkBL{|57CB*Vps;z`v5D<0F6wW!7B*Yzxdc7AOT} z8ln9mXG!+vtZMufS?wG{=l0K9wlJ&JIWqWVPHxrvsNR{|j?Fc{Ki_Mngr7Kff@kdR zVHQ!jjW-^b=C>X%T)LS%RH5BHN#{40$GjY~H9F5eM!eGE-!9>(!ZYEn@v44Vxq3G6uhl$(yKsGnaUzw=f;X-41wN?3#u+Li*C2mVdtVyJ_a+=r3JgmutcnIwnt! zcYFyNl712OSji>GX6lwHspAIQ_+_tDMLo7p5Xjte{>PiALzx)`MpL$osx6o{@M5vb zdMM3IH?IKTLRA^sf0AUR0vyeLis0AQ+`;-7a6Hn#KmYN0psR)dWf)NFUKN!~unMZp z&Wf3h3*0LO0w6%{=9ZS13;GVl@Zxw4W^QV|wY7{}*jFU!hF@#sV7G;pda8|`wn=D9 ziKDJGkY7m*5hgMs7KmDasKz3Q0w5%#3G#I&;G9)n8EpWsItxw9DxS-~SfE<~GvyCc zqUxjL61>K_;n@2S6WEpyVbHI*#wGsScH)nZB_#83+}_Y@0^Ss5MsJF_rWniN*gXsJ z2LhFg&3i^eMKWrus|WqYnXQQDGlW(Ig{w2->sm&)LTv?|MJ3$2I;h}`GFHyp0iNbp z_oniXYOIP1W+vFy;ey7DMx&nSb8)MVzY@FnXi?#(<_6X$%`N>E0;l{oRGRY|3H$hK zW@T&gFuojHS*Ro7VL9R&VYcSf*`Uilclddx7U(@2n^95wpnNUIdHDqQq|~N2>-7%J zJM=1swNqq%j9S44#jiak*Ikvj?=tsxm)00m3gWu#@6Wt+=)+_7!6P=#n|Geq9%%nZ z$C4rE?~<(_;=$IEykpSHr2Wcph~Vs(29gVxEi2>Dx%?a~KAlxy`^8Y1F(Bk3+3aEL z4wMN7gND7R-AR(dcJT@-NVq&vKVH~FWxPPuZ={%73(fHCRX(6*B@-@V|0zmz%S5dW zwpcMrjjAd0r3-*scidA51$&P(%koFFn_xsE{s)lYCI+jZ^nHb*9UfPp-C++pak}*M z^=(khX1`gh@CkUFZFlZqVpe3W!m+MB!E8qnWA0xL_Th#+_YPEb@cU(iMs)7Om9tFl ziZp(v92iUUV7rce7XEu}`7wkA*S!ZL6w``$a zGR+LtzbLQlvUf22%SPOa+Rko zV~}L`Hp&!FkMZI0Ne(A~+}M=!<;I?9^-fD1J25gk`u_3BEkHhZLD2&zteb>Y4VLa} zl*E1eS?h!dQa6xH1^~u7a5zy@3V>mdv1IxC_x>n``;dldj(RTp8CqW&_yZOsyxY=Y z=$i|nU2yIp_lYU3q^q?T&dD7SF)0?+d@mg)Tib+KR`X?~$9g(OO7=YYEGOlceLmgL z_s-8Dg-Zndyo2yKttC=7Js+9yxYIZrd|7O#+!ht-o~fw#41RZn%~*ko!VSPIK--j) z2`zxEpk7NXU{X+QQ`vTYzYehx*{K|ICIPmWn? zkPVeUVB$FrzdDKDzzo>nE@B~-cVn<=4W5H=@vp?m#~TFoKj!O&HWk>1$W{kl0{A-#ve+aYvARztnWO*f@zg1 zGz6xKA|et&5a1WvR3q(k)&1H19M8;_#2wR;IBby|=(}2D`Ea*%RGo=Rl)+oh+a0Ah zJN>MN&A-ivz1C|rzop*&`udRlAH?5Z_fnD*Tzf?(`GJd@vdpd?zDe1urzEm^ccdq0 zYDmMNzs_o(TxI2tjFZsW0T_^Upq4hoa*1kKp6uL*Ck#h(H)=T~cby#mP zht7q;x=ZgNP(K(UU5?i7Clt}Ro-MCdRwGLUsA@U>6!|vi%MPK34kO@(syfk=PhTaD zgG#JI9f=BR9t2rX8Al*S6w(JSfYd|ZL(k7|yXbjdya{W*zA&oS7b2+bG*vN5Dd!60D}kWay_TZ6Hon=m&I3>eWS zSTKfw18fg!J%x}PZQOpq)P2LVUpfakE%g0*=l0ipwz@b&{?8xdj3Z|hm|8@+w#P9) z<{aV4DxJb^WvQv!eRjxhDyPcjmM-SLO3!5F0-I+e-;8>43{L*@;cwRh?)u|Px=0_h z${5lQuuD*l357ryE{o>Q&I9;#mTxf& zOIB1#1aKLEWqcbgfjfxhKxAHmE}>8^+xEv9V%fiPQ=vP#1Fb_3>Qt(HC^H|iS^yeb z9>hmP!}>Yg7LRp^xp%H8O17^#g;qfW#zMS#99T7o*SHFL01}zv?cF*4NfT(I-Cr9O z8Kp{?H@%SlirBdovx0HO_9F0U@yeBzsPA#X^78UJacJ9I1*3fU@rg|?&5$wf!-~OD zGtARlq$Ci!f#+M$gU>|7gs9(jtn!u_10vce!Ah|cd66QKm9Vlz<21t<*ammM!K@q zx0>ms@4 zZF+YL2Z&^f7HeWqm~LF^;Z#OV(9_$TPEWmxp&YJL%-iA-=leXf%C={!j^N%G2 zqKlYPrXjA7@2FrVh9H?!cyRP7lj_rYt9qy0)+6R!?vM0>~yls>zQL)q9|X+ zCR77OPTC9{QK=)pj-&ONg~IyF#@RNXKF^b3FKk?bp%3d9E?hBvhuRjovqN%I3u*$U zm~NMF#?Afc7T4%`9>dAb)fIORS}4vbUoLUHeDh1oig&4gTuuA;$W?y1KP%Qaoaueo zQfg7;2Jf?Oe1RQ``3!@vk{VZj$h=EgFZ!SK*CIcXi zh(7Vc;(GW*KI<$@K{!mDvBd|UD(BVixpQs5f|)&c!i@`!9f#1YE#Q>6_QrLgqLyug zQJRokqq~FjA$?Y*<}JQq%ZtWx9Xi_1-nR4H7RR&U_odxcFDvoaXw)CDXP) zJwc@HgrA|~e53N`JFQy>)wwH*Yelt9WhS`Wy)Wyj*C+PcXJ*yfsT}@Wmbkjs-ojEZ z0zfB)Dqq*d;vDwny{2bHG5N zcX7+jNaLe+A3_wbr>Ja8Ti4d6lrNBfIQh7;=BuuuXESw5 zoH0NP#5>j}p1{>jN>SAL&fG889WW_iU-TFy$gghB^?@E4-{P{1#J+C6G&i_u`xC?O8>Vl_wE23w=8=!p#9F;y zjMQug4ePU&?IAjedAAJJ`}%yCqapKZ&J1@K6>nz_WU77|4y#@*w?DD5$yRMnh)=j5 z{<_`IFTZ^(B(mI8W7zY#U!SGzs*~20Rfc)`LVkUA+CLuFt1QkO(PY0qH)T;D&-EG^ zCiA7(&9tz=jrkY7%cATR=GCp9aN9XJ^Lp1psXxE-LQX=n)Ly|_R{xDm)3s&zJ^Ig$ zzw?!TSl;Mbm=$L3y?!L6bu3$tOQ1AmjO$XCY~pVlQ%(N?+HUBfUGo>-*L02w(XJ&Z!!VxZCdHkv}Q|b77 zOFzjPtesMWEgXVZd6}QbB(tuzMz8T%*VpD}7ZhEvTj!QhJY)F4yJuSk225*C<+{g4 z#Lb+i<8|V2U*w0Pj^GbPc2;hBsY(Y6YZ5*B#{>t~O9{AtYpYjDT@fsHMQ%f)SkL)# zk(&m+;jx>twh6eO)4<>HBENWXrqEt{C|`mcN1n7dwk<0D&L<@o%8_!fRjwzJSryQU z-!d8un~brRFlfn%AGV6GUHxdXKQM5P?g1wc?U)={CCw=ZcK*jDiXGNuu#YZ)|9ou? zDL2Xvn)NyME)t^We*TJRyY>nP z=R8xQwHRfO^;!FDaOU6Z1VhP!iakF$y_IR=!Q*V7m#6gkE%VPa6>5|zJe%H&@`|CF zuPyV6BT3iCnCnv6$h-{IImqTc^6-codi0Uafok)tt<-W#on?1fy?WN{+0WXV!xt7=$xT>$JzwrnJEz+G zZ4X^+*4@)hKO`M3@0ob8>6F=wdpUB;bi6#|T(#DvhBmuAPYA5m^jBYUoh_JcXq)EP z^RcrbuckSQi|*!lz-e!t%3;lOHXZ+ut6;`%BNW_Hd#0p)M`kphBalTU57 zPDEWyzvw+AIK6H)qi(gu&y_vm|Lo-*gRYvDSXNB7C(0#v?QiV-v&zO67oEH4{f0Rc z-z?Rfry2-Ifzg418C^Y~I#QttfLh$wIMf5$ z;0=(2L>Pkj8^NFN|RDU1mf1hst#!$cvlDMH`12b!9sWl8_6 z)M7ndQX@Sc=5n?U4|#1wtwsERI>(m_X0b+6( zfp-9N0qc%oND$1e9%x7wadEvue z6b8Mi>%wOtPuEn2Gw>{J`_4^I&FanuAUv98lK`T50iFYh@R_Ss%}u@C=Pc1@qQ4So zDDC=^?g2G?U`vamOQztOH9(JdAZS{PRbcz}Q1rfwI62Q&m*ORDwQ6G@thY~EwEpi^ z=yx7VH`I`y)mZQv9*R8jRFfkE1B>P7%P1gD37nG@N^^_0;lx<9*wViWrdS)o7#0mZ zI3&=)ASYAJn-%q^`XnTn3FMVfEoKsD5p~IdeFLDZB#pSYDPnCS3uMS8h>08sZfL05*t>F1Z5s$mZAc8OuQp*4N*T zJopWNMNVJkc1#G-Pd-j936DenLVAhdN$(LF-{}ZZ!|LHf$V#er7}SEe?giXPw%D(?p6C3tx~8!$UG^0yLmZIoG?VIEK+%)&+M#KFjinBnb)0{c#@@(7 zmh#@S6SVQykGTV%PL>d<=vXsE@!&wr89%;eB=ziEFAgm`h1fD6&5*F|H9$9J^x@Kv zH{Vj2l;MakUoH-T)j;S=VH>xl&lG+*Gc&371>@Kf_!&20p`gj3TBy00hC#TBu?mn4#NSP{S1GcMQXlZ-tR9agvQ~#F3_ENVCSZDUjo4Uers;l zSC=)b-FkD*@#Gmd)z!iBOYS0GuEbiqNL}0* zDfJ~eX&~V?FIrR0Cn@>v^8}zI9Pzv|GU0e}64;7}tTT93Y_Izj`Vj<5??XffSVHK+ z-a}sm5n__m(tp|7{ffmmYQH7x08f&Ng&v=Z2`l>!&2)aDuh9R$@flMf6oL7#a35GB7tf^ z<_)j&tHiOm+u9^LrsZSZ{(}`~lGGZT2#4Pq3>a`U?%F6M&hP@bb5a|SN^)mg+gbHX z-zJ><{I&POM*%&o2m=rjHue&s5+s1=e=RL_0maVp3#f*FaBvxPJ&@bYMM4!K_UpSo z<1&qOS!w4AYiBR`E+iutV^$5kJVsab7A?$Lye2MEclV166Wg*~TRfLtuAOpU{oV|4 z6Ge5!B03IX%5JBMqjbj{%=mxSxUmn;j5aT@tXHaDY7Xn8n&N^Y<<{ zzL3uTydiblI*~cC=pgUR+X-yHWm^sW@PIX@S=<|j23Z;j@dmJVTbtZRKtb8J&$R;v zXxnAX(XXv4Sd{zAnAtK0qW}L1`;YVd8qUs4k z8L?nfq-=;R ztIl3HB$;p-=AqS|DVb?PpA;PS7}Ro(G~_PjNd0PPSGG5A|Ce`REw3CSRi#5MoLXIO zUJx~3QMGxfTuA5l;3=>cC0Fika*ml5x^;vpaEsqG&hoWeW%gED(Gt=#^T~;;%m5;vMCG8`P5B-EVuKajrW7C^1 zboicUvV(38M-X#fLhh4S*z|kW+k$?USz^(%UUQ-E_5(w159Vm=^7X6ki5Q4lxJt1% zPCw9h&iq?ZXHLm6@DOz0C+}64E{&d&w4(gBS-Ri`(V;n)hUHib{$W`aPl{)}lRn-# zrTz?e@qKHiZET64VqHm0qmWy$psU(I!R3s_sx#Vi^n&IcKS{78mCnhx1xwp zUs8mC5f%)P>RIv?nJ5vcMlg=E0#^|we-dL2x9iZ+@V*mXD`oD0iH44;0%uzR>Jt== z-{7JZyU>v3767*U&tpFIrJ~4N^vdG?Q@%2jTy5L;nE3N)s12*_ClUh3A+=7mozd82OL-zdn8270~ zT~#330-Qt)5Q9p2-hDki-@du<7$Ibju5Mha%V*6_m14HnvBgif3@R(zgE-o6>rWU1 ziL-sWCG_?1tsHND(+WY%5QRxDybuC7s>3 ziB_`d*))Q$Do|E?)a>m@!Jep z2*|%HPjzrx#P90nX6`zA2sbHBnL;8!vdARKYj6?Sf|e6Lk@h29$EobV4wC}cF-$o2 z2Zcj|VZ`^{Kc38|B0IbWVv_6*bD+nK9W^=e>^NZOkk?9x4%E%Q@1r zKL7TAFLm2urW5DH{6nvbdIl}_eV4NP6ke{y&!gM!)~#{5aqgq1qPynLjc=$+==gHa zsJI7k>^tdS{J%>@^*?n9ChIn5$jhHr{avnHLiPbx^)1`J*;R0-n{NP{NT)p%5oAb2 zhWieL&B8~sMpDub6n}*6_vJ`0X}>%urC&0KbeOM=R!d0ulCa3S^8}*0&QvFILsba^ zP4g**il*YXyK)D$X<|#cfgbKqs{EimIUKDp3q^4{_6V|-6*2S+)6f?Q_`9Kz}9-f1J*isoME#vNLI}E_u@t_dGW{{&(@1nG% zB4FO$OmJ01jl(-%frsqo;Sr~MOG`NNcJ`q zt7cb6?83PtR^vVQQ_ zO0ugUmH>TJ{?tfMBAfG^L*10Dj3!=)?glFQPc^@-a&y;FF>TXrI^?aIv!~wivpdRl z6j6O;tG(H+msvwsloWg;Q?2V+yBN+Qihk7qBMR>Sc}0Z>Hfdkv_ zSn4qia#xJRwrzV5Z`0%^m`R+W)cX==ZIEiP$Wz2V#P-N8AmAo%`1=YM8+sOKLtdh6 zheU<-!ammT=;BIEH}~QHHee}Wrc8yhc(~!@+K%CCPF) z?X=pbM6C)OXjRvyvC;TjggZcQ8w%qWq&UYLO%@273Y@$$ag9AbL2J9Q>@Vz(r50;g zFF^i`o{7d>leWNTLy7^6lSsLdgf}Rm?L4j&c*R`MghyiN^0M(H!5_f05@2 zF5kqDaf{Y-v}@bX4s_4>UNmr&MX3F#clC)0-4FA1T9xgN@frEEb!VuQ6o(DYESG0q zVP89AtF4NOm9|Z9s$-<(yJXrHFt0g?>!lkuGc^M9ywtz&E1^CZ zI;B6kXRBYWrRa-qG={`mb}9PDY`gPd8i|Z1FxU z_1=42r|$x*Lt>6kf~MTDgpW1_(J&Bi`RJbu<;ZBtiN~OmE16*sX|xY|yY7*#yFVHa zQp;yU(!Cnfdw@C=F`Qrpq?I(}4D!mYqFb${p!bLe(xlis&BBilN*yK|?o^Xel&~}@ z7gyJF$lmPBWiea;dNu?p77JB`U+-&D1Q#Ol{|Fnd4p{eDQ z2a_*sw#`p=Fn_1t{8s#U=HwF7&oh6S?TA#Y=&=@eD7Rb_%bnVwQWcW@RnHp8)fqkG}eooiQEx4xnXAlSU`!uh>1vDjRBfx`iT`e~=E@YG4aFh%c>eNsS;HXhW=g%cZ@tBtrD~=D zlrL|TT;5LdtO8DDknGD>5HFL1ERuFvR{d(bQP z;zr?Yh5OA2Wg+{z6B`@ML15RKp+^2zP!kuX?8UoLZ)()S)t=9K^Io4;yHc=Z)F!rM z>aCLVd{P^34%>G!za(n4NwfuAdG%T6%4yeR?&TRb7bbK#G6zjk?yTj%*7-80wqm{I zpue>twiI{5EeqGU`zCvX#$|%}XUwPxY|ycKB>#^FL-;aayIqwdq9j&s%`#lReED!& z>DlxYK(F{bTb`&MN9!*pX3La@xw=of)N!JZhp-odxU(!;X>#`2^e^cst%NYyi{LVX zR*WNTZ{jMJ)GfSmxpW;VuzD}9dtPy1%bSf)ch-p%;&b!&ghd+*lX z!ACE#EzhXl6Wpyeo*Y~&^b_{(gj?T!+F8!#(znVV{h?;eIT7)Z{!{bO+e}W;*h4+X z=ABcv|Jal@olUr1i^rpUu3Xi_{`(uerW;1SiZTAXeuYi{yu}m3upH1^9M)1cgy{E0 zNePK1n6|ebJ$fYVjVV5_`nZ5XZFvf7b2-AI<`tw?ecyixwP7LZsh>DBak@!x)yDd%o>wUc#~THN~EOkxx-VD zr{&7cPR3_0KfieT_Tki)>mNji8#je3QD353PP*9X-nl=E}K||((Z(Lyrcay-XRab#ae@=f4PaI$XU7&Ov zm;Q^H-r@wHVFx5N&=4TP?Q2o#XmZpT$p$n@EtD8_xIIS$8OUOn6^C(5&?%2!VKw<-CWP&YDd$3tpVM&W{%h+d+N^ADTv{gm%fDa#|1Gny z@MoJhPe4eh?B_Th?Gliy$OltHc;ii!`hchvH85ilB|WxkeCdVNBOJnW{);-UElEjv zKYRPs8I`WWgKVR0lUXR&FuG&Tk;4|8skd0nt{y5{CSrtB9ZK^(pr**F=;rNx z$u0*FXYhW3_(A)0@V8ukGJF{uNJN6Kj5M@-Fb+S*jv@~+!EreG`#ZnhMnCX9I}!y0 zS=n&`;;$-2k%?UoNuf8*kdD#XwTl%%vLU2n;8pxFR10=m>~AKVC#l<+sNgjabwN|o zuuI@pXMt1><(dMuFi5S@nnQmW@w6m+0+R!6J1~NKgk7RU1Wd*;GyvMfce}So@%1PX znewNGORa?%$M+|CcKI}=P2dDL0ErmG)x$#{+wwA67g+9npjuR=79qSsL(Ef(pWhi; zO6)04*ydk>Vgfb07I@Q>Itd_5f*alscYo9OmQjRUj@I1!(L7GHUd=Sg2t%h;n-`c1 z;LN~ROAt~Diot`FpojKK!E-|aRfJkOc&j-d(C=J5IjsIB6iTV1*EgeO$;{k}o#{Ds zKdvP3N-!e7>ly-o0G$0LI&8rBDZV#C@M=ibYhn-YMNB8C%iY)kp3k6pqu2d4T@HR* zIQ|UL=>x6|1t-(mo=#Uqmg>`Wixbu*JSoZ)!wS;hvWOolb^@^Bwxfx!Xx)$6Jl85L zmXJSKO9?VW9Kri#2(2|DIA7e)*PgWqp9oO3B;^M6qK_X39muma@G;B#=fz04y~i*KW?|ISA`4EP&FZ9jO!q3umz}0VZG;mYv%I zG5s1H$lI4AaDi}XU>yvEsHDQ{AJqkML5OK^oYkkF^{zbkM zw0qQhQnLb}G$O>^&FveC{`?a4ee{u35*CiTeP)a2p6OJ>;5o;EU&aZ&n4SFvuEm2G zXI0b#P$>q*KgEv0WQ=x*?nmSfPPMrA_AJ7p8DJMT-diN{V?-1^GSXjs&<*%TL{vh) zsIMMb&AA?4<>tp3_0f0(?81j`0L~=-hoFiWFKl6ObS2hZ`LzRDy(gx8KTF5}yoxlc z21ZHYqYv4!Mf7ov&+GB#l3L^h)PU0*i+n}q80UH{iCDO)QCzVDj{&JoeH7Q10sLp2 z6A%t!hs03Q2R1!^CYJH#1J#0u77&9;Tlmrc7ZQ^)DfTK?gj^rP0&R|RSt;2D?9Z@z zv#@aaXR|M958nR9AiK*Dz%$Tqt~f_D3$i~>uTf)Q$Cu##m{kBQqH`pF$on<=`ea~! z&GWwpurm)J%N=)|AOMjtX_9HEi)%|) zS)6Fu1D~@4LPWoS=P;^4@rje5?z z*v%JS(K3Tgz+1X^CXR3%Uo_hTf`xq$41`(K@eN1)RngV@{fF{QJM}N+x%{vrZrJve zS;2S&tWt+p(nExDCk$sJ5$wqNr7n1VsO9uqTTZ`Wz_kZE7*cKwkrM)8=r71H7^gOe zW&t|%%0qW==F+FN)k?vaZ@1WTbwqf;ajFY|PqD`Nuqxe6d+LEA5Qpf~H~bR{|w zNMVds|K{`-n_s6$lnlT9YXF9f0#MR0!&7prwMi+A1^Q|G%?e3r4R)O=r5D5NzH}YE zPwMUAV$N(at^q3VkAMFKp~(i_!l~KBkuLv=;~$C@b5Qv4rL&*>t=A3Itr20-h1ZOT z4;Up6JB3Z%kBbm^MifNGCG9p+fU$VNIHI_Jf{uRm@=bVwSeIqQF!ub2@or)=jW5+g zF51v7Szir6hbe9UU3@;&3zb zm+*5eP|Xx?aK)hg=kCC9hQl&l?Gl2!$RvSbm@hH*>1x=|7xYxf28Ff>qRh;nzgvICbe{rD2(`vaS4FK zpx6LHCJMo7pNue+uzlW;C%Bca@vTQ+N1neF=0j~_oKJ}x(i1}s%Qe!>ESuo+VC z-)OsG9;tjy@hrFYpG_@nI}lm{Gw?cqX=17kxba8>hGOZ9LkS`>rAbmx8v;chV6CdI z%vJI?Kj%)z3y;R((ovh0x}(Qca~(Y`y}!lUv4r#|^1iGo$3>+fYWP#^)RrJW+pE)K za!1|;xl4A*IYgbBx)2nPl$D5aXhT2|$q0%_O2%DWAc*EbjK9hMVeif3sb1T* z@kO=U)h@eTnurDziV`BCwo=kWA+s`;DN6_$c9SM4gp8FbbI7pF?IN?vu&@keEMt** z`W@F&yYAaO&f`2zJ2Tu}TwesttL=%q+9q&C1(km2 zuV13es&xzP<1*Z&Ot1AfY>j)Ac4I>W=}q}o3MIHZL@!Bs4%C^*EvHZ@RX{-ncKy16-W z>QF0gl+)U<^YS0tsFjHtakXZtB)~kV3#N48knM-B+DPVXZC3W7mm53n_RPAT%19!* zKZiPf56Vf+6k;c_R_g==Zjmk<1Q#HHjAEoDiNIn1H^P9zM*#XPlJ0ywjYMcQil=y0 z6w~2!LrD9jn=R=Dg}uT6`kTPfL=d+TA`7f0y30xiJ&s`u-j}Ldc1-#O$XJ816L>5O zhW1=yloo+$F45f1>XwL45XsbIV*Ih{UO=@6aYj2PF3|_EgkTUvhr%pkNwo&40bGks+n_Xj5mSFl;Ui6UK%3R+mlZ%5uW^e z8eM!utsJS(b=(k;q(~qjTctB%r!@SNxKxEg5GK6@*+1h6x3>iKGDz`}M zFt#ee+M8TvoB){0A$naHI9cd1Gu7`x>^|6VL_r(vAbE&X!L}$GJRKTiLmLrJ7&+Qz z6#CtdAY^kNi-00R9duQdMnE80!+;!Px&gOQa-GmpDx98lnsrG0ZBPV?g#uZ(^78Ul zP+cK7BLcMq*njXY=AxzeNN|yF$&m*>-7Wl;%ouloD4~K$g^-lGY6_}wWKtc`Qp37l zkf>>H4k3jvNM@jHQ~=iB9d*spj=%(nV*bX|X+bJ@;p3YZ7L8sd+XKp=V{(HSGvG*` z4;~nfd@dilwG(aHGqQOl-i~y_1Lsuc=^|j30&ANEu<-&67hN z>TGp1JCPyZUSA%t(*rfFM8p|nC|xK-Ou7n&agGb2-E{-~DP?8u5P-jj7y_Rf(=^Rtnir)#FLP+k47W zIy1PwutLz7%N4e6l_3HiFiq(_3K}3mW9D0>@K9+wl2$VG??0am9LMIxvrI(t`PZd=;h_rsl`?0F)13eO8d z$hi&lIh0Hlan4a1B&|^xWO)~xXo;+BF01yH!lAHlM>+}ijwF&hj7s$o*b!r}VgIe; zpfO+r`Svf}h~<`neK!Q-7Wd>g)V@d&h=l2gna@5K1fq%gJ!GC66vBeBaAc(Y$Vemz zW@vZmjP4l8IZixdPvYxZcsp2h@ZE@%4?zoX+~FnW<8Wk0I)6K(=UB_eTy=oU8V8jN&@6iYIs7C-}8)OM-h>);?6448!*LCy~JtW!ordGmJ!hcWD^qBgmK* z)Ju@AI=0rKR8jq{Rrp5|# zuiLpbx#*hJ+8v9epo?@rz`y#OSjQenu_tZMrNOBU8Kh{qU#md@CZSmt*xH5AzK{&T zZ-NHo2;Y!+_?@Cmvb_x(jz-LG8Rj4HA1~T+TMGHZHU57`5irPE8H)Aah!)}xxW}iq ztRU4u#0>D{ceOJ?H|;17Dgji3+WiwGV+5ilVW>$mFjfqbIEaRG7&D-DZ_};xGi-ai zo{f&fRxMy->qJ;gphP5+OaJ&o`91x+_FSMG)E^M;hQd7G1heonus$V3C_tfC?X=*8 z@p*(a(U<6G)3%&?=87NSNDm{g0n))ME{>WZI>y0Ynezw^!h5sQWnd}bvKi3(K+Gcm zGjpbsiwlX(0aMmt3Mo-T024u;fl&JQ)vFayHwN^a<)yQjI1+qWtzhCfZFg-@TO=Rs zTWyho%9b!;TY`sz0`$1&YcA=F_mES6F5OY_8Bmwjurv{6SaJIr&Jt2sry^T|q##{O z6^sE~2u92qoGg%Wnl^J|rZdp)JTvhfVBJn?#gn_#fNoFC({Ag)noCz2IXnx!*~Nlf zgZSXno5xp_IyyS!AzmzT@$)(i!||22g$Y>g%AUXeu%vIwXT?c0>gR+ zn73b<5rV$gq_%;M#-wKktAK-QZGkk(qpFrXyB(ZGDdgROOv`>2s zh#k)UPbA6kjn~%Ry-~Q8F#7Oot!8U2dJ~ENEY6_Fl%A2X%e&JD{ReIKT74JvNr^Ot zu0wRODR{*|^hJBY{}vt0YfIg#8oLUX;_h~HKcJz+E0b<|O-B2l_->3!1JuSIk^%;} zW3jP4qFP(f+IL;zuO>xeA3~r&i8{cBUAz3jH-b!R3fG+*g}i`o(PE3Gd5lymJzcAL z`Aw!(puR@4N{MxRPlE_j6h*H2dWolcf)|I#C%c(hdnpaA{-{xxw`{FEVqG%sMiDj!M{<1MKE$UoWu+Y>=Ynd>x}(H zaO*~VV`Nrb7Z2UUHXJlF5E_X@ZXg#+p;_hb{GQM7Gy^ipA* zZz1d?sR2s4x82+#T)t8BY3#Fzy3xkna4E5o5e<;BH4Bctnm~Y?V)F(IA`8>_N1IU9tTzT<8?$ z6A%Q0Y)b0%qVL^pW3x`E;qAXI1L{xXzMCc7|MAwDJjeiDn204~R3eIJ%)T!Qlsj?nhbHjqraw}`DweSB8x41opYw-izSFKzpqS|B4S=S0-?WtHK*~*flaB}Qf&Kv6T`+5X)%s3B)x5NcmpQe_)TW;{}1K}IB za*^!z2QLH1;< zs2p!lJ^ts57LFjuHaL*QH6Z_X>VxZg+cV!J9{N?&!(~z4U9ZZs+FyoBhAR__`qMKn za!f2PmMMZPO^=5<>z=~{&2z^^`8L?5yp2Gc$wk_OS0!;gDpU2zBc;ND3e&e+7krpI zF1~()_#Mla4AwU}1Lq+(U?wvyR@XiOW`tAG=-Gtrk1@ffo12Hefe^XaW)Hwto14 z$#fKG6B3IG$Jk!S8P~@jNIaciS?v+oUGdUDgyneSjI+RKDus~0n%D&MjRQFD z2Rk)MG@04jd`v$2>2*{e{r-mdoCaMR(G@3-1}uscEm47>#2WA3o0+$F#tG)!O*mjr zdD24nGB3-DF!ki~tM1Aq=+XMVS)&Uui_8a&>9TgYEG@)RX5-op1 z(m;|-XfEjJBoajNl`6!c%zhPC4^RaS%_51OPCMWJQofb9(tQfmT;}VmZnK}53Nz+a zu1eu?;z$U4PS=*tt}}=@7HTNUc4;+QOVa&s|NhZ>=i(9>^XL4-$Np~nGiRkYP2<-4 zPhIo(P$ODRRyW_iJ7Oa|e^2UGujjF^E@`_h7xMjkNuD|>zaTz3i#ajqKh7&DS>y`g zJAw?L4u^qjr*g*Yb6sQs=t&?$x_bROdO;LJ%RvuAj?itj;Kykn@Zf8As0`Dx)R&!n zb+V(^DR{|)18+ct($++}wbZvI%qZVVNbIti>53J}i*9~;8#dz=3m(^eG#;^6WI~Iu zv|);;F7>xtjwjo$6$oxtf1V+iiF+cg+O5bHGZd~QZaQ*;;&)_)0DCU|gWuKX`USQ| zwgUVQJ3#{Ma;ZzDEchh3W4HR@_>1YI63=}DD$KXD@@?FBML1`a)fI^5>Y|mdJDVQU*Cp}QrBL6HBpt%s)#?4OnIu?p>V08WEUrqVC392 zB6U{%=A^C3=DO6ts8`Y6Cf#p_f3Or|r3P-^zqdf3W}zZiWk69`XX+}JWT@n$@cC3Z zd?7&03s3uj#z7O)2vq`6i-yr8Clm|s5Pmm$Mh1ZtXeZqJad=+c{I8gXr>smit7?i< zBE3dLY|S5OJB`$zxT7S=IC{9_cu)TlC+{!Oa*=C7I_h%WVuYK``}Nd1h)7}k`X%Ps z|4KT{Xt60Q`;dAt58NYe3V`d)72^#9n7yT&m;hiO9W%f&c#uUPp}UEXfpF{yQVGJl z+N_h6K6rWMKW6)Z^rbpOND+3|ueN z`)ggzg zVh+_*Bw$O1TG8UrW|lOW#u-cQj2YdvI4nSdDX8YaaIsUFlTXq@){Pvv81q)$wd9g& z%A1I)RrTI$^wk_>WP%36;Kpt*4m%zCm!wpU%YL`0_p}A&BxB591mzu}ZE!Mn& z$F`-OP*yfswe4Pgio=ZKo{n56zOdJ8@_`ATyx@4F)3m;#Dy-tuPM_S|)^X`E8_if2 zFK_R;u91<(!9##B=e@_LQ|l1~*VPrMX)rAG4#@1GXe)^kHDK4EN5|(im*XAOeI@uE z{<&`etQs3uY}5-ZI+wxvAA;FVFK6j3VQ^riQ%!QfUT|g+W zUJcyDF*P~4Ex_`&aU*dRuNM4Knp2P(8QEzlYaDRG>yA0lZYRFn{KgdvRv}wnXFRH^ zgOr)&^KiLiQ+C!k#v>3-{v|`GdrITd^ua@+uVI2tvxd51eYE$l9T4^zd3O5dhP`7J zf;)2=Es3$19!xop=5Oh4>k`<~i}^WJ1~`1{E9?WVT)s@f_1gH5+x)V%(yyte;$cZu%}XDn_n-9{+ZMEDLa_rs@8 zMX3Cfal~W@0=N^8z~dk5E5YCm(kb_1J~sr?D^N5nfUtuC5PH(jh2AmRUA3P+z=pJ4 zUS&qf?6$w#Jwcsk4%v}^-fin346CpD_T4)I${-_u(@su1u|8>`6emCBA2^yO_t7pd z?%2o-!>w;d4J_(ERBt0wIXs}6?PfaefFd2yR<4KeD0s5jz6QNjKI=m)qW6765Vt=dLnqFgWg-zHY=*LM5$gxg!Z2= ziv@VQEOg_WHD*+AE-5V3Bk~ET++i-jE~lwJh~1GsAkvMe<_w+^bOg%L>I5O$C0x>l zD7pPGh)^&jSM@ z^$r&=zKK=eL9kW8Ip7nO8CEnSl))yK2Z{Z>jg28H&}8%@3gf?mnu&;Le@^^<3z>gS zoKB;tRWJ;YK1wr92>1{oppm5j?=cx|gcyz#k}wSh#Qr^d@_4)T&zvEw4cEYwX+mwv zY%7P5tsWht?K{Z)LRXlW$y*Ej&~^Cg!{|35ate&mpv_vU^}FJGKQ<+`Qt{xy_dtIr zz<7>>Wf2;W+g&h>O58vrQLsJ>mNR4~_0ZA-xTzxE8CIlV`Dp-J?Sx|oS{T?xg9RLx z0P@vc1(SSHk;Q6|Hg$+)SlH5e)42X6D+$oSu}tj6u!;OL+lMi((ZVbQ#k6LpU>T=1 zuBdSkN*9V2gx7FKX$x%uw=3Yv+O@#kH4s{rqv(Og;&;{BrSk}I3`SIMF`|*znwHu7 z0d2?AbeWw8KR)8lY-}X`iI!`hgd3oDnrSABjsz4X`~mHG5Q9YcX5BfUi;;u8${bVA zEbV%{j>!}uaUfFW_jc^Bg`7`(@8$U4_4^7rXg1nuOSfSpgBc^$9W_iUMw}zm!=Ry1 zgCfrc8@e{yn|d9BH2&G?`z&^Vt-C!H<0N{!gc?RZe@-`(CBo}3>&eK5FjT`SqoaU@(~Mv(5QI-csS=PMn2810|D=|UTS00fFmTy> zrW8L|ons|bvBSaA55W~r)_=VO6-J@DRMcgOZV737M;U#US5aH(@gEo2Ca#Ra&-Z?I zX0yADU07jj znw&?5D=kC^wZ*+{kt^m8%IN|~Eig)EIS)S;nuWVX_r64{I(c^G64msJ3q@%u%T4B% zlHw$4S7nffg#<3DaA3jYfr_b!(@lu-C>lMR_)9@iu@&bA82>d~KPj*h`-I;R9sbpl zRKjn~?l61&!?833qa;_1D#zSBRQE_z8-@%T!#wOM-~8Zv-!`lrOCH{N!LPqk-Urz= zJ;oxFDFcMH4`V7(@tdqx&T~w;LK3db>tJGZ*#?$Bc`fb^Ugc z0a#>yP>?3-r=XUJjsHky_Hn`>5{4XM++&YRg0V~(_vqLlou;}Q<-w;eM@<~5x2yy@ zumL>~QWl6)1K0o@p}N#+lxMMf2S6GlG9Ks~hhOExJEE$y)Y7uwG{XnFs#LgCkPV3L zHlk(-rzoLYfb2Lh-Hl?cHm31;ZMA!sVR|pK;C8Zhg0m&xk0yztvQ2h}q-ZJ7{epksmKqWJM$V9VbCe(DE{s?6 zY_mO<^JAypDC{l!S{+(0vfovGM6ol+a+cvZ~U?-thg&{vSdtd%s9H5rx zNe|I=Ymd;6t=q=uV_t$jdjU{rEd-7p%hURZ!%5;gP(8pCnzILflITuZhLaST!@2BK7eB{qh3#rOlOe%dG-uKnH9v&3breI?@4 zYh^~Q?mL^-p}I;!IuzRQ%Y1O8h#DN}p$9aLDpL}IXJfY?^8z<)P&Nq+b|s`~TrY9) z@EkYbxFnyW)Yp#MWgAR6(lKxFh{>e{uiGx%mT?x2PB zpN^6PYX|7R1z-V#A*z+wi*7Ku%y6Jf+m5m&q}Bf86VoL!UlMKrqF6FDjL^8DR6_OvWc)b4-=F8tMRBi*qP@rN zVZVR#sVPJ>ZSF6>5E-uf{{F-;;0-C@(FQKdO#e)zxZuOOmtOwqC>?xE6I!qeO>jgv ziy&h}iVmzYv>LGx$}w78t|G?y_nyM7BZsX}lsUpBjK%(o|r#``FJnnp(Mi z1#(&u23vuL}(YXzt-GV*1GQ5y1C=;mkr@avWekJ7lPWDLS{oq5* zB^26+7+-;SxLoF+!8KT)!Xsta@JM2=;DS(KJvs2>6z|*DcMzKlsW3RUU~`?frT_fm zX>)NIU^apZv=B;m<$XWd74$#7$4(|>50In~U|9c~=MtBW>mu~`Q<=7L$(cXf0NN+o z^0xP2ez&XZ07xK2IzSd^6>}s5PJ!6^_L6a`^A`Mky=@UnkLDhR5-Fe8C(j`qPqdc- zP`oZUj4s5Vc0+>@TrrJMc>?}b?RXjcW){e1bcFq@E#>a`d&!=EOe+{~w%^FL-(S-U zZBR)u4`8xLPZks)p(S>J%l<05pgzc7C#Bc#U(`lPr@5tsce-W8B5d-ja@q)M?7^!b z+6+X83|xR#9Kj2=zkYuX`F^eV(?&gvXkf`BEJQVogf9Sa#X=~Mo0Y?U&7GN+!ZL?~ zsYeWc`I7I;(sx|plkusg+XHjUg*HfT{Dpgj()Hle-ihLus7+tMRhV+QOkC_uG%D%uWRFQ;PlPfs$Z3Nv;v&^G7@{JSJ~rj#5)E? zAS85#Lv^C?2)Q~0YxCN8)P+Qy#xGECb4y?%=Q(;+#w+M!%W&e^)5Y?(@^iZ z^>yz0?M!sM<=vB0%ZAnic-;fJo?A|_w>V#hM0OHn{Z0=Lgv2GRoag8EaTnf^&0wT7 z+I6f%S!e@)>u+_bhehJ}_igGmGHg3&H2pzBj@*`p)iA<@(1K~_B$XaO$O^oh3@^Bo z1mZ5`cP_3zW{U^8v2Eh)&SwO!sQLZ6d%35vlgYkcp+G?Sc*>9m`U)m%YS~=%7iiXA zFnh;d@u9CpF0)w9elU1WRoDp;_8%IyJ5Av5EQDf5w7&|^}o7ZTH^W$gZE3V zwl0T_Oa2x<-W`1!!YX(xi_=F#E^pbseW|eU#N#ZqD|5;^2O_>Z0manNEYQ`^r*j?& z-A{|P4p~UK*AB}0+<2aE2^%R5s%HqI+9c8je>h4m4Nf+x4w zvYCcXD_*KsBI;EbMsob+3`=MTYMhjlLQU6I*>#N}SceK+nBReU^=e%5p{~a9z57YW zCCA^m`2g(zx~wB&51P=)qaY(G9b5%O@~4mSsJ7~$axzsuaJC$%;5?e{o8Oo}-}Quo zW4y%Tx@$$gTB!EvGw2()RkY%c*Inu{-8lA6;yq1zqTa=JfoyO0fy2ek2I`eJkJgt} z1qDfPrZqh_|2oz<`K;UODDRX4G@DQue3;y+Zo9uCr$-DM;ot|V11ln~U6j%wDf;FB z8K+(F%jg!XO*w)qo^76%_{R^^=6n+jlCia+O{i+Fh??O!I3S4P=#5$xinowPz@sz6 zrp?nfw%f5?RwWkuhRisuc9k~_3D@i`vLE*Kw7-izA%a;h9#wvNuh<<-(&ZRcu@YRd z(=4I&yaOk*CH)FluO4JPUaw}e7)P6`FX^-}36!cN)NV+ZE@E;LVqh}rYe<{ITh^vD zV$dxGbg&-|o*M8gYS8wMA$FT}S4(MQiBb~CGX~AbRx$>{G zA5)VJj+bTgD!P#0irHltwNe>czT7S2e@Aa7-!y{^I-%tR%CL4^TdDI1&A$-CAi2f> zdfaf-R_%6p{_>zN62f*#k?*Kmn+EF7BB_;0P!@ZaTro#aoOb+G%D$X&sa46Bix~Zz zb_?Er63_dIagjGXyN_yOr&e@;bi!|B@V<$ezNDX#+`B1~y1~j#&QaH6V0fahol=-; z=;`y|q7q|I=GBU8l_9*w1#R8C$e}K<9{+XK?fk#N`g|y6x&l3%VK7M2U*E`K*xJ;a z26WDV5JemTQCIyD5;gGodv_m!LW%oS!_w_*1w0<iS(&oixoGN1{Ipuu5-cu1C;Tr3{Jdc2@w52% zNih|QD*E7i(p$e0uYfPA8!8E+zkSRnqI>s)O1oa_pH)A-?q5_z?wleoMkc-gc&1-yMS=_)v!*z)FhY^oXM=%#+dp87qR z>)QT&9UaP9zrto~QBv;w zIIOlVDw$j+G@Qe2s zLjHqS*Ic+p;=TGB-EC{@+aa{EPE7IKVr`gV&7#E|vrWFU8)E}C^7udNPd@moB8%D| zEEc<@KlWe7$qE+ zJ^0|`e<8^H8{&E6J^n&m7^zEuKT9F1@+3k6qTG0+@@EQr!*OJ;&=g#V)Qyyb+;+uO z7sH~IgJ^!U`dmtkBPa(1yCQ5^qvT&&e!7gp-q5@SejtC77B^HJJ{+f~S?ZE>yUb`# z-Z#+>6cxrWu9d)NAax3wd{3FEZV)8Y1BglH5dlv)j+u8LAnpMM9i^V!p)y2T`gc@F zzXUvI?rmQCj0IPiN&1RW_xX$~96%rreR2h)S3q5s0NLF@=+b&ntPKRi zUP2iGvC#koq~2kww%aN)R|NILmxyvD!CuCE)hEF2kTTB~7EUm|cnymmwoTITqk_fd z_CG=MJdHe_LgGB4%}$!j&=pQZu+aW{8A&TjP~4;^Oa8|vgVf|1=q*HlaCY=Ga3dq%OGSzx)}wGllzRb?dU|{BL!UhaB8bKur}V`)CKG6qBPtK1 z)B@#r^d)VW#XP>Cppl5itIQlWR7c1{!S3F4cjrZ?0hV(c!a~4i2dLBm6>aFS+*qE| zEj~iWnz6Orxi>b}83It?mXaFaL|D2_NJeES(<8Yv+6mu-@iuW$j9K4U1kje9^c@r3 zzjek2vvTN#g=)H_6FgYD?lj~@$((j{WU&zKL!x3v=&huLi8hgfQf?Z$ZOJDm)53wp zMIbxhQ|{f1VTm`j8AO238y z0CYIW@HD`h32Of=IfuqGy}uH7U-)>O^z;A_tWC2dcclflm8h+ti9$D(8-X2YzEB#{ zLje-wBl#B1aVRx;xrvN0{U=tQSrr$@JsYvQRb zkU6LteRFT6SJ72;2LYX=3w|FMPAkJl2X8DV2l%)?hAOud45Mr(#Hau!L)1+0bSOjj zB!wyhop$dF`AtA!nNaGV=!EoSv+me5;Ck9g@dx-}NRWSBq!JAH96q|E_R0wj4) zZA1;PSLX0{yQ6jVXG!S?T%!o+rP13+?hmQO_?kOTPugcrp~E1AjMKt*Zdd5_qJ`*u zQR~cjw=hvvWPJ}3G>Xwy)pYCAQcQa+Y1s0Hv@7F8xQV!eQE(jRP})NZ9TM0izUS¥Z~lQ(FBdE;38hIw%(Bnp)1mNOK@c5#s5i2 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 JeC&AkKLDR_!H56= literal 0 HcmV?d00001 From be38bfe204284f3cdaa7c6725084c478466e1873 Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Wed, 22 Apr 2026 16:59:44 +0200 Subject: [PATCH 2/8] update summary_chart.png with new version Signed-off-by: Alexandre Chidiac --- examples/pruning_demo/summary_chart.png | Bin 87846 -> 93033 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/pruning_demo/summary_chart.png b/examples/pruning_demo/summary_chart.png index f14be7de3673b96c14e1f94a1547b39f04c49944..cbeae09765c4427b7363e8576322d42c65b699a6 100644 GIT binary patch literal 93033 zcmdSBd0dWb`#zdwT%}r;5{(OmM2Y4R32D@<5verOtkJLtNu)`$G|y?!oTQ>uG|x%% zoaVWGT;BKh-GA->_Wtd?ect!8ih7>=xv%Rw&tp38CrSzzs3{pKDJUqYWiFmmrl8n1 zPeHL|^Nwx!n}YYuC-ENZ<$-!nwwnz$KKG|#>C3<6gTe) zZlPoU+_bg5Wh27FWAQ&f!EI%2%u}LmSA$pi^VY>HHWU;Lf0O@jG7hg(rr1P5A#?7G zs$+D65%+8Bm^{#BCld;Sm0IVX+3IQM+2*tUm`{xVzowN2>}no4Qnd;X$N zzr00S>3yfK(*DnPM>g*m!zKRrk0Hf9@&ENTMa0g3 z(zgH4cfOmp;HLfe&)t)EKd}C5q zHkUV=l5abn)vR}4>yN?OD=!+WtL4MO!lq|uRUcB))9u|GCt^1ecdhi%NK5)#%Yt9$ z)#8==|8CB{fvYrNWDXR%{gWfLs{hC0uiluFFE0;X@PAEVV4{^_6w}QEm;NAuS1K)o#$0+!^C;+=w9U!7uWUNbG)uC%Pi}5 z@A*)%JIcm2A(!>^!v5I2SuOe!eU?SLdS{+p{fqrlbaZs8ZE8ga`UVC}>tp2G(yl$Q zpX^F5^`PaFkkBK)cKv#!n7DZVtSH*ediRP46aH*ntl4+;wIZDdnK$i34_z9b`a`O>AQk&%&^E=$&h zzsi~N#|b#TCS`A}`#&qMM-eJ|Yjx6gkq@(vSs{<|grZe4x7Usza5eXOF{Xj5{KxO4XX z2M^|kW5Z29zt|tGTX?c|Y_I>htEqH&6Vs7~_~pf3Z@cALlX@{;Uf!oqo_wF^%;z_2 zI_AY9s{Z!8SKX&4yVY{7`(<@{xvJ6)DxU6q*5B861gmoU_U*QG0}r>=Ul+vZ8dRM6 z{WSR8Ru`!xo__rP_JZAH;eu)DBkGt@sxCo~fBzjST5LZR-sdt#PZNVysuoh+e)&C?a-|nL!2rba_m0P_rLFUtDhflr~mu!NGx1{ zz1=0XTes5irAAxhhpqmvUcJ?KUsI!E;BH{DDtI#(=3HaaRq4kS%(}U&tBWDy>EPG) z_V&yojhWIx|Kr*sE^Zo5{0F^^MUZt>pad!#huiL0kgG`8nleae~pTY8d@3*Z+?Bsn9s1%mrC8z+&oFdVIt|( zVMYI&`PkU;vH{%W?j)!uJC%$alv$Y{SHX_XvKv*$ha9`_PfhWm@i{3YM|R^vW3iBX ztDZc0LP<-jp`h?ws>`6_`S2SL);jDo9z%K_(YF`8n})u>mCa`~{P_9h!MXAG-HcW0 ziCL;6J^lUBIIs%JZj)~p7ae11hu>vn%&pGUa&dDjOct%An1r2qu+8LK#2JRC8<+tl|w zd$A2hx(f3n-@cV^c6M?~PzV*7o}X7gckW+hWo72+bJEiB?i=e``S!_e@2%X^6J6Af z=ob}W>-CS0CjR^HmamOmckHap<(0o}Tvcb(j2m-@bUfl!ptJ#c4P?fX{v1C7=p@ ztjr+I42AwsrdhLs_IpcyHySpHq?{Zf@n4^I$1DXL*N$Nkwb%KHYF4qQr7h1c5l4!i zi77EI?uhI3m%|FqCi0;oYWgm}$~aOum6o?rGu{Z{$#|aE~A)Znu$`X%hGg^fJM;HpFc^xc=+hi$k*4Wv~q5}VH7YQdLfBZ@?bly z0QKhxM-&mK#U2lSt1hunq1$J_eEHH=>|Sg?*7Bye!kd&QY~ZZQ0G`RTsd_k&k|$o{wjbN$S?cY(akqbEvbecg zuscaB%k)cCmFyl*X;Fs>U*C-nrRLhkv}d2TXG9by}E6Hf>BG zKhAI3@Gb3HDazUOf#UG0H#A$1>*Od&dC-s(T2NR>&&-^J3O|H*5oBHb-JV#{o^0>1 zX+#F`n~kJbu-223V>_f&FNS-ep`#NbwVZS%L(cmiz76(&_4;)@wy^^CK|o6Wgvi!y z+wk#Z`z!raQ1=_NEwrikojk`=y!vj>ajmFR#x;A}_lR8xsV*~A54b-w!6NC_!B>md z(^<=_(Z)G-+gNju58{&{mzZxqu8NXPUb3`QYSX4o2^y(k+jj1aka=}z_}d#Pg{pUr z-L3riTRnwZ(O?_#!(<5p^qgeGoo1DiwX*sK2M?p2p>vXpsi)#8i0I6BV9>6?8D*Kb z8s#v~(&9I+VWwu}`z(~2sGgh|1uyTw#<{k z>}wz|`j^-3YN{POlzPj(NG%BdBj0Cb*$f&$e- zCp&B|okFL%x?XR|l+>c-OWSFfPaJ<6H=6PKXHACBksPa2uMWvu4{v;3($VJrmuuK% zaUy>*)1qC#!&XvKGFdbIEZ$57E&iFUqM{--tC%LP(;FLnBu!UN?pc@fqA5*I z+^~jJeaXVL`F3t<@hc5>d>kCoDzOS`gEgUOGKP1YofA=5mTTSD-yYY_rn_PZ=+73oE6&f)FZW_H7R-AjfByWVVR3*TAzF0`in~>xaqE+OnBAOahk9&-9lGvR*alay zxp#1Po23>S1@Ulm*N_HNZzpO$mZp`gK04BvDBql_SJ;-RP&02BbHST6CforntqH|D z(BEKXpQKws{bav&+=E8bteBV>t?jg|Iyd%(irBp?|MW={-FP%@Vtr+j=iMq*5BcxB zXx_K4MIL!}qkD4Yot*N}9hzd=B^EktXqJFhOoA3#(hX?tytnK$U0!3Dv+4B`WNa4| zz3_D94$#@NlOdrS*zRJfwd#wL+6@jC{_o@1Jj<@Lh&yHS^Yb^pNwQgzpwu6|&dZvR+|^}M*)+H8Hy z(%{$EDt&GQ)>(Aqq|0_|KiEc{gb!k)rEY4PV7EBc!?C_n@#&M0Z~xfxnB48bE4RDN zN;b@lR_yy@BW4P-L%g|ux!kgUR)i%lv&?r}bE>zf^5Zg=mz6y=%_8B_!q;8$U^`2t zc~jDBsUorn`@8@Bb2sxeZbfxw*sou|nnWiH>P^!%pRNTjEiY>wmJhm7U0rRroExfp zK_gkqkeY_ZUMsuodU{PD@7tEiEFtt@f#Vy&Rz<>-?<`E4l7^Mm#TPnyNlR-+f3ol> zkb1O}_jq$F|A#Sm6k9u|TFt3Nz_dYcR=~6$34&KYP$X-=PsvQYHi&ac+Fm^?vjFyK zBdUybYtw!-N8E^`_F-vWOo9mxlU>q9xwKy@DlS+R&iN1L-I*B(waLW_e*bW9Gd(M- zTaBSka*}%D`aFiP0btlWJTA3uI} zf(5O(Pj+|Y+RT+~XUoxins?DnW93_}>qi6Td&CfTz^_I{Yn+JDNuXxVFQm3MHN>mLbo;g5+-79rx-xHf5xYMSogq5hZTU;InJKoZp7S_=r+vEx_d=9k z6g88;P)x989k5i$K)P146Z$Cu>H$^9j{w5j41E2LS7d2gT3o#O8+RpJv0-4XgZ7LBvz1 zH&NUb_pVC;hxxFyJepc8S8vvwGF~^o)k7;mH$VH2KmM@&`RNIj1f8Y~K*_#hjd*2g zw9oo`o45OhhK|2j@Dl9$#^TU%`$|&}uxKMW)m5}8v^b}9EG)@5QNBZGMjFS;nXFV# zpT6tk<1Cq4g4VnIdfsx7L4f~7a^Lo&*$i2Uk zXB*GzJjPou9C1`FA&THIV3G9nbo)_jYimC1zKi^p9hw$xnY?wockd>sGiU-`OpB6| zQW^DBAxzA~#XBGo74Qg3xsRNOd(!2%=U)y^JElBx&tq1TU4`XSVd{x$0ANoaKRzLza(s`c(bvE?xM#Vl8X9r{27vBaD>`@X z++jpPFZX7fw9U8fuNDbs(Ny)$mU`WX07#JRo2aO-@`|_$S!`K@aoNAVm zTfV;=fCyW}wY70S>iFz&JDdpA#tVdU6*|91i;UiP%II^om$r&VPHt|zMSFJ4Xh?Oa zM##5sN*t8pzqQ%*kw&EO4heVt|V0h`Ozz0!hcoX#M8qW|&$ z77^QvIR7|IzNK!Gt5Z_w$PJkaMn_fSA^`nVzJLEtNlo2|+YH5`?}gRUbbsZSFP!g^ ze0}M#l=AJ_7KH7hynV@b;i zvZAM>i^6^i9GGlQ4cDc88p(I_+v%zR9t{XDV|A&;>rQGZI!gtkZYg1|^H)0EH`Z|a ze4>`;Mn_RhPgH{`bycO%xUVn8{{8pg%+unlQ>9K5xr5KPE8-YCt^TU0b>15niL>=( zVv%!I#W5~Baym#nsjwkIHU4^#Ws_(beRi?c8Np85SF5Y5V|8L;Vhsg%Y{aKOA0%YT zZDstuO`&8fw7YPMIiv{;;)E-qDkxxbZa z%!#KtK}{Bd&I$2HUn_47p!L?x)Jj@~R6u@ey1?doBWU5eZaA=s_LXCM@IRdScr@=A z@qSVh#esff43hx(Y=?4y%L#k3H)+;)FDzPLHuEUJPJBmoJ}^{~;7x*(U+4jZQ?rPu zvbnFOA2@iB=O%4f)fp2V?UcTm{eY8vosC^iKG4r@2I(zsTtF>iS$BK+@}&q`Y`V^g zGz~}JfA5ce{o^jk#jPEuUDuZeX_nSkx;I83HfTVEd6pRw@sI0VqXrF+CQeFl*xMR8 z5Lc*8C;V}ateh->+nXV{>2No{hSo+%KX-Syzp9eb3qAKWJMsAzgR-Jyetv$@*grb@ zu5*4TPo3hqL$^W{==$&5_Z-uVP)k&Q-PAf}=ugk3 zJ_P>FSFNvvbsE0o#=Bt&bXHGxI<4fYlFeX^o#UO;mBkm1PO!3rc-c<;6zq0U!NJUv zQY`uK;WV^EDWaVyCI`pE&*QNUq0LCKbDrt*H_;^T9!;jOUonhqGw8(jKhhPD7B_ zmLc|V^cQ!$0`LSXtruRS+&&)?n)uLT;Fv;*P5O~+3YTkx%MPOr@vnZlf?*C}eMw6$ z+E{n44ij&m$cHrU3jrw#ic=h*mwi98(5;A;QSU3Y)xbJxU?GP8(RpOV9svWQnqk&KGahUF5XXA3)E@m_YQ@b7#cA++K{M>TzMaAsXCX>vuECQ@R`12^MpS`}Qa*r})&Md{Cix-TClb_K0rT-eWIzC1gTQZnfsXNzc$j!Fp$hwFfJe%mYg2 zWPHd@1=lqt5Y^k8ptx&{SBbiiY2AOR{v>z9H=BpvOtiGL^1%Y~XjMTHu6YwVy)?1n z|C%?Y=q7rwI(?2_(@okCXDE#>%GUWZC{^;|${A2s0oT{%&swK4l-;~DKH}^j;^E=R z&xDK(zEsJb)?DQ3ytJ|++Q0+WX}hsj$YTAZ}%Qtc5CYeY@fM-U@KGTicgrorIZTD9T}AtTMHRtx{Mn8&r&UAIq>se8^M z8e-Wy#@L^fR27O90Jcm<1^;#}6q@cUMF|rT$*?Ot%}?pMj&gA&wotg2gk#ZPH<1SD z^z+H#S)daFe}{*Mi4%jL<1=qL;js#1!*(dkcz&azbt5cteIR;VS(ku{H;^e4^oxt6 zoV2up>J8E&0EGj$S;2^se{dS@I%ZR`wCA2ySL5uvdN9PsA5B3$@RFSwm8o$K0lKN> z5MhvA>1R3xcPZxHxr}RB%@8uj2D!w{P2}X{o{aP!a~w9km2(96Hikzt#LVh61;y3h zw#8j4@-FpYt-UX@Z+!V1+PB`=QQdj0v{BH+SWoX@xVzgfGnM&Jac6aKmsmJ)<7p{p zA5uEaw;I>xjuD-ZR;sX|pdshBL8tR%q0_)?W9B9{F~@KFtFI_NzHhUvV+lYl=j^1K ztkt;xI0r{rw8xMD!^+Cd?~xB7$xghGaG20RzY&f)%)wzY(UD6t3_+B~ULw7!GmzJy zAx56bV>T`AM7^H>+VY&uMOisHJ{E-Gn5~sq`O0@hKM)%O z{*U}dIYTM-n&)Z}6`Jhp;lJJtitt!ogCZR>jBauC^76yD+7#VAu7muaf-}0Wib%FqQt`UO+h~~M08WIX6mfLnZ9L?))rEj8u`+h5K1|>R z5ndD}*HodiHbhE$%FPfYdFITS!2<84nZZPeG)~Z%LM8Tkfx3nW+c4Kvvu+cm`d2h@ zqyHa(u1tnfXsy>7ZVH3rkuowhbt|CCe%=*upN%2P;YrzbUe~Mc5HGMPzgjw$!)zg6 zWyXG%q7}FO;!$7lt)rtOq$XbQ&h!n#8#h{_=SCW3@gugMMUB4hm4AJ*Z1$Q95TM&) z&-PBcW?f1enkH?l!u}Vr=$&~WxpQdXgjV)UhJgLS&3)aJF(up>DNW@ehN8!K%IF#I zsveF;nB&hs^EWOq1hw8S0MS42z?osW?dMajHJ82MXt?3SFTw%?=DChUuI5=noaO*zn|2Q*7&nl3ObEq)*-WdiD zOPzYEUh*3$4^wD)G^0?DGM(m3Awb%YzDe|OI9Rda{bx~bHD(5?8)FsOTydibUX}{$ z>$^cve_ro%QMsxixQ$!mJzJ}G`tU*1JFZ{U!95(}UdY=H0rvLDVcb1gi5~&;b_kp~ynp{0!H!!Gz)})sXKg)tUZxlkM+zj3 z*@*#u`N;PRY>fnPVxw}QKwlfmO;m&C|Lf{;IN;D7M6gIN+X)Ro37433WfON&Rf&=N z?#rpd-d~){Mn}ia#>NJYEku0-sIO#y_1K#XcCWp>XUSpF{c9SCMj+ICPdX zYkD?rEY73-V<3YaIeuLJuwt04$>$%aQcx-@c4#gwEybfs zAJs?+IeGFV-L75N+Imyqd70KlJ<)9g1ezU5Oog5|-)@z4^ZNl}2%(7N4vAma#`gM) zy(QZsnA957M@DfKD4%-h<~5&f_NN|C$@8h*juv}dEAt{@m!(sWpnDUyaPHG?#W>5( zJd(VCR9|l(0HRa8I_){UY9#=bK?z<>2+c+t3SEAeX3fB+Oy1z`>Va0{@J5Gj*I2An zTl5Bw<1!o}I#__HJYcz4BwxoJm7doii=L;=fxj3Bu88=B3JN2zcxVmR7@QO|x#jx} zJvabL*rzP#Js*2{sco#UA?(5NU&5i_%m9Q=yV9L z0@Jwra~BE7-1<(;G0d@VY8q3mz3v4O8(w(9! z3W-fbY;PX3vz*Q`Xsm6xiL!UrR#*A3eD$m}3?HF_$~&jir98Nz=uK1s*arNlItaJq zQ{-fLghls2VQf79zT@YMu;5^`X0zJnW)0Zh#Z{#hPL7U4+3l9~_;xaF0xGqAh0FEp z*S~P3tZttrVusWF*zmWiWB5>T(r)EhfSvgtyJ9U(?I(cKFb6SnziXv0CnNk8IJZ_& zoh~!gBu+6$+Q1fzndxb|-MekNHvJ176F@Ag#RWUlVTbK|llt@E?B9GiWSOVKg>A|w z%64RUtT0rDI&=;H)$(fEgS`V{U3v#3;saH};bxwRDYG+gAp22*wM_MtW|=i}d(6Fl z{kn|CkXRbk;ga1ZRy+i!%?*7oHSr$(c&`9Rk?Y8j&zbKNZ**<`76a={3t}(at~baP z2_*rj=G~C82=heEiQV+=K5FqS;B8Qiz9TnOW}}*r_}_i;HkJNiO0$-!A+lN51O@zHLm=U2#d&jDq!h6Z$b?9CxeQI~;qxP{*1Lg#%ia zhM;M6>gWrghAsbiK+9Ygj%ENO@)FJ;_jfmVh;LD?MWO;`LvYL*pzq^|4(p(ITf$4xryH<& z1F|`f?$r=VGfvl(s}<+maF>F4__RXSTwU#uLJ?+JUOdYs(@9CJ zUw>}h1lW^$-jj9U-U3JkJ||lw>TT}W;G#`IXZrZ15bZcRS8n0YNGmae)AS35Z(qH zH0u&J9mFqm;4wA9-zWC+cxS!_%69XYSBL%l{SRS3{EmN(G<-)_kA*Qag1&xy`i(0h zQ!oo?NWOtwJ4#+>fnq=+f!jzRG(fS7LVAX%xNdH42`aJAEpz+#5K)Uj16cf*R4oxY zu%GCNM_m}jhXr@_@C^wu7uoq^Deg)}4B=C-Xk;bV7vBn)w?sfFU@A1&{GZ?!@!U3+ zYTfbKN2&5Qs=h#$m-pDZid{2{LM-%E7JWx?yt`N*!b&qR6ZD5e(&x?{;pM#yLUI&& z7tpbI$hrxz08q&SP_N9EKZqcQ1AVd?yM?SfTu)6DNr*M-fMZyFHIPz%le%-{BkDSI zs@?eU9vmL)_ljUOqO(&{QK-8nRAB3vg9F_uIp><>gep81JoXY-}xPyUJ}v= zT>JNz1P<1IEz8OF{p9B+0mo$2Pebp!O|3YI7mT74H{n|7ckg}+vkSgW*|lH+i?$)4 zDW30teXjY#nZSLi?F&QSrJ$BOT(kmpmn{`nPtmzTZd{ks=<&6wQrb4;>ky>zd+{Oy z1r8086UP&$O1;YeIAP+*$7OupFU^yQen8fYOCtr4JUG+1mKAqx2x47%`Zxp&bX=m8 zn6_sp1G8%W3^;o!5_P<-;7-Qbvu8>6$^r-nb`_*R9|(l~@ZBJK^)d>$EZ)Kmvtzi? zP2!0F7C?}VL<5@a(nVx!McVz%R*Jiceq~Pkjm$`zv!)(7CfsXwk6GZ1A@sH*4;eR6 zDA`BH#uCGZMqC)BK5i@3p3n958NQ~-7TujW^E)xh&)~OB zs`tCD47?`*4;GGljg;Odid+1$mo6!jdItw4e|Fcw^FtnNZa+4-5Xaef?!T`HSooIB zZSjoqdYUdaw(8ZZ5zr8by#tvj$P$HP7KsGkn{Mo&U6bfg2%sgx|GN>e4t6|*3*w2^ z!m0nE!&^ZTsobxLQgr_O(UT|NeRe^R=akXcf8w@Ne7KXKm6hPnqo0D(MELi`jh~)8 zs_ECIfwH6N$gR2SbAaf9cReewr~4jphw?v*%wPf(CWiR)sPMWYD1u|MBt&|IY46kB z_%DMR_9S^xfH0CZBoOvzZ!gqk4tIBVVmpw{fcj3dJvdysnTb2`Yk&e*e!ti6uTio# zSw`#rpDA35vfskw|NP_s{^0F@-ui!2%J=`dHzP@3on(SJ0b(2B%4H_P`T6hr$^LWT zz*#5+PrbavW5b5nKpSUZ_&Cjm}(=b|>ntY$rhfHB@qWC%QLgnkD z@eGWNT9y1{&F;z`hFOagtWOjq)X$xrg}!E6$ZrHFpqbQ~IsfiT8`|6J7n z@7MYN?VS4m^=;JQfA{X4ZL_X}37{a%Np~b{@zZyAcjO0zY3SXNM*D3pxHEGp|0wqo za5F#ZIibJNy7Z`JfBsH+e9!?KCv5;_^r43b7g7e`ibzrr=t1;;(g5=2+syh0%AFZg z9zTApgsutzi~j2%vrq`*7YRTe;-?@zPmcsCoO|T`MnHCR;#RO}GZCH8t&zO-}ZdWCr?ZgGe)ey*q({G)-9K?*5FSQH#E=G!gv#}kU| z%{%kd5D8O5j0A-`wl0N+BH~$Z*V;#}YUc%H2261Y#Gplj)^2|6${l2AA!8s(?n%ry ze5>c{8a`Q=FAv0qjB*T&qO$UG=!CzMj%fKLIhSQpU!IAypBVW}K8P-^*(`3UsSf0o z0!HNbhoPqi_W99d9p(iIWkX~L@a>)t1ePVn>NGIg*UX|!gC9?!0ua9G!-ousACG>K zubHY7oR(OCkT@v+(3TyrTBmnmK;nbp5Rv)eUPObCFq%L(KmfBIXwGiBPX-!QX5GbK`#=Np@a2E zCVU9Qs16lv&hY>=4S;S-R2w9TrB$uLNy8B={|J$LRL-M*G! zN%x{%4X>i0DhY3yLuBSgx+WbGub3$i@l_PvRwnGSm_{xa3;Y}9j*s{z5W^23OdSUB zpJST>gx9rkkFgo}m&Y<{Z)9mT!uuv@9Vt~_#uI=3`6uvSJ=}KG=i{Db%9Z@wqJUJY zN5yS0M?m~ZqJjYWkO=A=GErPyT%-2|{izZWf+<>^t~xNoj62CwIO`L&DoBS;ZT7ya ziNe9grXC93 {%A|hHFu$eRAtdM(-rXRh%!H_sVK2Z=o{H*0KY2Z{L8-Mi4K>?U}P7-~K3-lDii3MB^dId2|(UB$U0x0sw=@{zRO-FSk9h{R38zD+=V7=c6h zXy-m<(~1}Dp~5!jA%A`&IWN31b}hM+Fh_`-NW^rUgkZOFC{y~NX398bb00R--h>@X zCM+LOfsH^&g~a-z!9jQUVqio(7AZ zJFwfPRQ*)4;)u+3b#;+Cvb->v3W8h0y@4Au2WxLHMqJeJQtzr}h!pC)Fu}2CzllPF zYoar?z}W$MSAB%u8HDSVkW$0R@(l`dI^�AB%GWT?^ijj1T5=%(Who`kWmvqlwrY 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

F*#KAT!heu*jp+UYe(} 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

m2L$xJ_ept*zO)@RIoq$u$UL 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 literal 87846 zcmeFZcR1Jo|3CVYtwK>5nb9Pa5mMQsVXKTNiWG|MT^S{jiUt+REF>eFl#!MY*|Nz9 z+2hIYL zJj04A=!`Nb(lmGCg0~Ak(+FyrVR=%J@q1MeZ(Q}vzg~BqlUn?L`)d{B zivI`x_{z!l_I91^>~VbZ@&yrT8_(B<3n&XceH|5bT=V#0mAXmsJ$v*bv}1LuB6mcI z?b(y*=Gr4_*PNxP*ZAX=Nz|3>0cxXrW2?w*>uP@AHOPb~aL46ha~7j=5VNSH`NKVD zE$r=Y8)w_b8m1a?NZPQzeD$hBdF_qofonLgets--_`CC!E6)-W>6Mk0A3S^*>oqr# z@#c+kjGXhgG&A|Ei$61IY!5%@!Bvh=O^JwyJ$b_W@!pPWTK9Lxp8NdBrlVM4etKl} z>eV4L28RVl-g^Aqd7JOx?T}4kf_wI?|MTaMhPJkPo@1|0tP-uHZ9M}oFYiD@>L#tI z-Dck#mXfTjt-B|BYu@@S$=SEQ^$!nceP3C*<-h^n9Xoc2OG^g^1ki5Yy!l(4>guV% zI(n%KKSUz)_xmnyE^rxn_i(TErIlsx_Z1a_!oswHfq~miazx0#etB~5)JV%Fdwcu2 z$hv&z3$wGcJq4z*I;Blb99y?;9dc3Z{}NN1ec|}P(9p*6CwO#4+|zynf`ap5?vs6M z{FiaMJTM|HL1p;ID`AIThvuy0=c#|&n|}V(obG68DZp=ZKYskEbmokpl9JM; z@lM5CoO|gSQVbWgW3-#cC8n+}nVwLLeUP>E*?_@jrjc;?={#@7=q8>(-k6 zp3`ewM_bDR*K&)yjaxJ|H=n`3xfsS?hR5C6)#X1{yugenqjczy-#mx4we^-AI~ecW zxwFrEUh>@6C!tsbr<*cPYaBh=V5<-*W`299A=UEN`y2Z_rnbL(_paVqLsL`n$dNU> zP2c*dhHQ*IRpc@ID?}_jB4Wa*Wjzg5b#=Ad^lwftZ|~PGBgRv|f3o3)s90D$Gnxqr z4%Xmqq7DoW9yqvr?_Rdm8$}Mex$ScqZ9VzD!95*oPU74r4qdK}-7EWOXlYN+j(6?5 zGQcWr-x}=L`?0$3LSq^amem%m3$1VeEF{HMED!ge{`^QvcwwxwQ%5O#E~Ch2i3>|Q z;Ne3~kEsFO?+pSU8^uZ%uMXBFZjqNa>2^L<>~-Vhn{!?D$@)#X4tzTeQw(lNEjr-3 zxn=BC@X)8nI@0g&Sy`OaKJq|3R%7^g(`#yn_QJAQ<)AD*dJ4nZwW=*ScI(*L-#Y~b z2Orq}ubM2?tmTqqz^bA6J%29Ln(w?i*S;;HrzQKsrhMn&z~!ZdlChnU9Q5?`FHgLV zd!G8ItXe)ghM!@~c>zB}_M2ZcuZe_ NmUuJvqe!tN}52X5uqwfy@2;&7&Nqt{$- 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¥Z~lQ(FBdE;38hIw%(Bnp)1mNOK@c5#s5i2 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 JeC&AkKLDR_!H56= From 8403a1d9d7235f8a448f30bd881db3243d0c9c15 Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Wed, 22 Apr 2026 18:48:29 +0200 Subject: [PATCH 3/8] refactor: move pruning_demo to examples/pruning/demo and fix markdownlint issues Signed-off-by: Alexandre Chidiac --- .../demo}/00_prerequisites.ipynb | 0 examples/{pruning_demo => pruning/demo}/README.md | 8 ++++---- .../demo}/advanced_compression_experiments.md | 0 .../demo}/all_curves_throughput_vs_latency.png | Bin .../demo}/distillation_curves.png | Bin .../demo}/distillation_loss_7B.png | Bin .../{pruning_demo => pruning/demo}/memory_sweep.png | Bin .../demo}/memory_sweep_combined.png | Bin .../demo}/scenario1_minitron.ipynb | 0 .../demo}/scenario1_puzzletron.ipynb | 0 .../demo}/scenario2_minitron.ipynb | 0 .../demo}/scenario2_puzzletron.ipynb | 0 .../demo}/summary_chart.png | Bin 13 files changed, 4 insertions(+), 4 deletions(-) rename examples/{pruning_demo => pruning/demo}/00_prerequisites.ipynb (100%) rename examples/{pruning_demo => pruning/demo}/README.md (99%) rename examples/{pruning_demo => pruning/demo}/advanced_compression_experiments.md (100%) rename examples/{pruning_demo => pruning/demo}/all_curves_throughput_vs_latency.png (100%) rename examples/{pruning_demo => pruning/demo}/distillation_curves.png (100%) rename examples/{pruning_demo => pruning/demo}/distillation_loss_7B.png (100%) rename examples/{pruning_demo => pruning/demo}/memory_sweep.png (100%) rename examples/{pruning_demo => pruning/demo}/memory_sweep_combined.png (100%) rename examples/{pruning_demo => pruning/demo}/scenario1_minitron.ipynb (100%) rename examples/{pruning_demo => pruning/demo}/scenario1_puzzletron.ipynb (100%) rename examples/{pruning_demo => pruning/demo}/scenario2_minitron.ipynb (100%) rename examples/{pruning_demo => pruning/demo}/scenario2_puzzletron.ipynb (100%) rename examples/{pruning_demo => pruning/demo}/summary_chart.png (100%) diff --git a/examples/pruning_demo/00_prerequisites.ipynb b/examples/pruning/demo/00_prerequisites.ipynb similarity index 100% rename from examples/pruning_demo/00_prerequisites.ipynb rename to examples/pruning/demo/00_prerequisites.ipynb diff --git a/examples/pruning_demo/README.md b/examples/pruning/demo/README.md similarity index 99% rename from examples/pruning_demo/README.md rename to examples/pruning/demo/README.md index 92dec8d4741..70b9bec7d3e 100644 --- a/examples/pruning_demo/README.md +++ b/examples/pruning/demo/README.md @@ -102,7 +102,7 @@ Puzzletron's per-layer search space is much broader than Minitron's. The trade-o --- -# Part I — Setup & Experiments +## Part I — Setup & Experiments --- @@ -185,7 +185,7 @@ hf download Qwen/Qwen3-8B --local-dir /workspace/models/Qwen3-8B From within the container, copy the notebooks to your local workspace: ```bash -cp -r /workspace/Model-Optimizer/examples/pruning_demo/* /workspace +cp -r /workspace/Model-Optimizer/examples/pruning/demo/* /workspace ``` If this doesn't work, upload the notebooks manually in Jupyter after launching it. @@ -317,7 +317,7 @@ The pre-distillation accuracy is near-random (MMLU has a 25% baseline for 4-choi #### Puzzletron architecture details -``` +```text block_0: attention kv_heads_8 ffn intermediate_12288 block_1: attention kv_heads_8 ffn intermediate_5120 block_2: attention kv_heads_8 ffn intermediate_5120 @@ -378,7 +378,7 @@ At this extreme compression level, Minitron's strategy of dropping entire layers --- -# Part II — Results, Analysis & Insights +## Part II — Results, Analysis & Insights --- diff --git a/examples/pruning_demo/advanced_compression_experiments.md b/examples/pruning/demo/advanced_compression_experiments.md similarity index 100% rename from examples/pruning_demo/advanced_compression_experiments.md rename to examples/pruning/demo/advanced_compression_experiments.md diff --git a/examples/pruning_demo/all_curves_throughput_vs_latency.png b/examples/pruning/demo/all_curves_throughput_vs_latency.png similarity index 100% rename from examples/pruning_demo/all_curves_throughput_vs_latency.png rename to examples/pruning/demo/all_curves_throughput_vs_latency.png diff --git a/examples/pruning_demo/distillation_curves.png b/examples/pruning/demo/distillation_curves.png similarity index 100% rename from examples/pruning_demo/distillation_curves.png rename to examples/pruning/demo/distillation_curves.png diff --git a/examples/pruning_demo/distillation_loss_7B.png b/examples/pruning/demo/distillation_loss_7B.png similarity index 100% rename from examples/pruning_demo/distillation_loss_7B.png rename to examples/pruning/demo/distillation_loss_7B.png diff --git a/examples/pruning_demo/memory_sweep.png b/examples/pruning/demo/memory_sweep.png similarity index 100% rename from examples/pruning_demo/memory_sweep.png rename to examples/pruning/demo/memory_sweep.png diff --git a/examples/pruning_demo/memory_sweep_combined.png b/examples/pruning/demo/memory_sweep_combined.png similarity index 100% rename from examples/pruning_demo/memory_sweep_combined.png rename to examples/pruning/demo/memory_sweep_combined.png diff --git a/examples/pruning_demo/scenario1_minitron.ipynb b/examples/pruning/demo/scenario1_minitron.ipynb similarity index 100% rename from examples/pruning_demo/scenario1_minitron.ipynb rename to examples/pruning/demo/scenario1_minitron.ipynb diff --git a/examples/pruning_demo/scenario1_puzzletron.ipynb b/examples/pruning/demo/scenario1_puzzletron.ipynb similarity index 100% rename from examples/pruning_demo/scenario1_puzzletron.ipynb rename to examples/pruning/demo/scenario1_puzzletron.ipynb diff --git a/examples/pruning_demo/scenario2_minitron.ipynb b/examples/pruning/demo/scenario2_minitron.ipynb similarity index 100% rename from examples/pruning_demo/scenario2_minitron.ipynb rename to examples/pruning/demo/scenario2_minitron.ipynb diff --git a/examples/pruning_demo/scenario2_puzzletron.ipynb b/examples/pruning/demo/scenario2_puzzletron.ipynb similarity index 100% rename from examples/pruning_demo/scenario2_puzzletron.ipynb rename to examples/pruning/demo/scenario2_puzzletron.ipynb diff --git a/examples/pruning_demo/summary_chart.png b/examples/pruning/demo/summary_chart.png similarity index 100% rename from examples/pruning_demo/summary_chart.png rename to examples/pruning/demo/summary_chart.png From d1169d3581ffaeb3ebc50aa3ba0817e5832f0c59 Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Wed, 22 Apr 2026 19:59:11 +0200 Subject: [PATCH 4/8] fix: apply pre-commit auto-fixes Signed-off-by: Alexandre Chidiac --- examples/pruning/demo/00_prerequisites.ipynb | 29 +++++----- examples/pruning/demo/README.md | 14 +++-- .../demo/advanced_compression_experiments.md | 2 +- .../pruning/demo/scenario1_minitron.ipynb | 13 ++++- .../pruning/demo/scenario1_puzzletron.ipynb | 29 +++++++++- .../pruning/demo/scenario2_minitron.ipynb | 9 ++- .../pruning/demo/scenario2_puzzletron.ipynb | 57 ++++++++++++++----- 7 files changed, 116 insertions(+), 37 deletions(-) diff --git a/examples/pruning/demo/00_prerequisites.ipynb b/examples/pruning/demo/00_prerequisites.ipynb index cca8e92fbeb..a4c6b6ba0c3 100644 --- a/examples/pruning/demo/00_prerequisites.ipynb +++ b/examples/pruning/demo/00_prerequisites.ipynb @@ -59,17 +59,18 @@ "source": [ "import json\n", "import os\n", + "\n", "from datasets import load_dataset\n", "\n", - "DATA_PATH = '/workspace/datasets/wikitext-103-v1'\n", + "DATA_PATH = \"/workspace/datasets/wikitext-103-v1\"\n", "os.makedirs(DATA_PATH, exist_ok=True)\n", "\n", - "dataset = load_dataset('wikitext', 'wikitext-103-v1', split='train')\n", + "dataset = load_dataset(\"wikitext\", \"wikitext-103-v1\", split=\"train\")\n", "\n", - "with open(f'{DATA_PATH}/wikitext-train.jsonl', 'w') as file:\n", - " file.writelines(json.dumps(item) + '\\n' for item in dataset)\n", + "with open(f\"{DATA_PATH}/wikitext-train.jsonl\", \"w\") as file:\n", + " file.writelines(json.dumps(item) + \"\\n\" for item in dataset)\n", "\n", - "print(f'Saved {len(dataset)} samples to {DATA_PATH}/wikitext-train.jsonl')" + "print(f\"Saved {len(dataset)} samples to {DATA_PATH}/wikitext-train.jsonl\")" ] }, { @@ -94,10 +95,10 @@ "from modelopt.torch.utils.plugins import megatron_preprocess_data\n", "\n", "megatron_preprocess_data(\n", - " jsonl_paths='/workspace/datasets/wikitext-103-v1/wikitext-train.jsonl',\n", - " output_dir='/workspace/datasets/wikitext-103-v1',\n", - " tokenizer_name_or_path='/workspace/models/Qwen3-8B',\n", - " json_keys=['text'],\n", + " jsonl_paths=\"/workspace/datasets/wikitext-103-v1/wikitext-train.jsonl\",\n", + " output_dir=\"/workspace/datasets/wikitext-103-v1\",\n", + " tokenizer_name_or_path=\"/workspace/models/Qwen3-8B\",\n", + " json_keys=[\"text\"],\n", " workers=32,\n", " log_interval=100000,\n", ")" @@ -122,18 +123,18 @@ "source": [ "import os\n", "\n", - "distill_path = '/workspace/datasets/wikitext-103-v1'\n", - "expected_files = ['wikitext-train.jsonl', 'wikitext-train_text.bin', 'wikitext-train_text.idx']\n", + "distill_path = \"/workspace/datasets/wikitext-103-v1\"\n", + "expected_files = [\"wikitext-train.jsonl\", \"wikitext-train_text.bin\", \"wikitext-train_text.idx\"]\n", "\n", - "print(f'Distillation dataset: {distill_path}')\n", + "print(f\"Distillation dataset: {distill_path}\")\n", "for f in expected_files:\n", " full = os.path.join(distill_path, f)\n", " exists = os.path.isfile(full)\n", " size = os.path.getsize(full) / (1024**2) if exists else 0\n", - " print(f' {f}: {\"OK\" if exists else \"MISSING\"} ({size:.1f} MB)')\n", + " print(f\" {f}: {'OK' if exists else 'MISSING'} ({size:.1f} MB)\")\n", "\n", "print()\n", - "print('Data preparation complete. You can now proceed to the scenario notebooks.')" + "print(\"Data preparation complete. You can now proceed to the scenario notebooks.\")" ] }, { diff --git a/examples/pruning/demo/README.md b/examples/pruning/demo/README.md index 70b9bec7d3e..7f678c8a7e3 100644 --- a/examples/pruning/demo/README.md +++ b/examples/pruning/demo/README.md @@ -2,7 +2,7 @@ ## Table of Contents -1.[ Introduction](#1-introduction) +1.[Introduction](#1-introduction) [Part I — Setup & Experiments](#part-i--setup--experiments) @@ -18,7 +18,7 @@ 8. [Limitations & Practical Tips](#8-limitations--practical-tips) 9. [Open Questions](#9-open-questions) -10.[ References](#10-references) +10.[References](#10-references) --- @@ -102,6 +102,7 @@ Puzzletron's per-layer search space is much broader than Minitron's. The trade-o --- + ## Part I — Setup & Experiments --- @@ -358,7 +359,7 @@ block_35: attention kv_heads_8 ffn intermediate_9984 ### 4.4 Comparison with Minitron at the same memory target -To validate that Puzzletron is the right choice for this scenario, we also ran Minitron at the same memory budget. To match ~78,000 MiB, Minitron drops 14 of 36 layers (keeping 22), producing a 5.49B parameter model. +To validate that Puzzletron is the right choice for this scenario, we also ran Minitron at the same memory budget. To match ~78,000 MiB, Minitron drops 14 of 36 layers (keeping 22), producing a 5.49B parameter model. ▶ See notebook `scenario2_minitron.ipynb` to reproduce this run. @@ -378,6 +379,7 @@ At this extreme compression level, Minitron's strategy of dropping entire layers --- + ## Part II — Results, Analysis & Insights --- @@ -405,7 +407,7 @@ On MMLU, Minitron outperforms Puzzletron at this level (+3.43pp post-distill). I Moreover, Minitron can be applied **iteratively**: for example, prune 10%, distill, then prune another 10% and distill again. This staged schedule typically preserves more quality than a single, more aggressive pruning step at the same overall parameter reduction. -**Scenario 2 (aggressive memory compression):** +**Scenario 2 (aggressive memory compression):** Puzzletron becomes essential. When the target is a hard memory budget, Puzzletron can optimize for it directly via MIP constraints, whereas Minitron optimizes for a parameter count, and mapping parameter targets to memory budgets is indirect and suboptimal. More importantly, at this level of compression, Minitron acts like a butcher (dropping entire layers), while Puzzletron acts like a surgeon (selectively thinning FFN widths and removing attention per-layer). The surgical approach preserves far more model structure, giving distillation more to work with. This is why Puzzletron recovers to 74.9% of the teacher vs. Minitron's 61.7%. @@ -521,7 +523,7 @@ Sections 5 and 6 focused on accuracy. But for deployment, throughput and latency **Hardware:** 1x NVIDIA H200 NVL GPU. -**Models benchmarked (all post-distillation):** Qwen3-8B (baseline), Minitron 7B (Scenario 1), Puzzletron 7B (Scenario 1), Minitron 78k (Scenario 2), Puzzletron 78k (Scenario 2) +**Models benchmarked (all post-distillation):** Qwen3-8B (baseline), Minitron 7B (Scenario 1), Puzzletron 7B (Scenario 1), Minitron 78k (Scenario 2), Puzzletron 78k (Scenario 2) > **How to reproduce:** Serving Puzzletron's heterogeneous models with vLLM requires a few extra setup steps. See [Appendix](#appendix-serving-a-puzzletron-model-with-vllm) for the full procedure. @@ -682,4 +684,4 @@ for c in 1 4 8 16 32 64 128; do done ``` -> **Note:** For Minitron models and the baseline, skip Step 2 — standard vLLM serves them directly. \ No newline at end of file +> **Note:** For Minitron models and the baseline, skip Step 2 — standard vLLM serves them directly. diff --git a/examples/pruning/demo/advanced_compression_experiments.md b/examples/pruning/demo/advanced_compression_experiments.md index a8f6b835240..103567e9c62 100644 --- a/examples/pruning/demo/advanced_compression_experiments.md +++ b/examples/pruning/demo/advanced_compression_experiments.md @@ -167,7 +167,7 @@ All experiments so far use Qwen3-8B, a dense Transformer-only model. Here we tes **At moderate compression (~10B), Minitron dominates.** Minitron retains 93.8% of teacher MMLU vs. Puzzletron's 62.2%. This is consistent with the Qwen3-8B pattern where Minitron wins at moderate compression, but the gap is much larger here. -**At aggressive compression (~34k MiB), Puzzletron slightly leads.** Puzzletron edges ahead (54.3 vs. 51.8 MMLU), similarly to the pattern observed on Qwen3-8B. +**At aggressive compression (~34k MiB), Puzzletron slightly leads.** Puzzletron edges ahead (54.3 vs. 51.8 MMLU), similarly to the pattern observed on Qwen3-8B. **Hybrid architectures present unique challenges for Puzzletron.** On dense Transformers, Puzzletron's strength is heterogeneous per-layer optimization. On hybrids, the Mamba blocks are effectively frozen — Puzzletron can only optimize the attention/FFN half of the model. This reduces its effective search space and may explain why Minitron's simpler uniform approach outperforms at moderate compression levels. diff --git a/examples/pruning/demo/scenario1_minitron.ipynb b/examples/pruning/demo/scenario1_minitron.ipynb index 71cd5c32df6..2369147f987 100644 --- a/examples/pruning/demo/scenario1_minitron.ipynb +++ b/examples/pruning/demo/scenario1_minitron.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# Scenario 1 — Minitron: Quick & Reliable Compression (~1h45 on 2x H200)\n", @@ -123,6 +124,7 @@ }, { "cell_type": "markdown", + "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "source": [ "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", @@ -133,16 +135,21 @@ { "cell_type": "code", "execution_count": null, + "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": {}, "outputs": [], "source": [ "import subprocess\n", - "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_7B/tb_logs\", \"--port\", \"6006\"])\n", + "\n", + "subprocess.Popen(\n", + " [\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_7B/tb_logs\", \"--port\", \"6006\"]\n", + ")\n", "print(\"TensorBoard started at http://localhost:6006\")" ] }, { "cell_type": "markdown", + "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ "Now, let's run the distillation.\n", @@ -208,6 +215,7 @@ }, { "cell_type": "markdown", + "id": "72eea5119410473aa328ad9291626812", "metadata": {}, "source": [ "## 5. Export to HuggingFace format\n", @@ -218,6 +226,7 @@ { "cell_type": "code", "execution_count": null, + "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, "outputs": [], "source": [ @@ -229,6 +238,7 @@ }, { "cell_type": "markdown", + "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": {}, "source": [ "## 6. Evaluate distilled model\n", @@ -247,6 +257,7 @@ { "cell_type": "code", "execution_count": null, + "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": {}, "outputs": [], "source": [ diff --git a/examples/pruning/demo/scenario1_puzzletron.ipynb b/examples/pruning/demo/scenario1_puzzletron.ipynb index 623a0fe7b3a..08a60869f17 100644 --- a/examples/pruning/demo/scenario1_puzzletron.ipynb +++ b/examples/pruning/demo/scenario1_puzzletron.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# Scenario 1 — Puzzletron: Heterogeneous Pruning (Comparison) (~6h on 2x H200)\n", @@ -19,6 +20,7 @@ }, { "cell_type": "markdown", + "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "source": [ "## 1. Install Puzzletron dependencies" @@ -27,6 +29,7 @@ { "cell_type": "code", "execution_count": null, + "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": {}, "outputs": [], "source": [ @@ -38,6 +41,7 @@ }, { "cell_type": "markdown", + "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ "## 2. Prepare calibration dataset\n", @@ -48,6 +52,7 @@ { "cell_type": "code", "execution_count": null, + "id": "72eea5119410473aa328ad9291626812", "metadata": {}, "outputs": [], "source": [ @@ -59,6 +64,7 @@ }, { "cell_type": "markdown", + "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, "source": [ "## 3. Configure the NAS search\n", @@ -73,6 +79,7 @@ { "cell_type": "code", "execution_count": null, + "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": {}, "outputs": [], "source": [ @@ -94,6 +101,7 @@ }, { "cell_type": "markdown", + "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": {}, "source": [ "## 4. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", @@ -106,6 +114,7 @@ { "cell_type": "code", "execution_count": null, + "id": "7623eae2785240b9bd12b16a66d81610", "metadata": {}, "outputs": [], "source": [ @@ -120,6 +129,7 @@ }, { "cell_type": "markdown", + "id": "7cdc8c89c7104fffa095e18ddfef8986", "metadata": {}, "source": [ "## 5. Evaluate pruned model (before distillation)\n", @@ -130,6 +140,7 @@ { "cell_type": "code", "execution_count": null, + "id": "b118ea5561624da68c537baed56e602f", "metadata": {}, "outputs": [], "source": [ @@ -149,6 +160,7 @@ }, { "cell_type": "markdown", + "id": "938c804e27f84196a10c8828c723f798", "metadata": {}, "source": [ "## 6. Distill\n", @@ -160,6 +172,7 @@ }, { "cell_type": "markdown", + "id": "504fb2a444614c0babb325280ed9130a", "metadata": {}, "source": [ "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", @@ -170,16 +183,27 @@ { "cell_type": "code", "execution_count": null, + "id": "59bbdb311c014d738909a11f9e486628", "metadata": {}, "outputs": [], "source": [ "import subprocess\n", - "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_puzzle_7B/tb_logs\", \"--port\", \"6006\"])\n", + "\n", + "subprocess.Popen(\n", + " [\n", + " \"tensorboard\",\n", + " \"--logdir\",\n", + " \"/workspace/output/distill_output_puzzle_7B/tb_logs\",\n", + " \"--port\",\n", + " \"6006\",\n", + " ]\n", + ")\n", "print(\"TensorBoard started at http://localhost:6006\")" ] }, { "cell_type": "markdown", + "id": "b43b363d81ae4b689946ece5c682cd59", "metadata": {}, "source": [ "Now, let's run the distillation.\n", @@ -189,6 +213,7 @@ { "cell_type": "code", "execution_count": null, + "id": "8a65eabff63a45729fe45fb5ade58bdc", "metadata": {}, "outputs": [], "source": [ @@ -234,6 +259,7 @@ }, { "cell_type": "markdown", + "id": "c3933fab20d04ec698c2621248eb3be0", "metadata": {}, "source": [ "## 7. Evaluate distilled model\n", @@ -253,6 +279,7 @@ { "cell_type": "code", "execution_count": null, + "id": "4dd4641cc4064e0191573fe9c69df29b", "metadata": {}, "outputs": [], "source": [ diff --git a/examples/pruning/demo/scenario2_minitron.ipynb b/examples/pruning/demo/scenario2_minitron.ipynb index 09f75f58b2f..c3776adf6ef 100644 --- a/examples/pruning/demo/scenario2_minitron.ipynb +++ b/examples/pruning/demo/scenario2_minitron.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# Scenario 2 — Minitron: Aggressive Depth Pruning (Comparison Baseline) (~45 min on 2x H200)\n", @@ -19,6 +20,7 @@ }, { "cell_type": "markdown", + "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "source": [ "## 1. Prune (36 → 22 layers)\n", @@ -87,6 +89,7 @@ }, { "cell_type": "markdown", + "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": {}, "source": [ "## 4. Distill" @@ -110,12 +113,16 @@ "outputs": [], "source": [ "import subprocess\n", - "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_22L/tb_logs\", \"--port\", \"6006\"])\n", + "\n", + "subprocess.Popen(\n", + " [\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_22L/tb_logs\", \"--port\", \"6006\"]\n", + ")\n", "print(\"TensorBoard started at http://localhost:6006\")" ] }, { "cell_type": "markdown", + "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ "\n", diff --git a/examples/pruning/demo/scenario2_puzzletron.ipynb b/examples/pruning/demo/scenario2_puzzletron.ipynb index e233e0d9ef3..f9a3a87266e 100644 --- a/examples/pruning/demo/scenario2_puzzletron.ipynb +++ b/examples/pruning/demo/scenario2_puzzletron.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "markdown", + "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "# Scenario 2 — Puzzletron: Hardware-Constrained Compression (~6h15 on 2x H200)\n", @@ -19,6 +20,7 @@ }, { "cell_type": "markdown", + "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "source": [ "## 1. Install Puzzletron dependencies\n", @@ -29,6 +31,7 @@ { "cell_type": "code", "execution_count": null, + "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": {}, "outputs": [], "source": [ @@ -40,6 +43,7 @@ }, { "cell_type": "markdown", + "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ "## 2. Prepare calibration dataset\n", @@ -50,6 +54,7 @@ { "cell_type": "code", "execution_count": null, + "id": "72eea5119410473aa328ad9291626812", "metadata": {}, "outputs": [], "source": [ @@ -61,6 +66,7 @@ }, { "cell_type": "markdown", + "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, "source": [ "## 3. Configure the NAS search\n", @@ -105,6 +111,7 @@ }, { "cell_type": "markdown", + "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": {}, "source": [ "### How Puzzletron computes memory footprint\n", @@ -178,13 +185,17 @@ "print(f\"Per-layer attention weights:{attn_weights_per_layer:>9.2f} MiB\")\n", "print(f\"Per-layer FFN weights: {ffn_per_layer:>10.2f} MiB\")\n", "print(f\"Per-layer total: {attn_total_per_layer + ffn_per_layer:>10.2f} MiB\")\n", - "print(f\"All {layers} layers: {layers * (attn_total_per_layer + ffn_per_layer):>10.2f} MiB\")\n", + "print(\n", + " f\"All {layers} layers: {layers * (attn_total_per_layer + ffn_per_layer):>10.2f} MiB\"\n", + ")\n", "print(f\"Non-block (embed + LM head):{non_block:>9.2f} MiB\")\n", - "print(f\"\")\n", - "print(f\"TOTAL: {total:>10.2f} MiB ({total/1024:.2f} GiB)\")\n", - "print(f\"\")\n", + "print()\n", + "print(f\"TOTAL: {total:>10.2f} MiB ({total / 1024:.2f} GiB)\")\n", + "print()\n", "print(f\"KV cache share: {layers * kv_cache_per_layer / total * 100:.1f}% of total memory\")\n", - "print(f\"Target budget: 78,000 MiB -> need to reduce by {total - 78000:.0f} MiB ({(total - 78000) / total * 100:.1f}%)\")" + "print(\n", + " f\"Target budget: 78,000 MiB -> need to reduce by {total - 78000:.0f} MiB ({(total - 78000) / total * 100:.1f}%)\"\n", + ")" ] }, { @@ -207,6 +218,7 @@ }, { "cell_type": "markdown", + "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": {}, "source": [ "## 4. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", @@ -237,6 +249,7 @@ { "cell_type": "code", "execution_count": null, + "id": "7623eae2785240b9bd12b16a66d81610", "metadata": {}, "outputs": [], "source": [ @@ -251,6 +264,7 @@ }, { "cell_type": "markdown", + "id": "7cdc8c89c7104fffa095e18ddfef8986", "metadata": {}, "source": [ "## 5. Evaluate pruned model (before distillation)\n", @@ -263,6 +277,7 @@ { "cell_type": "code", "execution_count": null, + "id": "b118ea5561624da68c537baed56e602f", "metadata": {}, "outputs": [], "source": [ @@ -282,6 +297,7 @@ }, { "cell_type": "markdown", + "id": "938c804e27f84196a10c8828c723f798", "metadata": {}, "source": [ "## 6. Distill\n", @@ -293,6 +309,7 @@ }, { "cell_type": "markdown", + "id": "504fb2a444614c0babb325280ed9130a", "metadata": {}, "source": [ "Launch TensorBoard to monitor the distillation loss in real time. Open http://localhost:6006 in your browser once the distillation cell is running.\n", @@ -303,16 +320,27 @@ { "cell_type": "code", "execution_count": null, + "id": "59bbdb311c014d738909a11f9e486628", "metadata": {}, "outputs": [], "source": [ "import subprocess\n", - "subprocess.Popen([\"tensorboard\", \"--logdir\", \"/workspace/output/distill_output_puzzle_78k/tb_logs\", \"--port\", \"6006\"])\n", + "\n", + "subprocess.Popen(\n", + " [\n", + " \"tensorboard\",\n", + " \"--logdir\",\n", + " \"/workspace/output/distill_output_puzzle_78k/tb_logs\",\n", + " \"--port\",\n", + " \"6006\",\n", + " ]\n", + ")\n", "print(\"TensorBoard started at http://localhost:6006\")" ] }, { "cell_type": "markdown", + "id": "b43b363d81ae4b689946ece5c682cd59", "metadata": {}, "source": [ "Now, let's run the distillation.\n", @@ -322,6 +350,7 @@ { "cell_type": "code", "execution_count": null, + "id": "8a65eabff63a45729fe45fb5ade58bdc", "metadata": {}, "outputs": [], "source": [ @@ -367,6 +396,7 @@ }, { "cell_type": "markdown", + "id": "c3933fab20d04ec698c2621248eb3be0", "metadata": {}, "source": [ "## 7. Evaluate distilled model\n", @@ -386,6 +416,7 @@ { "cell_type": "code", "execution_count": null, + "id": "4dd4641cc4064e0191573fe9c69df29b", "metadata": {}, "outputs": [], "source": [ @@ -423,22 +454,22 @@ "source": [ "import yaml\n", "\n", - "config_path = '/workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml'\n", + "config_path = \"/workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\"\n", "\n", "with open(config_path) as f:\n", " config = yaml.safe_load(f)\n", "\n", "# Add sweep configuration\n", - "config['mip']['sweep'] = {\n", - " 'enabled': True,\n", - " 'memory_compression_rates': [0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n", - " 'output_csv': '/workspace/puzzle_dir/mip_sweep_results.csv',\n", + "config[\"mip\"][\"sweep\"] = {\n", + " \"enabled\": True,\n", + " \"memory_compression_rates\": [0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n", + " \"output_csv\": \"/workspace/puzzle_dir/mip_sweep_results.csv\",\n", "}\n", "\n", - "with open(config_path, 'w') as f:\n", + "with open(config_path, \"w\") as f:\n", " yaml.dump(config, f, default_flow_style=False)\n", "\n", - "print('Sweep config added. Compression rates: [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]')" + "print(\"Sweep config added. Compression rates: [0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\")" ] }, { From 289c4160ded089d2f94e2cd1c9ccf2ba7c32dfb6 Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Mon, 27 Apr 2026 12:13:19 +0200 Subject: [PATCH 5/8] address Liana's comments Signed-off-by: Alexandre Chidiac --- examples/pruning/demo/00_prerequisites.ipynb | 16 +---- examples/pruning/demo/README.md | 24 +++---- .../demo/advanced_compression_experiments.md | 2 +- .../pruning/demo/scenario1_minitron.ipynb | 36 ++-------- .../pruning/demo/scenario1_puzzletron.ipynb | 54 ++------------- .../pruning/demo/scenario2_minitron.ipynb | 45 ++---------- .../pruning/demo/scenario2_puzzletron.ipynb | 68 ++----------------- 7 files changed, 37 insertions(+), 208 deletions(-) diff --git a/examples/pruning/demo/00_prerequisites.ipynb b/examples/pruning/demo/00_prerequisites.ipynb index a4c6b6ba0c3..1c4bb220bfc 100644 --- a/examples/pruning/demo/00_prerequisites.ipynb +++ b/examples/pruning/demo/00_prerequisites.ipynb @@ -4,19 +4,7 @@ "cell_type": "markdown", "id": "27446984", "metadata": {}, - "source": [ - "# Prerequisites: Data Preparation & Baseline Evaluation (~15 min on 2x H200)\n", - "\n", - "This notebook has two goals:\n", - "1. **Prepare the distillation dataset** — download WikiText-103 and tokenize it into the binary format expected by Megatron-Bridge. This dataset is used during the distillation step (after pruning) in all scenario notebooks.\n", - "2. **Establish the teacher baseline** — evaluate the original Qwen3-8B on MMLU before any compression.\n", - "\n", - "> **Why prepare the dataset before compression?** The distillation step (which comes *after* pruning) requires a pre-tokenized dataset in Megatron binary format. Preparing it upfront avoids interrupting the compression pipeline and ensures a consistent dataset across all scenarios.\n", - "\n", - "> **Note on calibration datasets:** Pruning also requires calibration data to score the importance of each component — the model runs forward passes on a small dataset to measure how much each neuron, head, or layer contributes to the output. This calibration data (we use `nvidia/Nemotron-Post-Training-Dataset-v2`) is handled separately in each scenario notebook. Minitron downloads it automatically under the hood, while Puzzletron requires an explicit preparation step. See the respective notebooks (`scenario1_minitron.ipynb`, `scenario2_puzzletron.ipynb`, etc.) for details.\n", - "\n", - "**Prerequisites:** Run this notebook from inside the NeMo container with the base model already downloaded at `/workspace/models/Qwen3-8B` (see the guide's Prerequisites section)." - ] + "source": "# Prerequisites: Data Preparation & Baseline Evaluation (~15 min on 2x H200)\n\nThis notebook has two goals:\n1. **Prepare the distillation dataset** — download [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) and tokenize it into the binary format expected by Megatron-Bridge. This dataset is used during the distillation step (after pruning) in all scenario notebooks.\n2. **Establish the teacher baseline** — evaluate the original Qwen3-8B on MMLU before any compression.\n\n> **Why prepare the dataset before compression?** The distillation step (which comes *after* pruning) requires a pre-tokenized dataset in Megatron binary format. Preparing it upfront avoids interrupting the compression pipeline and ensures a consistent dataset across all scenarios.\n\n> **Note on calibration datasets:** Pruning also requires calibration data to score the importance of each component — the model runs forward passes on a small dataset to measure how much each neuron, head, or layer contributes to the output. This calibration data (we use [`nvidia/Nemotron-Post-Training-Dataset-v2`](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2)) is handled separately in each scenario notebook. Minitron downloads it automatically under the hood, while Puzzletron requires an explicit preparation step. See the respective notebooks ([`scenario1_minitron.ipynb`](scenario1_minitron.ipynb), [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb), etc.) for details.\n\n**Prerequisites:** Run this notebook from inside the NeMo container with the base model already downloaded at `/workspace/models/Qwen3-8B` (see the guide's Prerequisites section)." }, { "cell_type": "markdown", @@ -193,4 +181,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/examples/pruning/demo/README.md b/examples/pruning/demo/README.md index 7f678c8a7e3..a4f28f85403 100644 --- a/examples/pruning/demo/README.md +++ b/examples/pruning/demo/README.md @@ -177,11 +177,11 @@ hf download Qwen/Qwen3-8B --local-dir /workspace/models/Qwen3-8B | Notebook | Description | Runtime (2x H200) | |---|---|---| -| `00_prerequisites.ipynb` | Prepare the data + Baseline evaluation | ~15 min | -| `scenario1_minitron.ipynb` | Scenario 1 — Minitron | ~1h45 | -| `scenario1_puzzletron.ipynb` | Scenario 1 — Puzzletron | ~6h (on first Puzzletron run) | -| `scenario2_minitron.ipynb` | Scenario 2 — Minitron | ~45 min | -| `scenario2_puzzletron.ipynb` | Scenario 2 — Puzzletron | ~6h15 (on first Puzzletron run) | +| [`00_prerequisites.ipynb`](00_prerequisites.ipynb) | Prepare the data + Baseline evaluation | ~15 min | +| [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb) | Scenario 1 — Minitron | ~1h45 | +| [`scenario1_puzzletron.ipynb`](scenario1_puzzletron.ipynb) | Scenario 1 — Puzzletron | ~6h (on first Puzzletron run) | +| [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb) | Scenario 2 — Minitron | ~45 min | +| [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb) | Scenario 2 — Puzzletron | ~6h15 (on first Puzzletron run) | From within the container, copy the notebooks to your local workspace: @@ -236,9 +236,9 @@ Both strategies can be combined. An optional automatic NAS search can be enabled ### 3.3 Walkthrough: Qwen3-8B → 7B parameters -**▶ Data preparation:** Run notebook `00_prerequisites.ipynb` to prepare the data and evaluate the original model. +**▶ Data preparation:** Run notebook [`00_prerequisites.ipynb`](00_prerequisites.ipynb) to prepare the data and evaluate the original model. -**▶ Minitron pruning and distillation:** Run notebook `scenario1_minitron.ipynb` for the full end-to-end pipeline (prune → distill → evaluate). +**▶ Minitron pruning and distillation:** Run notebook [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb) for the full end-to-end pipeline (prune → distill → evaluate). #### Results @@ -248,13 +248,13 @@ Both strategies can be combined. An optional automatic NAS search can be enabled | Minitron — pruned | 32 | 3840 | 12288 | 6.96B | 0.7038 | 93.9% | | Minitron — pruned + distilled | 32 | 3840 | 12288 | 6.96B | **0.7166** | **95.6%** | -Distillation recovers **+1.28 percentage points** of MMLU accuracy with just 100 iterations on WikiText-103. +Distillation recovers **+1.28 percentage points** of MMLU accuracy with just 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1). ### 3.4 Comparison with Puzzletron at the same parameter target To validate that Minitron is the right choice for this scenario, we also ran Puzzletron at the same ~7B parameter target. Puzzletron produces a 36-layer heterogeneous model with variable FFN widths per layer (some as low as 2560) and selective attention removal. -▶ See notebook `scenario1_puzzletron.ipynb` to reproduce this run. +▶ See notebook [`scenario1_puzzletron.ipynb`](scenario1_puzzletron.ipynb) to reproduce this run. | Model | Parameters | MMLU (pruned) | MMLU (distilled) | % of Teacher | |---|---|---|---|---| @@ -302,9 +302,9 @@ Puzzletron compresses a model through an automated NAS pipeline: ### 4.3 Walkthrough: Qwen3-8B - 126,215 MiB → 78,000 MiB memory target -**▶ Data preparation:** Run notebook `00_prerequisites.ipynb` to prepare the data and evaluate the original model (if not already done). +**▶ Data preparation:** Run notebook [`00_prerequisites.ipynb`](00_prerequisites.ipynb) to prepare the data and evaluate the original model (if not already done). -**▶ Puzzletron NAS and distillation:** Run notebook `scenario2_puzzletron.ipynb` for the full end-to-end pipeline (prune → NAS search → distill → evaluate). +**▶ Puzzletron NAS and distillation:** Run notebook [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb) for the full end-to-end pipeline (prune → NAS search → distill → evaluate). #### Results @@ -361,7 +361,7 @@ block_35: attention kv_heads_8 ffn intermediate_9984 To validate that Puzzletron is the right choice for this scenario, we also ran Minitron at the same memory budget. To match ~78,000 MiB, Minitron drops 14 of 36 layers (keeping 22), producing a 5.49B parameter model. -▶ See notebook `scenario2_minitron.ipynb` to reproduce this run. +▶ See notebook [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb) to reproduce this run. | Model | Memory Footprint | MMLU (pruned) | MMLU (distilled) | % of Teacher | |---|---|---|---|---| diff --git a/examples/pruning/demo/advanced_compression_experiments.md b/examples/pruning/demo/advanced_compression_experiments.md index 103567e9c62..14c23b46e17 100644 --- a/examples/pruning/demo/advanced_compression_experiments.md +++ b/examples/pruning/demo/advanced_compression_experiments.md @@ -6,7 +6,7 @@ This document extends the [main tutorial](README.md) with results and insights f ## 1. Extended Distillation: WikiText vs. Nemotron-v2 at 80% Memory -The main tutorial uses a deliberately minimal distillation setup (100 iterations on WikiText-103, ~1.6M tokens). Here we investigate what happens when we scale up distillation significantly (using the higher-quality [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) with 1000x more tokens) on Qwen3-8B models compressed to ~80% of the original memory footprint. +The main tutorial uses a deliberately minimal distillation setup (100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1), ~1.6M tokens). Here we investigate what happens when we scale up distillation significantly (using the higher-quality [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) with 1000x more tokens) on Qwen3-8B models compressed to ~80% of the original memory footprint. ### 1.1 Results across all benchmarks diff --git a/examples/pruning/demo/scenario1_minitron.ipynb b/examples/pruning/demo/scenario1_minitron.ipynb index 2369147f987..4a9d5878ac0 100644 --- a/examples/pruning/demo/scenario1_minitron.ipynb +++ b/examples/pruning/demo/scenario1_minitron.ipynb @@ -4,35 +4,13 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": [ - "# Scenario 1 — Minitron: Quick & Reliable Compression (~1h45 on 2x H200)\n", - "\n", - "This notebook prunes Qwen3-8B down to ~7B parameters using **Minitron** (homogeneous pruning), then distills and evaluates the result.\n", - "\n", - "**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n", - "\n", - "**Prerequisites:**\n", - "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", - "- Base model downloaded at `/workspace/models/Qwen3-8B`." - ] + "source": "# Scenario 1 — Minitron: Quick & Reliable Compression (~1h45 on 2x H200)\n\nThis notebook prunes Qwen3-8B down to ~7B parameters using **Minitron** (homogeneous pruning), then distills and evaluates the result.\n\n**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." }, { "cell_type": "markdown", "id": "b14dbc2b", "metadata": {}, - "source": [ - "## 1. Prune (long step)\n", - "\n", - "Minitron's `prune_minitron.py` script handles the full pruning pipeline in one command:\n", - "1. Loads the model into Megatron-Bridge format\n", - "2. Runs a calibration pass on the Nemotron-Post-Training-Dataset-v2 to compute importance scores\n", - "3. Enumerates all valid (depth, width) configurations, keeps the 10 candidates with parameter count closest to and below 7B, scores them using a fast MMLU proxy, and selects the best one\n", - "4. Exports the pruned model as a HuggingFace checkpoint\n", - "\n", - "We skip pruning `num_attention_heads` to keep the GQA structure intact (the model reduces hidden size, FFN intermediate size, and drops layers instead).\n", - "\n", - "> **Calibration dataset note:** The pruning script automatically downloads and uses 1,024 samples from `nvidia/Nemotron-Post-Training-Dataset-v2` for calibration (configurable via `--calib_dataset_name` and `--calib_num_samples`)." - ] + "source": "## 1. Prune (long step)\n\nMinitron's `prune_minitron.py` script handles the full pruning pipeline in one command:\n1. Loads the model into Megatron-Bridge format\n2. Runs a calibration pass on the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) to compute importance scores\n3. Enumerates all valid (depth, width) configurations, keeps the 10 candidates with parameter count closest to and below 7B, scores them using a fast MMLU proxy, and selects the best one\n4. Exports the pruned model as a HuggingFace checkpoint\n\nWe skip pruning `num_attention_heads` to keep the GQA structure intact (the model reduces hidden size, FFN intermediate size, and drops layers instead).\n\n> **Calibration dataset note:** The pruning script automatically downloads and uses 1,024 samples from `nvidia/Nemotron-Post-Training-Dataset-v2` for calibration (configurable via `--calib_dataset_name` and `--calib_num_samples`)." }, { "cell_type": "code", @@ -114,13 +92,7 @@ "cell_type": "markdown", "id": "dcff37f6", "metadata": {}, - "source": [ - "## 4. Distill\n", - "\n", - "Run knowledge distillation: the pruned model (student) learns to mimic the original Qwen3-8B (teacher) using logits-based KL divergence loss on the tokenized WikiText-103 dataset.\n", - "\n", - "We run 100 iterations with a sequence length of 4096 and a global batch size of 4 (~1.6M tokens)." - ] + "source": "## 4. Distill\n\nRun knowledge distillation: the pruned model (student) learns to mimic the original Qwen3-8B (teacher) using logits-based KL divergence loss on the tokenized [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) dataset.\n\nWe run 100 iterations with a sequence length of 4096 and a global batch size of 4 (~1.6M tokens)." }, { "cell_type": "markdown", @@ -282,4 +254,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/examples/pruning/demo/scenario1_puzzletron.ipynb b/examples/pruning/demo/scenario1_puzzletron.ipynb index 08a60869f17..e014df12d4a 100644 --- a/examples/pruning/demo/scenario1_puzzletron.ipynb +++ b/examples/pruning/demo/scenario1_puzzletron.ipynb @@ -4,19 +4,7 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": [ - "# Scenario 1 — Puzzletron: Heterogeneous Pruning (Comparison) (~6h on 2x H200)\n", - "\n", - "This notebook compresses Qwen3-8B to ~7B parameters using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n", - "\n", - "This serves as the **comparison run** for Scenario 1. The recommended approach for moderate compression is Minitron (see `scenario1_minitron.ipynb`). We run Puzzletron here to demonstrate how it compares at this compression level.\n", - "\n", - "**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n", - "\n", - "**Prerequisites:**\n", - "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", - "- Base model downloaded at `/workspace/models/Qwen3-8B`." - ] + "source": "# Scenario 1 — Puzzletron: Heterogeneous Pruning (Comparison) (~6h on 2x H200)\n\nThis notebook compresses Qwen3-8B to ~7B parameters using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n\nThis serves as the **comparison run** for Scenario 1. The recommended approach for moderate compression is Minitron (see [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb)). We run Puzzletron here to demonstrate how it compares at this compression level.\n\n**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." }, { "cell_type": "markdown", @@ -35,8 +23,7 @@ "source": [ "!cd /workspace/Model-Optimizer && \\\n", "pip install -e .[hf,puzzletron] && \\\n", - "pip install -r examples/puzzletron/requirements.txt && \\\n", - "pip install lm-eval==0.4.8" + "pip install -r examples/puzzletron/requirements.txt" ] }, { @@ -66,15 +53,7 @@ "cell_type": "markdown", "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, - "source": [ - "## 3. Configure the NAS search\n", - "\n", - "In the YAML configuration files, we need to set:\n", - "- **`input_hf_model_path`**: path to the base Qwen3-8B model\n", - "- **`target_memory`**: set high (130,000 MiB) so it doesn't constrain — we're targeting by parameter count here\n", - "- **`num_params`**: 7B parameter target\n", - "- **`eval_samples`**: number of samples for scoring (32 for faster search)" - ] + "source": "## 3. Configure the NAS search\n\nIn the YAML configuration files, we need to set:\n- **`input_hf_model_path`**: path to the base Qwen3-8B model\n- **`target_memory`**: set high (130,000 MiB) so it doesn't constrain — we're targeting by parameter count here\n- **`num_params`**: 7B parameter target\n- **`eval_samples`**: number of samples for scoring. A higher value can produce more reliable scores and potentially a better final architecture, but scoring time scales roughly linearly with this parameter. 32 is the value we use here as a reasonable accuracy/runtime trade-off for tutorial reproducibility." }, { "cell_type": "code", @@ -147,8 +126,6 @@ "!sed -i 's/\"torch\\.bfloat16\"/\"bfloat16\"/g' \\\n", " /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0/config.json\n", "\n", - "!sed -i '1s/^/__version__ = \"0.4.8\"\\n/' /usr/local/lib/python3.12/dist-packages/lm_eval/__init__.py\n", - "\n", "!cd /workspace/Model-Optimizer && \\\n", "python examples/llm_eval/lm_eval_hf.py \\\n", " --model hf \\\n", @@ -162,13 +139,7 @@ "cell_type": "markdown", "id": "938c804e27f84196a10c8828c723f798", "metadata": {}, - "source": [ - "## 6. Distill\n", - "\n", - "Distill the heterogeneous Puzzletron model against the original Qwen3-8B teacher. Same distillation recipe as the Minitron notebooks: 100 iterations on WikiText-103.\n", - "\n", - "The `distill.py` script handles both distillation and automatic export to HuggingFace format in one step." - ] + "source": "## 6. Distill\n\nDistill the heterogeneous Puzzletron model against the original Qwen3-8B teacher. Same distillation recipe as the Minitron notebooks: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1).\n\nThe `distill.py` script handles both distillation and automatic export to HuggingFace format in one step." }, { "cell_type": "markdown", @@ -261,20 +232,7 @@ "cell_type": "markdown", "id": "c3933fab20d04ec698c2621248eb3be0", "metadata": {}, - "source": [ - "## 7. Evaluate distilled model\n", - "\n", - "Compare with the Minitron result at the same parameter target (see `scenario1_minitron.ipynb`).\n", - "\n", - "**Expected results on Qwen3-8B:**\n", - "\n", - "| Model | Parameters | MMLU (5-shot) | % of Teacher |\n", - "|---|---|---|---|\n", - "| Qwen3-8B (teacher) | 8B | 0.7493 | 100% |\n", - "| **Minitron 7B — distilled** | **6.96B** | **0.7166** | **95.6%** |\n", - "| Puzzletron 7B — pruned | 6.99B | 0.6621 | 88.4% |\n", - "| Puzzletron 7B — distilled | 6.99B | 0.6823 | 91.1% |" - ] + "source": "## 7. Evaluate distilled model\n\nCompare with the Minitron result at the same parameter target (see [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Parameters | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 8B | 0.7493 | 100% |\n| **Minitron 7B — distilled** | **6.96B** | **0.7166** | **95.6%** |\n| Puzzletron 7B — pruned | 6.99B | 0.6621 | 88.4% |\n| Puzzletron 7B — distilled | 6.99B | 0.6823 | 91.1% |" }, { "cell_type": "code", @@ -306,4 +264,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/examples/pruning/demo/scenario2_minitron.ipynb b/examples/pruning/demo/scenario2_minitron.ipynb index c3776adf6ef..80e9a1b5125 100644 --- a/examples/pruning/demo/scenario2_minitron.ipynb +++ b/examples/pruning/demo/scenario2_minitron.ipynb @@ -4,31 +4,13 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": [ - "# Scenario 2 — Minitron: Aggressive Depth Pruning (Comparison Baseline) (~45 min on 2x H200)\n", - "\n", - "This notebook prunes Qwen3-8B from 36 layers down to 22 layers using **Minitron** depth pruning, then distills and evaluates the result.\n", - "\n", - "This serves as the **comparison baseline** for Scenario 2. The recommended approach for aggressive compression is Puzzletron (see `scenario2_puzzletron.ipynb`). We run Minitron here to demonstrate why depth pruning underperforms at this compression level.\n", - "\n", - "**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n", - "\n", - "**Prerequisites:**\n", - "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", - "- Base model downloaded at `/workspace/models/Qwen3-8B`." - ] + "source": "# Scenario 2 — Minitron: Aggressive Depth Pruning (Comparison Baseline) (~45 min on 2x H200)\n\nThis notebook prunes Qwen3-8B from 36 layers down to 22 layers using **Minitron** depth pruning, then distills and evaluates the result.\n\nThis serves as the **comparison baseline** for Scenario 2. The recommended approach for aggressive compression is Puzzletron (see [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)). We run Minitron here to demonstrate why depth pruning underperforms at this compression level.\n\n**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." }, { "cell_type": "markdown", "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, - "source": [ - "## 1. Prune (36 → 22 layers)\n", - "\n", - "To match the ~78,000 MiB memory budget used in the Puzzletron comparison, we need aggressive compression. With Minitron, the most effective way to achieve large memory savings is **depth pruning** — removing entire Transformer layers. Each layer carries not only its weights but also a KV cache allocation at inference time, so dropping a layer saves both weight memory and KV cache memory. This makes depth pruning far more memory-efficient per parameter removed than width pruning alone.\n", - "\n", - "Minitron ranks the layers to decide which 14 layers to drop, keeping the 22 that contribute most to the model's output quality." - ] + "source": "## 1. Prune (36 → 22 layers)\n\nTo match the ~78,000 MiB memory budget used in the Puzzletron comparison, we need aggressive compression. With Minitron, the most effective way to achieve large memory savings is **depth pruning** — removing entire Transformer layers. Each layer carries not only its weights but also a KV cache allocation at inference time, so dropping a layer saves both weight memory and KV cache memory. This makes depth pruning far more memory-efficient per parameter removed than width pruning alone.\n\n**Why 22 layers?** Each Qwen3-8B layer accounts for ~3,440 MiB at the inference settings used in this guide (KV cache + attention + FFN weights; the full breakdown is computed in [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)). Dropping 14 of the 36 layers removes ~48,160 MiB, taking the baseline from 126,215 MiB down to ~78,055 MiB — within the 78,000 MiB target.\n\nMinitron ranks the layers to decide which 14 layers to drop, keeping the 22 that contribute most to the model's output quality." }, { "cell_type": "code", @@ -124,11 +106,7 @@ "cell_type": "markdown", "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, - "source": [ - "\n", - "Distill the 22-layer model against the full Qwen3-8B teacher. Same setup as Scenario 1: 100 iterations on WikiText-103.\n", - "> **Expected runtime: ~20-30 minutes on 2x H200.**" - ] + "source": "\nDistill the 22-layer model against the full Qwen3-8B teacher. Same setup as Scenario 1: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1).\n> **Expected runtime: ~20-30 minutes on 2x H200.**" }, { "cell_type": "code", @@ -200,20 +178,7 @@ "cell_type": "markdown", "id": "c91a1b15", "metadata": {}, - "source": [ - "## 6. Evaluate distilled model\n", - "\n", - "Compare with the Puzzletron result at the same memory budget (see `scenario2_puzzletron.ipynb`).\n", - "\n", - "**Expected results on Qwen3-8B:**\n", - "\n", - "| Model | Memory | MMLU (5-shot) | % of Teacher |\n", - "|---|---|---|---|\n", - "| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n", - "| Minitron 22L — pruned | 78,054 MiB | 0.2351 | 31.4% |\n", - "| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |\n", - "| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |" - ] + "source": "## 6. Evaluate distilled model\n\nCompare with the Puzzletron result at the same memory budget (see [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Memory | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n| Minitron 22L — pruned | 78,054 MiB | 0.2351 | 31.4% |\n| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |\n| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |" }, { "cell_type": "code", @@ -243,4 +208,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file diff --git a/examples/pruning/demo/scenario2_puzzletron.ipynb b/examples/pruning/demo/scenario2_puzzletron.ipynb index f9a3a87266e..77458541777 100644 --- a/examples/pruning/demo/scenario2_puzzletron.ipynb +++ b/examples/pruning/demo/scenario2_puzzletron.ipynb @@ -4,29 +4,13 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": [ - "# Scenario 2 — Puzzletron: Hardware-Constrained Compression (~6h15 on 2x H200)\n", - "\n", - "This notebook compresses Qwen3-8B to fit within a **78,000 MiB memory budget** using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n", - "\n", - "This is the **recommended approach** for Scenario 2. Puzzletron can directly target a memory constraint via its MIP (Mixed-Integer Programming) solver, producing a heterogeneous architecture that maximizes accuracy within the budget. For comparison, see `scenario2_minitron.ipynb`.\n", - "\n", - "**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n", - "\n", - "**Prerequisites:**\n", - "- Run `00_prerequisites.ipynb` first to prepare the distillation dataset.\n", - "- Base model downloaded at `/workspace/models/Qwen3-8B`." - ] + "source": "# Scenario 2 — Puzzletron: Hardware-Constrained Compression (~6h15 on 2x H200)\n\nThis notebook compresses Qwen3-8B to fit within a **78,000 MiB memory budget** using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n\nThis is the **recommended approach** for Scenario 2. Puzzletron can directly target a memory constraint via its MIP (Mixed-Integer Programming) solver, producing a heterogeneous architecture that maximizes accuracy within the budget. For comparison, see [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb).\n\n**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." }, { "cell_type": "markdown", "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, - "source": [ - "## 1. Install Puzzletron dependencies\n", - "\n", - "Puzzletron requires additional dependencies beyond the base ModelOpt installation. Skip this step if you already ran `scenario1_puzzletron.ipynb` in the same container session." - ] + "source": "## 1. Install Puzzletron dependencies\n\nPuzzletron requires additional dependencies beyond the base ModelOpt installation. Skip this step if you already ran [`scenario1_puzzletron.ipynb`](scenario1_puzzletron.ipynb) in the same container session." }, { "cell_type": "code", @@ -37,8 +21,7 @@ "source": [ "!cd /workspace/Model-Optimizer && \\\n", "pip install -e .[hf,puzzletron] && \\\n", - "pip install -r examples/puzzletron/requirements.txt && \\\n", - "pip install lm-eval==0.4.8" + "pip install -r examples/puzzletron/requirements.txt" ] }, { @@ -68,23 +51,7 @@ "cell_type": "markdown", "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, - "source": [ - "## 3. Configure the NAS search\n", - "\n", - "Puzzletron is driven by two YAML configuration files:\n", - "\n", - "- **`qwen3_8b_pruneffn_memory.yaml`** — The top-level config. It sets the input model path, the calibration dataset path, the working directory, the MIP memory constraint, and the list of FFN intermediate sizes to search over (the search space). This is the file you edit for each experiment.\n", - "\n", - "- **`qwen3_8b.yaml`** — The base model config. It defines the full pipeline settings: pruning strategy, scoring parameters, MIP solver settings (constraints, objective function, batch sizes for memory computation)... Most of these can be left at their defaults.\n", - "\n", - "Here, the **primary constraint is memory** (78,000 MiB), not parameter count. We set:\n", - "- **`input_hf_model_path`**: path to the base Qwen3-8B model\n", - "- **`target_memory`**: 78,000 MiB — the hard memory ceiling the compressed model must fit within\n", - "- **`num_params`**: set high (8B) so it doesn't constrain — memory is the binding constraint\n", - "- **`eval_samples`**: number of samples for scoring (32 for faster search)\n", - "\n", - "This is Puzzletron's strength: the MIP solver directly optimizes for the memory budget, accounting for both weights and KV cache per layer." - ] + "source": "## 3. Configure the NAS search\n\nPuzzletron is driven by two YAML configuration files:\n\n- **`qwen3_8b_pruneffn_memory.yaml`** — The top-level config. It sets the input model path, the calibration dataset path, the working directory, the MIP memory constraint, and the list of FFN intermediate sizes to search over (the search space). This is the file you edit for each experiment.\n\n- **`qwen3_8b.yaml`** — The base model config. It defines the full pipeline settings: pruning strategy, scoring parameters, MIP solver settings (constraints, objective function, batch sizes for memory computation)... Most of these can be left at their defaults.\n\nHere, the **primary constraint is memory** (78,000 MiB), not parameter count. We set:\n- **`input_hf_model_path`**: path to the base Qwen3-8B model\n- **`target_memory`**: 78,000 MiB — the hard memory ceiling the compressed model must fit within\n- **`num_params`**: set high (8B) so it doesn't constrain — memory is the binding constraint\n- **`eval_samples`**: number of samples for scoring. A higher value can produce more reliable scores and potentially a better final architecture, but scoring time scales roughly linearly with this parameter. 32 is the value we use here as a reasonable accuracy/runtime trade-off for tutorial reproducibility.\n\nThis is Puzzletron's strength: the MIP solver directly optimizes for the memory budget, accounting for both weights and KV cache per layer." }, { "cell_type": "code", @@ -284,8 +251,6 @@ "!sed -i 's/\"torch\\.bfloat16\"/\"bfloat16\"/g' \\\n", " /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0/config.json\n", "\n", - "!sed -i '1s/^/__version__ = \"0.4.8\"\\n/' /usr/local/lib/python3.12/dist-packages/lm_eval/__init__.py\n", - "\n", "!cd /workspace/Model-Optimizer && \\\n", "python examples/llm_eval/lm_eval_hf.py \\\n", " --model hf \\\n", @@ -299,13 +264,7 @@ "cell_type": "markdown", "id": "938c804e27f84196a10c8828c723f798", "metadata": {}, - "source": [ - "## 6. Distill\n", - "\n", - "Distill the heterogeneous model against the original Qwen3-8B teacher. Same recipe: 100 iterations on WikiText-103. At this compression level, distillation is critical — it transforms the model from near-random to functional.\n", - "\n", - "The `distill.py` script handles both distillation and automatic export to HuggingFace format." - ] + "source": "## 6. Distill\n\nDistill the heterogeneous model against the original Qwen3-8B teacher. Same recipe: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1). At this compression level, distillation is critical — it transforms the model from near-random to functional.\n\nThe `distill.py` script handles both distillation and automatic export to HuggingFace format." }, { "cell_type": "markdown", @@ -398,20 +357,7 @@ "cell_type": "markdown", "id": "c3933fab20d04ec698c2621248eb3be0", "metadata": {}, - "source": [ - "## 7. Evaluate distilled model\n", - "\n", - "Compare with the Minitron result at the same memory budget (see `scenario2_minitron.ipynb`).\n", - "\n", - "**Expected results on Qwen3-8B:**\n", - "\n", - "| Model | Memory | MMLU (5-shot) | % of Teacher |\n", - "|---|---|---|---|\n", - "| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n", - "| Puzzletron 78k — pruned | 77,992 MiB | 0.2752 | 36.7% |\n", - "| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |\n", - "| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |" - ] + "source": "## 7. Evaluate distilled model\n\nCompare with the Minitron result at the same memory budget (see [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Memory | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n| Puzzletron 78k — pruned | 77,992 MiB | 0.2752 | 36.7% |\n| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |\n| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |" }, { "cell_type": "code", @@ -519,4 +465,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} +} \ No newline at end of file From de51d091a9a3af7ff1a261b91b20e4d600041fdc Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Tue, 5 May 2026 13:56:44 +0200 Subject: [PATCH 6/8] address Keval's comments Signed-off-by: Alexandre Chidiac --- examples/pruning/demo/00_prerequisites.ipynb | 184 ------------------ .../00_prerequisites.ipynb | 73 +++++++ .../README.md | 92 ++++----- .../advanced_compression_experiments.md | 0 .../all_curves_throughput_vs_latency.png | Bin .../figures}/distillation_curves.png | Bin .../figures}/distillation_loss_7B.png | Bin .../figures}/memory_sweep.png | Bin .../figures}/memory_sweep_combined.png | Bin .../figures}/summary_chart.png | Bin .../scenario1_minitron.ipynb | 73 ++++--- .../scenario1_puzzletron.ipynb | 56 ++---- .../scenario2_minitron.ipynb | 74 ++++--- .../scenario2_puzzletron.ipynb | 70 +++---- 14 files changed, 248 insertions(+), 374 deletions(-) delete mode 100644 examples/pruning/demo/00_prerequisites.ipynb create mode 100644 examples/pruning/minitron_vs_puzzletron/00_prerequisites.ipynb rename examples/pruning/{demo => minitron_vs_puzzletron}/README.md (89%) rename examples/pruning/{demo => minitron_vs_puzzletron}/advanced_compression_experiments.md (100%) rename examples/pruning/{demo => minitron_vs_puzzletron/figures}/all_curves_throughput_vs_latency.png (100%) rename examples/pruning/{demo => minitron_vs_puzzletron/figures}/distillation_curves.png (100%) rename examples/pruning/{demo => minitron_vs_puzzletron/figures}/distillation_loss_7B.png (100%) rename examples/pruning/{demo => minitron_vs_puzzletron/figures}/memory_sweep.png (100%) rename examples/pruning/{demo => minitron_vs_puzzletron/figures}/memory_sweep_combined.png (100%) rename examples/pruning/{demo => minitron_vs_puzzletron/figures}/summary_chart.png (100%) rename examples/pruning/{demo => minitron_vs_puzzletron}/scenario1_minitron.ipynb (67%) rename examples/pruning/{demo => minitron_vs_puzzletron}/scenario1_puzzletron.ipynb (80%) rename examples/pruning/{demo => minitron_vs_puzzletron}/scenario2_minitron.ipynb (56%) rename examples/pruning/{demo => minitron_vs_puzzletron}/scenario2_puzzletron.ipynb (86%) diff --git a/examples/pruning/demo/00_prerequisites.ipynb b/examples/pruning/demo/00_prerequisites.ipynb deleted file mode 100644 index 1c4bb220bfc..00000000000 --- a/examples/pruning/demo/00_prerequisites.ipynb +++ /dev/null @@ -1,184 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "27446984", - "metadata": {}, - "source": "# Prerequisites: Data Preparation & Baseline Evaluation (~15 min on 2x H200)\n\nThis notebook has two goals:\n1. **Prepare the distillation dataset** — download [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) and tokenize it into the binary format expected by Megatron-Bridge. This dataset is used during the distillation step (after pruning) in all scenario notebooks.\n2. **Establish the teacher baseline** — evaluate the original Qwen3-8B on MMLU before any compression.\n\n> **Why prepare the dataset before compression?** The distillation step (which comes *after* pruning) requires a pre-tokenized dataset in Megatron binary format. Preparing it upfront avoids interrupting the compression pipeline and ensures a consistent dataset across all scenarios.\n\n> **Note on calibration datasets:** Pruning also requires calibration data to score the importance of each component — the model runs forward passes on a small dataset to measure how much each neuron, head, or layer contributes to the output. This calibration data (we use [`nvidia/Nemotron-Post-Training-Dataset-v2`](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2)) is handled separately in each scenario notebook. Minitron downloads it automatically under the hood, while Puzzletron requires an explicit preparation step. See the respective notebooks ([`scenario1_minitron.ipynb`](scenario1_minitron.ipynb), [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb), etc.) for details.\n\n**Prerequisites:** Run this notebook from inside the NeMo container with the base model already downloaded at `/workspace/models/Qwen3-8B` (see the guide's Prerequisites section)." - }, - { - "cell_type": "markdown", - "id": "b25245c6", - "metadata": {}, - "source": [ - "## 0. Install ModelOpt from the cloned repository\n", - "\n", - "Replace the container's pre-installed ModelOpt with the version from the cloned repository (which includes the Puzzletron and Minitron features used in this guide)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0ac537de", - "metadata": {}, - "outputs": [], - "source": [ - "!rm -rf /opt/venv/lib/python3.12/site-packages/modelopt\n", - "!cp -r /workspace/Model-Optimizer/modelopt /opt/venv/lib/python3.12/site-packages/modelopt\n", - "!mkdir -p /workspace/datasets" - ] - }, - { - "cell_type": "markdown", - "id": "ea318822", - "metadata": {}, - "source": [ - "## 1. Download distillation dataset\n", - "\n", - "For distillation, we use WikiText-103 — a small, generic language modeling dataset. We download it and save it as JSONL, which is the input format expected by the Megatron tokenizer." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "22112d26", - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "import os\n", - "\n", - "from datasets import load_dataset\n", - "\n", - "DATA_PATH = \"/workspace/datasets/wikitext-103-v1\"\n", - "os.makedirs(DATA_PATH, exist_ok=True)\n", - "\n", - "dataset = load_dataset(\"wikitext\", \"wikitext-103-v1\", split=\"train\")\n", - "\n", - "with open(f\"{DATA_PATH}/wikitext-train.jsonl\", \"w\") as file:\n", - " file.writelines(json.dumps(item) + \"\\n\" for item in dataset)\n", - "\n", - "print(f\"Saved {len(dataset)} samples to {DATA_PATH}/wikitext-train.jsonl\")" - ] - }, - { - "cell_type": "markdown", - "id": "143149a8", - "metadata": {}, - "source": [ - "## 2. Tokenize for Megatron\n", - "\n", - "Megatron-Bridge requires data in a pre-tokenized binary format (`.bin` + `.idx` index file) rather than raw text. This format allows fast random access during training without re-tokenizing on the fly.\n", - "\n", - "This step runs the Qwen3-8B tokenizer over the WikiText-103 JSONL and writes the output in the Megatron binary format expected by the distillation scripts." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ddd2e70b", - "metadata": {}, - "outputs": [], - "source": [ - "from modelopt.torch.utils.plugins import megatron_preprocess_data\n", - "\n", - "megatron_preprocess_data(\n", - " jsonl_paths=\"/workspace/datasets/wikitext-103-v1/wikitext-train.jsonl\",\n", - " output_dir=\"/workspace/datasets/wikitext-103-v1\",\n", - " tokenizer_name_or_path=\"/workspace/models/Qwen3-8B\",\n", - " json_keys=[\"text\"],\n", - " workers=32,\n", - " log_interval=100000,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "79027a32", - "metadata": {}, - "source": [ - "## 3. Verify\n", - "\n", - "Check that all expected files are in place." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "66442d5c", - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "distill_path = \"/workspace/datasets/wikitext-103-v1\"\n", - "expected_files = [\"wikitext-train.jsonl\", \"wikitext-train_text.bin\", \"wikitext-train_text.idx\"]\n", - "\n", - "print(f\"Distillation dataset: {distill_path}\")\n", - "for f in expected_files:\n", - " full = os.path.join(distill_path, f)\n", - " exists = os.path.isfile(full)\n", - " size = os.path.getsize(full) / (1024**2) if exists else 0\n", - " print(f\" {f}: {'OK' if exists else 'MISSING'} ({size:.1f} MB)\")\n", - "\n", - "print()\n", - "print(\"Data preparation complete. You can now proceed to the scenario notebooks.\")" - ] - }, - { - "cell_type": "markdown", - "id": "ynlx6sgkqr", - "metadata": {}, - "source": [ - "## 4. Evaluate teacher model (baseline)\n", - "\n", - "Before compressing, we establish the baseline MMLU score for the original Qwen3-8B. Results in the guide are expressed as a percentage of this number.\n", - "\n", - "We use [`lm-eval`](https://github.com/EleutherAI/lm-evaluation-harness) — a standard open-source evaluation harness — to run the MMLU benchmark. MMLU (Massive Multitask Language Understanding) covers 57 subjects across STEM, humanities, and social sciences, using 4-choice questions. The 5-shot setting provides 5 in-context examples per question, which is the standard configuration for comparing LLMs on this benchmark." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "zzansswg3zq", - "metadata": {}, - "outputs": [], - "source": [ - "!lm_eval --model hf \\\n", - " --model_args pretrained=/workspace/models/Qwen3-8B,dtype=bfloat16 \\\n", - " --tasks mmlu \\\n", - " --num_fewshot 5 \\\n", - " --batch_size 4" - ] - }, - { - "cell_type": "markdown", - "id": "281mvurl3op", - "metadata": {}, - "source": [ - "**Expected result:** MMLU (5-shot) = **0.7493**. This is the teacher baseline used throughout the guide." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/examples/pruning/minitron_vs_puzzletron/00_prerequisites.ipynb b/examples/pruning/minitron_vs_puzzletron/00_prerequisites.ipynb new file mode 100644 index 00000000000..0cf76664a68 --- /dev/null +++ b/examples/pruning/minitron_vs_puzzletron/00_prerequisites.ipynb @@ -0,0 +1,73 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27446984", + "metadata": {}, + "source": "# Prerequisites: Data Preparation & Baseline Evaluation (~15 min on 2x H200)\n\nThis notebook has two goals:\n1. **Prepare the distillation dataset** — download [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) and tokenize it into the binary format expected by Megatron-Bridge. This dataset is used during the distillation step (after pruning) in all scenario notebooks.\n2. **Establish the teacher baseline** — evaluate the original Qwen3-8B on MMLU before any compression.\n\n> **Why prepare the dataset before compression?** The distillation step (which comes *after* pruning) requires a pre-tokenized dataset in Megatron binary format. Preparing it upfront avoids interrupting the compression pipeline and ensures a consistent dataset across all scenarios.\n\n> **Note on calibration datasets:** Pruning also requires calibration data to score the importance of each component — the model runs forward passes on a small dataset to measure how much each neuron, head, or layer contributes to the output. This calibration data (we use [`nvidia/Nemotron-Post-Training-Dataset-v2`](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2)) is handled separately in each scenario notebook. Minitron downloads it automatically under the hood, while Puzzletron requires an explicit preparation step. See the respective notebooks ([`scenario1_minitron.ipynb`](scenario1_minitron.ipynb), [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb), etc.) for details.\n\n**Prerequisites:** Run this notebook from inside the NeMo container with the base model already downloaded at `/workspace/models/Qwen3-8B` (see the guide's Prerequisites section)." + }, + { + "cell_type": "markdown", + "id": "ea318822", + "metadata": {}, + "source": "## 1. Download and tokenize distillation dataset\n\nFor distillation we use [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) — a small, generic language modeling dataset.\n\nThe `megatron_preprocess_data` utility downloads the dataset directly from the HuggingFace Hub and tokenizes it into the binary `.bin` / `.idx` format expected by Megatron-Bridge in a single step (~2 min)." + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22112d26", + "metadata": {}, + "outputs": [], + "source": "!python -m modelopt.torch.utils.plugins.megatron_preprocess_data \\\n --hf_dataset wikitext \\\n --hf_name wikitext-103-v1 \\\n --hf_split train \\\n --json_keys text \\\n --tokenizer /workspace/models/Qwen3-8B \\\n --output_dir /workspace/datasets/tokenized_qwen3 \\\n --workers 32 \\\n --append_eod \\\n --strip_newlines" + }, + { + "cell_type": "markdown", + "id": "ynlx6sgkqr", + "metadata": {}, + "source": "## 2. Evaluate teacher model (baseline)\n\nBefore compressing, we establish the baseline MMLU score for the original Qwen3-8B. Results in the guide are expressed as a percentage of this number.\n\nWe use [`lm-eval`](https://github.com/EleutherAI/lm-evaluation-harness) — a standard open-source evaluation harness — to run the MMLU benchmark. MMLU (Massive Multitask Language Understanding) covers 57 subjects across STEM, humanities, and social sciences, using 4-choice questions. The 5-shot setting provides 5 in-context examples per question, which is the standard configuration for comparing LLMs on this benchmark." + }, + { + "cell_type": "code", + "execution_count": null, + "id": "zzansswg3zq", + "metadata": {}, + "outputs": [], + "source": [ + "!lm_eval --model hf \\\n", + " --model_args pretrained=/workspace/models/Qwen3-8B,dtype=bfloat16 \\\n", + " --tasks mmlu \\\n", + " --num_fewshot 5 \\\n", + " --batch_size 4" + ] + }, + { + "cell_type": "markdown", + "id": "281mvurl3op", + "metadata": {}, + "source": [ + "**Expected result:** MMLU (5-shot) = **0.7493**. This is the teacher baseline used throughout the guide." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/examples/pruning/demo/README.md b/examples/pruning/minitron_vs_puzzletron/README.md similarity index 89% rename from examples/pruning/demo/README.md rename to examples/pruning/minitron_vs_puzzletron/README.md index a4f28f85403..2f0e8f5fe0f 100644 --- a/examples/pruning/demo/README.md +++ b/examples/pruning/minitron_vs_puzzletron/README.md @@ -2,7 +2,7 @@ ## Table of Contents -1.[Introduction](#1-introduction) +1\. [Introduction](#1-introduction) [Part I — Setup & Experiments](#part-i--setup--experiments) @@ -18,7 +18,7 @@ 8. [Limitations & Practical Tips](#8-limitations--practical-tips) 9. [Open Questions](#9-open-questions) -10.[References](#10-references) +10\. [References](#10-references) --- @@ -37,12 +37,12 @@ Throughout this guide, we use [**Qwen3-8B**](https://huggingface.co/Qwen/Qwen3-8 |---|---|---| | **Goal** | Make my general-purpose model smaller and faster, quickly and reliably | Fit a strict hardware memory budget | | **Usecases** | Create a smaller version of the same model architecture to form a consistent family | Create a single, highly optimized deployment model that fits specific hardware budget | -| **Compression** | Light/Moderate (10–15% parameter reduction) | Aggressive (>30% memory reduction) | +| **Compression** | Light/Moderate (10–20% parameter reduction) | Aggressive (>30% memory reduction) | | **Method** | Homogeneous Pruning ([Minitron](https://arxiv.org/abs/2408.11796)) | Heterogeneous NAS-based Pruning ([Puzzletron](https://arxiv.org/html/2411.19146v3)) | | **Complexity** | Low — Importance-based ranking, uniform pruning | High — Fine-grained NAS search + MIP optimization | | **Output** | Homogeneous (all Transformer blocks have the same structure) | Heterogeneous architecture (variable layer widths) | -Both paths are followed by **knowledge distillation**, which recovers accuracy lost during pruning. In our Qwen3-8B experiments, we show that significant recovery is possible with as few as 100 training iterations on a small dataset, though actual recovery will vary by model and compression level. +Both paths are followed by **knowledge distillation**, which recovers accuracy lost during pruning. In our Qwen3-8B experiments, we show that significant recovery (in MMLU) is possible with as few as 100 training iterations on a small dataset, though actual recovery will vary by model and compression level. The overall pipeline is the same for both scenarios — only the compression step differs: @@ -75,7 +75,7 @@ flowchart LR - **Quantization**: reducing numerical precision (e.g. FP16 → INT8). - **Sparsity**: zeroing out weights while keeping the architecture. -- **MoE and hybrid architectures**: this guide focuses on dense Transformer models. Compression of Mixture-of-Experts (MoE) and hybrid architectures will be covered in a future guide. +- **MoE and hybrid architectures**: this guide focuses on dense Transformer models. For an end-to-end Minitron pruning + distillation + FP8 PTQ + vLLM deployment example on a Mamba-Transformer hybrid, see the [Nemotron-Nano-9B-v2 tutorial](../minitron/NVIDIA-Nemotron-Nano-9B-v2/README.md). Compression of Mixture-of-Experts (MoE) architectures will be covered in a future guide. > **Note:** Pruning and quantization are complementary. After following this guide, you can further compress your pruned model with quantization for additional deployment gains. @@ -83,7 +83,7 @@ flowchart LR **Minitron is a special case of Puzzletron**: any architecture Minitron can produce, Puzzletron can also find. Both follow the same pipeline (find a smaller architecture, then recover accuracy via distillation); they score the components of each Transformer layer (neurons, attention heads, FFN widths) and remove the ones that contribute least to the model's output. What distinguishes them is how fine-grained that search is. -- **Minitron** applies *homogeneous pruning*: the same pruning decision is applied across all layers simultaneously. The compression target is a **parameter count** (e.g. "reduce to 7B"). The result is a standard, smaller model with the same architecture type as the original. Fast and simple. +- **Minitron** applies *homogeneous pruning*: the same pruning decision is applied across all layers simultaneously. The compression target is a **parameter count** (e.g. "reduce to 7B"). Direct memory-budget targeting is also now supported as a recently added Minitron feature. The result is a standard, smaller model with the same architecture type as the original. Fast and simple. - **Puzzletron** applies *heterogeneous pruning* via Neural Architecture Search (NAS): it evaluates multiple candidate configurations for each layer independently (different FFN widths, optional attention removal), then uses Mixed-Integer Programming (MIP) to find the optimal per-layer combination under a given resource constraint (e.g. a **memory budget**). The result is a model where each layer can have a different structure, tailored to a specific hardware budget. More powerful, but slower. @@ -97,7 +97,7 @@ Puzzletron's per-layer search space is much broader than Minitron's. The trade-o **Guide organization:** This guide is split into two parts. **Part I — Setup & Experiments** (Sections 2–4) covers the technicalities needed to reproduce the experiments: environment setup and step-by-step walkthroughs for each scenario. **Part II — Results, Analysis & Insights** (Sections 5–9) focuses on what those experiments reveal: a head-to-head comparison, a deep dive into distillation, inference benchmarks, practical tips and limitations, and open questions for future work. -> **Note on reproducibility:** The pruning frameworks and scoring mechanisms used by Minitron and Puzzletron are under active development. As ModelOpt evolves, exact evaluation numbers may differ from one release to another. The trends and comparative insights presented in this guide (which method wins in which regime, how distillation behaves, and the accuracy-compression trade-offs) are expected to remain consistent. +> **Note on reproducibility:** All experiments in this guide were run on the [NeMo container 26.02](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo?version=26.02.00) with `nvidia-modelopt` 0.43.0. The pruning frameworks and scoring mechanisms used by Minitron and Puzzletron are under active development. As ModelOpt evolves, exact evaluation numbers may differ from one release to another. The trends and comparative insights presented in this guide (which method wins in which regime, how distillation behaves, and the accuracy-compression trade-offs) are expected to remain consistent. --- @@ -115,15 +115,29 @@ All experiments in this guide were run on **2x H200 GPUs**. This can be adapted > **Architecture requirement:** The NeMo container and ModelOpt scripts used in this guide require an **x86-64 (AMD64)** host. +### Clone ModelOpt + +Clone the ModelOpt repository on your host machine. It will be mounted into the container in the next step, so any changes you make to the source persist across sessions: + +```bash +export MODELOPT_DIR=${PWD}/Model-Optimizer +git clone https://github.com/NVIDIA/Model-Optimizer.git ${MODELOPT_DIR} +chmod -R 777 ${MODELOPT_DIR} +``` + +> **Permissions:** The `chmod -R 777` ensures the container (running as root) can write to the mounted directory. + ### Container > **Setup source of truth:** ModelOpt evolves quickly. The instructions below reflect the setup used at the time this guide was written and are provided as a working example. For the most up-to-date container version and installation steps, refer to: -> [puzzletron/mbridge_distillation/README.md](https://github.com/NVIDIA/Model-Optimizer/blob/feature/puzzletron/examples/puzzletron/mbridge_distillation/README.md) +> [megatron_bridge/README.md](https://github.com/NVIDIA/Model-Optimizer/blob/main/examples/megatron_bridge/README.md) -We use the [NVIDIA NeMo Framework Docker container (26.02)](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo?version=26.02.00), which includes all the libraries needed pre-installed (including [Megatron-Bridge](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/megatron_bridge/README.md) — NVIDIA's library that bridges HuggingFace models with the Megatron-LM training framework, enabling efficient multi-GPU distillation). +We use the [NVIDIA NeMo Framework Docker container (26.02)](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/nemo?version=26.02.00), which includes all the libraries needed pre-installed (including [Megatron-Bridge](https://github.com/NVIDIA-Nemo/Megatron-Bridge) — NVIDIA's library that bridges HuggingFace models with the Megatron-core framework, enabling efficient multi-GPU distillation). You need [Docker](https://docs.docker.com/get-docker/) and the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) to enable GPU access inside containers. +Launch the container with the cloned repo mounted at `/opt/Model-Optimizer`: + ```bash docker run \ --gpus all \ @@ -131,26 +145,20 @@ docker run \ --net=host \ --ulimit memlock=-1 \ --rm -it \ + -v ${MODELOPT_DIR}:/opt/Model-Optimizer \ -w /workspace \ - nvcr.io/nvidia/nemo:26.02 bash + nvcr.io/nvidia/nemo:26.02 bash -c "umask 000 && exec bash" ``` -### Clone ModelOpt +### Install dependencies -Clone the ModelOpt repository to access examples and scripts: +Once inside the container, uninstall the pre-existing `nvidia-modelopt`, `lm_eval`, and `nvidia_lm_eval` so they don't cause version conflicts. Then install ModelOpt from the cloned repo as an editable package with the `hf` and `puzzletron` extras, and add the extra Puzzletron-example dependencies (which include `lm-eval` for benchmark evaluation). Together these steps cover the dependencies for all scenarios in this guide: ```bash -git clone https://github.com/NVIDIA/Model-Optimizer.git /workspace/Model-Optimizer -cd /workspace/Model-Optimizer -``` - -### Evaluation setup - -Inside the container, install `lm-eval` for benchmark evaluation: - -```bash -rm -rf /opt/venv/lib/python3.12/site-packages/lm_eval -pip install lm-eval==0.4.8 +/usr/bin/python3 -m pip uninstall -y nvidia-modelopt +python -m pip uninstall -y lm_eval nvidia_lm_eval +cd /opt/Model-Optimizer && python -m pip install -e ".[hf,puzzletron]" +python -m pip install -r /opt/Model-Optimizer/examples/puzzletron/requirements.txt ``` ### Base model @@ -183,18 +191,10 @@ hf download Qwen/Qwen3-8B --local-dir /workspace/models/Qwen3-8B | [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb) | Scenario 2 — Minitron | ~45 min | | [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb) | Scenario 2 — Puzzletron | ~6h15 (on first Puzzletron run) | -From within the container, copy the notebooks to your local workspace: - -```bash -cp -r /workspace/Model-Optimizer/examples/pruning/demo/* /workspace -``` - -If this doesn't work, upload the notebooks manually in Jupyter after launching it. - -Finally, start Jupyter Lab: +From within the container, run the notebooks directly from the mounted ModelOpt repo so any edits you make persist on your host machine. Start Jupyter Lab in the notebook directory: ```bash -cd /workspace +cd /opt/Model-Optimizer/examples/pruning/minitron_vs_puzzletron pip install --upgrade ipywidgets notebook jupyter lab --ip 0.0.0.0 --port=8888 --allow-root ``` @@ -205,13 +205,13 @@ jupyter lab --ip 0.0.0.0 --port=8888 --allow-root > *"I need a smaller and faster general-purpose model — quickly and reliably."* -You have a working LLM and want to reduce its size by 10–15% (in number of parameters) for general-purpose tasks. You need a straightforward pipeline with predictable results and a standard, homogeneous model as output. You don't want to invest time experimenting and familiarizing with a complex pipeline or dealing with heterogeneous model formats. +You have a working LLM and want to reduce its size by up to 20% (in number of parameters) for general-purpose tasks. You need a straightforward pipeline with predictable results and a standard, homogeneous model as output. You don't want to invest time experimenting and familiarizing with a complex pipeline or dealing with heterogeneous model formats. **Minitron** is the right tool for this job. ### 3.1 When to choose this path -- Your compression target is **moderate** (10–15% reduction in number of parameters). +- Your compression target is **moderate** (10–20% reduction in number of parameters). - You want a **simple, fast pipeline**: prune → distill → deploy. - You need a **standard/homogeneous model** as output (same architecture type, just smaller). - You value **predictability**: Minitron's importance-based ranking produces consistent results. @@ -405,7 +405,7 @@ In theory, Minitron is a subset of Puzzletron: any architecture Minitron can fin On MMLU, Minitron outperforms Puzzletron at this level (+3.43pp post-distill). Its uniform pruning directly targets a parameter count, produces a clean architecture in a single step, and avoids the complexity of a full NAS pipeline. At the same time, this advantage is benchmark-dependent: on other benchmarks, Puzzletron could retain more of the teacher's accuracy than Minitron (see [Section 5.4](#54-benchmark-specific-behavior)). This means there is no single-bullet approach: different compression methods have their winning territories even at moderate compression. That said, when factoring in pipeline complexity and the standard model format Minitron produces, it remains the practical default for most general-purpose compression needs at this level. -Moreover, Minitron can be applied **iteratively**: for example, prune 10%, distill, then prune another 10% and distill again. This staged schedule typically preserves more quality than a single, more aggressive pruning step at the same overall parameter reduction. +Moreover, Minitron can be applied **iteratively**: for example, prune 20%, distill, then prune another 20% and distill again. This staged schedule typically preserves more quality than a single, more aggressive pruning step at the same overall parameter reduction. **Scenario 2 (aggressive memory compression):** @@ -413,7 +413,7 @@ Puzzletron becomes essential. When the target is a hard memory budget, Puzzletro ### 5.3 Accuracy vs. compression -![Pruning + Distillation Results on Qwen3-8B](summary_chart.png) +![Pruning + Distillation Results on Qwen3-8B](figures/summary_chart.png) ### 5.4 Benchmark-specific behavior @@ -447,7 +447,7 @@ Several observations stand out: The two scenarios in this guide represent two specific points on a continuous compression curve. Complementary experiments using Puzzletron's MIP sweep mode (which re-runs the MIP solver across multiple memory targets without repeating the full NAS pipeline) allowed us to sample additional points and compare both methods side-by-side across the full spectrum. -![Puzzletron vs. Minitron Memory Sweep on Qwen3-8B](memory_sweep_combined.png) +![Puzzletron vs. Minitron Memory Sweep on Qwen3-8B](figures/memory_sweep_combined.png) Several observations stand out: @@ -461,12 +461,11 @@ Several observations stand out: | If... | Then use... | |---|---| -| Compression is <15% and general-purpose | **Minitron** | +| Compression is <20% and general-purpose | **Minitron** | | You need a standard/homogeneous model | **Minitron** | | Compression is >20% | **Puzzletron** | | You have a hard memory budget | **Puzzletron** | | You want minimal pipeline complexity | **Minitron** | -| You need to preserve specific capabilities (e.g. reasoning) | **Puzzletron** | | You want maximum accuracy at any cost | **Puzzletron** | --- @@ -497,7 +496,7 @@ The results were remarkable: +1.28pp to +28.61pp of MMLU recovery depending on t The plot below shows the training and validation distillation loss (KL divergence) for both methods at the 7B parameter target: -![Distillation loss curves — Scenario 1](distillation_curves.png) +![Distillation loss curves — Scenario 1](figures/distillation_curves.png) Both curves converge smoothly, with Puzzletron maintaining a consistently lower loss throughout: its heterogeneous architecture preserves more of the original model's behavior, even though it ultimately scores lower on MMLU (0.6823 vs. 0.7166). This confirms that **distillation loss alone does not predict downstream task accuracy**. @@ -529,7 +528,7 @@ Sections 5 and 6 focused on accuracy. But for deployment, throughput and latency ### 7.2 Results -![Throughput vs Latency — all models](all_curves_throughput_vs_latency.png) +![Throughput vs Latency — all models](figures/all_curves_throughput_vs_latency.png) Results shown in the table at concurrency 64 (near-saturated throughput). Full curves across all concurrency levels are in the chart above. @@ -567,7 +566,7 @@ The key insight is the accuracy-performance trade-off: Puzzletron 78k retains 74 - **Single base model:** All experiments use Qwen3-8B. Results (especially distillation convergence speed and the crossover point between Minitron and Puzzletron) may differ on other models and model families. - **Limited benchmarks:** The notebooks reproduce MMLU end-to-end. Supplementary evaluations on HellaSwag and GSM8K (see [Section 5.4](#54-benchmark-specific-behavior)) confirm that the best method is benchmark-dependent, but three benchmarks on one model are not enough to build general per-task guidelines. -- **Minimal distillation:** 100 iterations on WikiText-103 is a lower bound. Production deployments should use more iterations, larger datasets, and domain-specific data. +- **Minimal distillation:** 100 iterations on WikiText-103 is a lower bound. Production deployments should use more iterations, larger datasets, and a curated data blend (e.g. Nemotron pretraining + post-training mix). See the [Nemotron-Nano-9B-v2 Data Preparation guide](../minitron/NVIDIA-Nemotron-Nano-9B-v2/README.md#1-data-preparation) for a worked example, and [`MEGATRON_DATA_PREP.md`](../../dataset/MEGATRON_DATA_PREP.md) for tokenization commands. - **Fixed search space for Puzzletron:** The NAS search space (FFN candidate sizes, attention removal options) was kept small for tractability. A broader search space could yield better architectures at the cost of longer search time. - **Single-step Minitron:** We use a one-shot Minitron configuration rather than a multi-step iterative scheme, which simplifies the pipeline but typically achieves less compression and leaves some potential quality–compression gains on the table. @@ -596,6 +595,7 @@ All our results come from a single model (Qwen3-8B). Do other architectures or m **Distillation recipe: how to choose the dataset, duration, and scale?** Our experiments used 100 iterations on WikiText-103, a deliberately minimal setup that happened to work well for Qwen3-8B. But how should one choose the distillation dataset (generic vs. domain-specific?), the number of iterations, and the token budget for a new model? Is there a principled way to estimate the required distillation effort given a model and compression level, or does it always require empirical tuning? +> For a concrete recipe and detailed ablations on data blend, token budget, and convergence (on Nemotron-Nano-9B-v2), see the [Nano-9B-v2 tutorial](../minitron/NVIDIA-Nemotron-Nano-9B-v2/README.md) and its [blend ablations](../minitron/NVIDIA-Nemotron-Nano-9B-v2/ABLATIONS.md). **Serving heterogeneous architectures: how to balance Tensor Parallelism and Pipeline Parallelism?** Puzzletron produces models where layers have different widths and some lack attention entirely. Standard TP/PP strategies assume uniform layers. How should parallelism be partitioned when layer costs vary significantly? Finding efficient serving configurations for heterogeneous architectures is an open problem that directly impacts their practical deployment. @@ -613,8 +613,8 @@ As shown in [Section 5.4](#54-benchmark-specific-behavior), the relative ranking - **More Minitron Results:** Sreenivas et al., [*LLM Pruning and Distillation in Practice: The Minitron Approach*](https://arxiv.org/pdf/2408.11796), 2024. - **Puzzletron:** Bercovich et al., [*Puzzle: Distillation-Based NAS for Inference-Optimized LLMs*](https://arxiv.org/abs/2411.19146), 2024. - **NVIDIA ModelOpt:** [GitHub Repository](https://github.com/NVIDIA/Model-Optimizer) -- **Llama Puzzletron Tutorial:** [Puzzletron Example on ModelOpt](https://github.com/NVIDIA/Model-Optimizer/blob/feature/puzzletron/examples/puzzletron/README.md) -- **Model Compression with Megatron-Bridge:** [Megatron-Bridge Examples](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/megatron_bridge/README.md) +- **Llama Puzzletron Tutorial:** [Puzzletron Example on ModelOpt](https://github.com/NVIDIA/Model-Optimizer/blob/main/examples/puzzletron/README.md) +- **Model Compression and distillation with Megatron-Bridge:** [Megatron-Bridge Examples](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/megatron_bridge/README.md) - **Qwen3-8B:** [HuggingFace Model Card](https://huggingface.co/Qwen/Qwen3-8B) --- @@ -623,7 +623,7 @@ As shown in [Section 5.4](#54-benchmark-specific-behavior), the relative ranking ## Appendix: Serving a Puzzletron Model with vLLM -Puzzletron's heterogeneous models require a few extra steps to serve with vLLM. Below is the procedure for the Scenario 1 Puzzletron model (`distilled_Qwen3-8B-Puzzle-7B`); the same steps apply to any Puzzletron checkpoint. +Puzzletron's heterogeneous models require a few extra steps to serve with vLLM. Below is the procedure for the Scenario 1 Puzzletron model (`distilled_Qwen3-8B-Puzzle-7B`); the same steps apply to any Puzzletron checkpoint. The walkthrough below is kept self-contained to reproduce the exact throughput-vs-latency curves in [Section 7](#7-inference-performance) end-to-end. For the canonical, kept-up-to-date deployment instructions, see also [Deploy compressed model in vLLM](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/puzzletron#deploy-compressed-model-in-vllm) in the Puzzletron example. **Step 1 — Install vLLM with AnyModel support:** diff --git a/examples/pruning/demo/advanced_compression_experiments.md b/examples/pruning/minitron_vs_puzzletron/advanced_compression_experiments.md similarity index 100% rename from examples/pruning/demo/advanced_compression_experiments.md rename to examples/pruning/minitron_vs_puzzletron/advanced_compression_experiments.md diff --git a/examples/pruning/demo/all_curves_throughput_vs_latency.png b/examples/pruning/minitron_vs_puzzletron/figures/all_curves_throughput_vs_latency.png similarity index 100% rename from examples/pruning/demo/all_curves_throughput_vs_latency.png rename to examples/pruning/minitron_vs_puzzletron/figures/all_curves_throughput_vs_latency.png diff --git a/examples/pruning/demo/distillation_curves.png b/examples/pruning/minitron_vs_puzzletron/figures/distillation_curves.png similarity index 100% rename from examples/pruning/demo/distillation_curves.png rename to examples/pruning/minitron_vs_puzzletron/figures/distillation_curves.png diff --git a/examples/pruning/demo/distillation_loss_7B.png b/examples/pruning/minitron_vs_puzzletron/figures/distillation_loss_7B.png similarity index 100% rename from examples/pruning/demo/distillation_loss_7B.png rename to examples/pruning/minitron_vs_puzzletron/figures/distillation_loss_7B.png diff --git a/examples/pruning/demo/memory_sweep.png b/examples/pruning/minitron_vs_puzzletron/figures/memory_sweep.png similarity index 100% rename from examples/pruning/demo/memory_sweep.png rename to examples/pruning/minitron_vs_puzzletron/figures/memory_sweep.png diff --git a/examples/pruning/demo/memory_sweep_combined.png b/examples/pruning/minitron_vs_puzzletron/figures/memory_sweep_combined.png similarity index 100% rename from examples/pruning/demo/memory_sweep_combined.png rename to examples/pruning/minitron_vs_puzzletron/figures/memory_sweep_combined.png diff --git a/examples/pruning/demo/summary_chart.png b/examples/pruning/minitron_vs_puzzletron/figures/summary_chart.png similarity index 100% rename from examples/pruning/demo/summary_chart.png rename to examples/pruning/minitron_vs_puzzletron/figures/summary_chart.png diff --git a/examples/pruning/demo/scenario1_minitron.ipynb b/examples/pruning/minitron_vs_puzzletron/scenario1_minitron.ipynb similarity index 67% rename from examples/pruning/demo/scenario1_minitron.ipynb rename to examples/pruning/minitron_vs_puzzletron/scenario1_minitron.ipynb index 4a9d5878ac0..b5e44a9ad49 100644 --- a/examples/pruning/demo/scenario1_minitron.ipynb +++ b/examples/pruning/minitron_vs_puzzletron/scenario1_minitron.ipynb @@ -4,13 +4,37 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": "# Scenario 1 — Minitron: Quick & Reliable Compression (~1h45 on 2x H200)\n\nThis notebook prunes Qwen3-8B down to ~7B parameters using **Minitron** (homogeneous pruning), then distills and evaluates the result.\n\n**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." + "source": [ + "# Scenario 1 — Minitron: Quick & Reliable Compression (~1h45 on 2x H200)\n", + "\n", + "This notebook prunes Qwen3-8B down to ~7B parameters using **Minitron** (homogeneous pruning), then distills and evaluates the result.\n", + "\n", + "**Pipeline:** Prune → Evaluate → Distill → Evaluate\n", + "\n", + "**Prerequisites:**\n", + "- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n", + "- Base model downloaded at `/workspace/models/Qwen3-8B`." + ] }, { "cell_type": "markdown", "id": "b14dbc2b", "metadata": {}, - "source": "## 1. Prune (long step)\n\nMinitron's `prune_minitron.py` script handles the full pruning pipeline in one command:\n1. Loads the model into Megatron-Bridge format\n2. Runs a calibration pass on the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) to compute importance scores\n3. Enumerates all valid (depth, width) configurations, keeps the 10 candidates with parameter count closest to and below 7B, scores them using a fast MMLU proxy, and selects the best one\n4. Exports the pruned model as a HuggingFace checkpoint\n\nWe skip pruning `num_attention_heads` to keep the GQA structure intact (the model reduces hidden size, FFN intermediate size, and drops layers instead).\n\n> **Calibration dataset note:** The pruning script automatically downloads and uses 1,024 samples from `nvidia/Nemotron-Post-Training-Dataset-v2` for calibration (configurable via `--calib_dataset_name` and `--calib_num_samples`)." + "source": [ + "## 1. Prune (long step)\n", + "\n", + "Minitron's `prune_minitron.py` script handles the full pruning pipeline in one command:\n", + "1. Loads the model into Megatron-Bridge format\n", + "2. Runs a calibration pass on the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) to compute importance scores\n", + "3. Enumerates all valid (depth, width) configurations, keeps the 10 candidates with parameter count closest to and below 7B, scores them using a fast MMLU proxy, and selects the best one\n", + "4. Exports the pruned model as a HuggingFace checkpoint\n", + "\n", + "We skip pruning `num_attention_heads` to keep the GQA structure intact (the model reduces hidden size, FFN intermediate size, and drops layers instead).\n", + "\n", + "> **Calibration dataset note:** The pruning script automatically downloads and uses 1,024 samples from `nvidia/Nemotron-Post-Training-Dataset-v2` for calibration (configurable via `--calib_dataset_name` and `--calib_num_samples`).\n", + "\n", + "> **Runtime note:** This step may run significantly faster (up to ~5×) on more recent ModelOpt versions (≥ 0.44.0) thanks to pruning-pipeline optimizations." + ] }, { "cell_type": "code", @@ -19,7 +43,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "!cd /opt/Model-Optimizer/examples/megatron_bridge && \\\n", "torchrun --nproc_per_node 2 prune_minitron.py \\\n", " --pp_size 2 \\\n", " --hf_model_name_or_path /workspace/models/Qwen3-8B \\\n", @@ -92,7 +116,13 @@ "cell_type": "markdown", "id": "dcff37f6", "metadata": {}, - "source": "## 4. Distill\n\nRun knowledge distillation: the pruned model (student) learns to mimic the original Qwen3-8B (teacher) using logits-based KL divergence loss on the tokenized [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) dataset.\n\nWe run 100 iterations with a sequence length of 4096 and a global batch size of 4 (~1.6M tokens)." + "source": [ + "## 4. Distill\n", + "\n", + "Run knowledge distillation: the pruned model (student) learns to mimic the original Qwen3-8B (teacher) using logits-based KL divergence loss on the tokenized [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1) dataset.\n", + "\n", + "We run 100 iterations with a sequence length of 4096 and a global batch size of 4 (~1.6M tokens)." + ] }, { "cell_type": "markdown", @@ -135,12 +165,14 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "!cd /opt/Model-Optimizer/examples/megatron_bridge && \\\n", "torchrun --nnodes 1 --nproc_per_node=2 distill.py \\\n", " --student_hf_path /workspace/output/Qwen3-8B-Pruned-7B \\\n", " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", - " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --data_paths 1.0 /workspace/datasets/tokenized_qwen3/wikitext_wikitext-103-v1_train_text \\\n", " --output_dir /workspace/output/distill_output_7B \\\n", + " --hf_export_path /workspace/output/distilled_Qwen3-8B-Pruned-7B \\\n", + " --student_hf_model /workspace/output/Qwen3-8B-Pruned-7B \\\n", " --seq_length 4096 \\\n", " --tp_size 2 \\\n", " --pp_size 1 \\\n", @@ -180,40 +212,17 @@ "source": [ "**Expected distillation loss curve:**\n", "\n", - "![Minitron 7B distillation loss](distillation_loss_7B.png)\n", + "![Minitron 7B distillation loss](figures/distillation_loss_7B.png)\n", "\n", "The KL divergence drops from ~0.93 to ~0.38 over 100 iterations, with training and validation loss tracking closely (no overfitting)." ] }, - { - "cell_type": "markdown", - "id": "72eea5119410473aa328ad9291626812", - "metadata": {}, - "source": [ - "## 5. Export to HuggingFace format\n", - "\n", - "Distillation saves a Megatron distributed checkpoint. Convert it back to HuggingFace format for evaluation and deployment." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8edb47106e1a46a883d545849b8ab81b", - "metadata": {}, - "outputs": [], - "source": [ - "!python /opt/Megatron-Bridge/examples/conversion/convert_checkpoints.py export \\\n", - " --hf-model /workspace/output/Qwen3-8B-Pruned-7B \\\n", - " --megatron-path /workspace/output/distill_output_7B/checkpoints/iter_0000100 \\\n", - " --hf-path /workspace/output/distilled_Qwen3-8B-Pruned-7B" - ] - }, { "cell_type": "markdown", "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": {}, "source": [ - "## 6. Evaluate distilled model\n", + "## 5. Evaluate distilled model\n", "\n", "Run MMLU (5-shot) on the distilled model. Compare with the pre-distillation score from Step 3 to measure distillation recovery.\n", "\n", @@ -254,4 +263,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/examples/pruning/demo/scenario1_puzzletron.ipynb b/examples/pruning/minitron_vs_puzzletron/scenario1_puzzletron.ipynb similarity index 80% rename from examples/pruning/demo/scenario1_puzzletron.ipynb rename to examples/pruning/minitron_vs_puzzletron/scenario1_puzzletron.ipynb index e014df12d4a..9ded667facf 100644 --- a/examples/pruning/demo/scenario1_puzzletron.ipynb +++ b/examples/pruning/minitron_vs_puzzletron/scenario1_puzzletron.ipynb @@ -4,34 +4,14 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": "# Scenario 1 — Puzzletron: Heterogeneous Pruning (Comparison) (~6h on 2x H200)\n\nThis notebook compresses Qwen3-8B to ~7B parameters using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n\nThis serves as the **comparison run** for Scenario 1. The recommended approach for moderate compression is Minitron (see [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb)). We run Puzzletron here to demonstrate how it compares at this compression level.\n\n**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." - }, - { - "cell_type": "markdown", - "id": "acae54e37e7d407bbb7b55eff062a284", - "metadata": {}, - "source": [ - "## 1. Install Puzzletron dependencies" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9a63283cbaf04dbcab1f6479b197f3a8", - "metadata": {}, - "outputs": [], - "source": [ - "!cd /workspace/Model-Optimizer && \\\n", - "pip install -e .[hf,puzzletron] && \\\n", - "pip install -r examples/puzzletron/requirements.txt" - ] + "source": "# Scenario 1 — Puzzletron: Heterogeneous Pruning (Comparison) (~6h on 2x H200)\n\nThis notebook compresses Qwen3-8B to ~7B parameters using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n\nThis serves as the **comparison run** for Scenario 1. The recommended approach for moderate compression is Minitron (see [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb)). We run Puzzletron here to demonstrate how it compares at this compression level.\n\n**Pipeline:** Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." }, { "cell_type": "markdown", "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ - "## 2. Prepare calibration dataset\n", + "## 1. Prepare calibration dataset\n", "\n", "Puzzletron requires explicit dataset preparation. We download and format the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2), which Puzzletron uses to score the quality of candidate block replacements during the NAS search." ] @@ -43,7 +23,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "python -m modelopt.torch.puzzletron.dataset.prepare_dataset \\\n", " --dataset_name=nvidia/Nemotron-Post-Training-Dataset-v2 \\\n", " --output_dir=/workspace/datasets/Nemotron-Post-Training-Dataset-v2" @@ -53,7 +33,7 @@ "cell_type": "markdown", "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, - "source": "## 3. Configure the NAS search\n\nIn the YAML configuration files, we need to set:\n- **`input_hf_model_path`**: path to the base Qwen3-8B model\n- **`target_memory`**: set high (130,000 MiB) so it doesn't constrain — we're targeting by parameter count here\n- **`num_params`**: 7B parameter target\n- **`eval_samples`**: number of samples for scoring. A higher value can produce more reliable scores and potentially a better final architecture, but scoring time scales roughly linearly with this parameter. 32 is the value we use here as a reasonable accuracy/runtime trade-off for tutorial reproducibility." + "source": "## 2. Configure the NAS search\n\nIn the YAML configuration files, we need to set:\n- **`input_hf_model_path`**: path to the base Qwen3-8B model\n- **`target_memory`**: set high (130,000 MiB) so it doesn't constrain — we're targeting by parameter count here\n- **`num_params`**: 7B parameter target\n- **`eval_samples`**: number of samples for scoring. A higher value can produce more reliable scores and potentially a better final architecture, but scoring time scales roughly linearly with this parameter. 32 is the value we use here as a reasonable accuracy/runtime trade-off for tutorial reproducibility." }, { "cell_type": "code", @@ -63,19 +43,19 @@ "outputs": [], "source": [ "!sed -i 's|input_hf_model_path: .*|input_hf_model_path: /workspace/models/Qwen3-8B|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", "\n", "!sed -i 's|target_memory: .*|target_memory: 130_000|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", "\n", "!sed -i 's|target_memory: .*|target_memory: 130_000|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", "\n", "!sed -i 's|num_params: .*|num_params: 7_000_000_000|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", "\n", "!sed -i '/^scoring:/,/^[a-z]/{s|eval_samples: .*|eval_samples: 32|}' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml" + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml" ] }, { @@ -83,7 +63,7 @@ "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": {}, "source": [ - "## 4. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", + "## 3. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", "\n", "This step is significantly longer than Minitron's single-command pruning.\n", "\n", @@ -99,7 +79,7 @@ "source": [ "# Remove if already exists from a previous run\n", "!rm -f /workspace/puzzle_dir/subblock_stats.json\n", - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "torchrun --nproc_per_node 1 \\\n", " examples/puzzletron/main.py \\\n", " --config examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml \\\n", @@ -111,7 +91,7 @@ "id": "7cdc8c89c7104fffa095e18ddfef8986", "metadata": {}, "source": [ - "## 5. Evaluate pruned model (before distillation)\n", + "## 4. Evaluate pruned model (before distillation)\n", "\n", "Evaluate the Puzzletron-compressed model on MMLU. The model is heterogeneous (variable FFN widths per layer), so we use the `lm_eval_hf.py` script which supports this architecture." ] @@ -126,7 +106,7 @@ "!sed -i 's/\"torch\\.bfloat16\"/\"bfloat16\"/g' \\\n", " /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0/config.json\n", "\n", - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "python examples/llm_eval/lm_eval_hf.py \\\n", " --model hf \\\n", " --model_args pretrained=/workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0/,dtype=bfloat16,parallelize=True \\\n", @@ -139,7 +119,7 @@ "cell_type": "markdown", "id": "938c804e27f84196a10c8828c723f798", "metadata": {}, - "source": "## 6. Distill\n\nDistill the heterogeneous Puzzletron model against the original Qwen3-8B teacher. Same distillation recipe as the Minitron notebooks: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1).\n\nThe `distill.py` script handles both distillation and automatic export to HuggingFace format in one step." + "source": "## 5. Distill\n\nDistill the heterogeneous Puzzletron model against the original Qwen3-8B teacher. Same distillation recipe as the Minitron notebooks: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1).\n\nThe `distill.py` script handles both distillation and automatic export to HuggingFace format in one step." }, { "cell_type": "markdown", @@ -189,10 +169,10 @@ "outputs": [], "source": [ "!torchrun --nproc_per_node=2 \\\n", - " /workspace/Model-Optimizer/examples/megatron_bridge/distill.py \\\n", + " /opt/Model-Optimizer/examples/megatron_bridge/distill.py \\\n", " --student_hf_path /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_130000MiB-num_params_7G/solutions--checkpoints/solution_0 \\\n", " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", - " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --data_paths 1.0 /workspace/datasets/tokenized_qwen3/wikitext_wikitext-103-v1_train_text \\\n", " --output_dir /workspace/output/distill_output_puzzle_7B \\\n", " --hf_export_path /workspace/output/distilled_Qwen3-8B-Puzzle-7B \\\n", " --student_hf_model Qwen/Qwen3-8B \\\n", @@ -232,7 +212,7 @@ "cell_type": "markdown", "id": "c3933fab20d04ec698c2621248eb3be0", "metadata": {}, - "source": "## 7. Evaluate distilled model\n\nCompare with the Minitron result at the same parameter target (see [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Parameters | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 8B | 0.7493 | 100% |\n| **Minitron 7B — distilled** | **6.96B** | **0.7166** | **95.6%** |\n| Puzzletron 7B — pruned | 6.99B | 0.6621 | 88.4% |\n| Puzzletron 7B — distilled | 6.99B | 0.6823 | 91.1% |" + "source": "## 6. Evaluate distilled model\n\nCompare with the Minitron result at the same parameter target (see [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Parameters | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 8B | 0.7493 | 100% |\n| **Minitron 7B — distilled** | **6.96B** | **0.7166** | **95.6%** |\n| Puzzletron 7B — pruned | 6.99B | 0.6621 | 88.4% |\n| Puzzletron 7B — distilled | 6.99B | 0.6823 | 91.1% |" }, { "cell_type": "code", @@ -241,7 +221,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "python examples/llm_eval/lm_eval_hf.py \\\n", " --model hf \\\n", " --model_args pretrained=/workspace/output/distilled_Qwen3-8B-Puzzle-7B,dtype=bfloat16,parallelize=True \\\n", diff --git a/examples/pruning/demo/scenario2_minitron.ipynb b/examples/pruning/minitron_vs_puzzletron/scenario2_minitron.ipynb similarity index 56% rename from examples/pruning/demo/scenario2_minitron.ipynb rename to examples/pruning/minitron_vs_puzzletron/scenario2_minitron.ipynb index 80e9a1b5125..6eab121b685 100644 --- a/examples/pruning/demo/scenario2_minitron.ipynb +++ b/examples/pruning/minitron_vs_puzzletron/scenario2_minitron.ipynb @@ -4,13 +4,33 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": "# Scenario 2 — Minitron: Aggressive Depth Pruning (Comparison Baseline) (~45 min on 2x H200)\n\nThis notebook prunes Qwen3-8B from 36 layers down to 22 layers using **Minitron** depth pruning, then distills and evaluates the result.\n\nThis serves as the **comparison baseline** for Scenario 2. The recommended approach for aggressive compression is Puzzletron (see [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)). We run Minitron here to demonstrate why depth pruning underperforms at this compression level.\n\n**Pipeline:** Prune → Evaluate → Distill → Export → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." + "source": [ + "# Scenario 2 — Minitron: Aggressive Depth Pruning (Comparison Baseline) (~45 min on 2x H200)\n", + "\n", + "This notebook prunes Qwen3-8B from 36 layers down to 22 layers using **Minitron** depth pruning, then distills and evaluates the result.\n", + "\n", + "This serves as the **comparison baseline** for Scenario 2. The recommended approach for aggressive compression is Puzzletron (see [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)). We run Minitron here to demonstrate why depth pruning underperforms at this compression level.\n", + "\n", + "**Pipeline:** Prune → Evaluate → Distill → Evaluate\n", + "\n", + "**Prerequisites:**\n", + "- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n", + "- Base model downloaded at `/workspace/models/Qwen3-8B`." + ] }, { "cell_type": "markdown", "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, - "source": "## 1. Prune (36 → 22 layers)\n\nTo match the ~78,000 MiB memory budget used in the Puzzletron comparison, we need aggressive compression. With Minitron, the most effective way to achieve large memory savings is **depth pruning** — removing entire Transformer layers. Each layer carries not only its weights but also a KV cache allocation at inference time, so dropping a layer saves both weight memory and KV cache memory. This makes depth pruning far more memory-efficient per parameter removed than width pruning alone.\n\n**Why 22 layers?** Each Qwen3-8B layer accounts for ~3,440 MiB at the inference settings used in this guide (KV cache + attention + FFN weights; the full breakdown is computed in [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)). Dropping 14 of the 36 layers removes ~48,160 MiB, taking the baseline from 126,215 MiB down to ~78,055 MiB — within the 78,000 MiB target.\n\nMinitron ranks the layers to decide which 14 layers to drop, keeping the 22 that contribute most to the model's output quality." + "source": [ + "## 1. Prune (36 → 22 layers)\n", + "\n", + "To match the ~78,000 MiB memory budget used in the Puzzletron comparison, we need aggressive compression. With Minitron, the most effective way to achieve large memory savings is **depth pruning** — removing entire Transformer layers. Each layer carries not only its weights but also a KV cache allocation at inference time, so dropping a layer saves both weight memory and KV cache memory. This makes depth pruning far more memory-efficient per parameter removed than width pruning alone.\n", + "\n", + "**Why 22 layers?** Each Qwen3-8B layer accounts for ~3,440 MiB at the inference settings used in this guide (KV cache + attention + FFN weights; the full breakdown is computed in [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)). Dropping 14 of the 36 layers removes ~48,160 MiB, taking the baseline from 126,215 MiB down to ~78,055 MiB — within the 78,000 MiB target.\n", + "\n", + "Minitron ranks the layers to decide which 14 layers to drop, keeping the 22 that contribute most to the model's output quality." + ] }, { "cell_type": "code", @@ -19,7 +39,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "!cd /opt/Model-Optimizer/examples/megatron_bridge && \\\n", "torchrun --nproc_per_node 2 prune_minitron.py \\\n", " --pp_size 2 \\\n", " --hf_model_name_or_path /workspace/models/Qwen3-8B \\\n", @@ -106,7 +126,11 @@ "cell_type": "markdown", "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, - "source": "\nDistill the 22-layer model against the full Qwen3-8B teacher. Same setup as Scenario 1: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1).\n> **Expected runtime: ~20-30 minutes on 2x H200.**" + "source": [ + "\n", + "Distill the 22-layer model against the full Qwen3-8B teacher. Same setup as Scenario 1: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1).\n", + "> **Expected runtime: ~20-30 minutes on 2x H200.**" + ] }, { "cell_type": "code", @@ -115,12 +139,14 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer/examples/megatron_bridge && \\\n", + "!cd /opt/Model-Optimizer/examples/megatron_bridge && \\\n", "torchrun --nnodes 1 --nproc_per_node=2 distill.py \\\n", " --student_hf_path /workspace/output/Qwen3-8B-Minitron-22L \\\n", " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", - " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --data_paths 1.0 /workspace/datasets/tokenized_qwen3/wikitext_wikitext-103-v1_train_text \\\n", " --output_dir /workspace/output/distill_output_22L \\\n", + " --hf_export_path /workspace/output/distilled_Qwen3-8B-Minitron-22L \\\n", + " --student_hf_model /workspace/output/Qwen3-8B-Minitron-22L \\\n", " --seq_length 4096 \\\n", " --tp_size 2 \\\n", " --pp_size 1 \\\n", @@ -155,31 +181,23 @@ }, { "cell_type": "markdown", - "id": "88e4ad67", - "metadata": {}, - "source": [ - "## 5. Export to HuggingFace format" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9083cb6d", + "id": "c91a1b15", "metadata": {}, - "outputs": [], "source": [ - "!python /opt/Megatron-Bridge/examples/conversion/convert_checkpoints.py export \\\n", - " --hf-model /workspace/output/Qwen3-8B-Minitron-22L \\\n", - " --megatron-path /workspace/output/distill_output_22L/checkpoints/iter_0000100 \\\n", - " --hf-path /workspace/output/distilled_Qwen3-8B-Minitron-22L" + "## 5. Evaluate distilled model\n", + "\n", + "Compare with the Puzzletron result at the same memory budget (see [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)).\n", + "\n", + "**Expected results on Qwen3-8B:**\n", + "\n", + "| Model | Memory | MMLU (5-shot) | % of Teacher |\n", + "|---|---|---|---|\n", + "| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n", + "| Minitron 22L — pruned | 78,054 MiB | 0.2351 | 31.4% |\n", + "| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |\n", + "| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |" ] }, - { - "cell_type": "markdown", - "id": "c91a1b15", - "metadata": {}, - "source": "## 6. Evaluate distilled model\n\nCompare with the Puzzletron result at the same memory budget (see [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Memory | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n| Minitron 22L — pruned | 78,054 MiB | 0.2351 | 31.4% |\n| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |\n| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |" - }, { "cell_type": "code", "execution_count": null, @@ -208,4 +226,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/examples/pruning/demo/scenario2_puzzletron.ipynb b/examples/pruning/minitron_vs_puzzletron/scenario2_puzzletron.ipynb similarity index 86% rename from examples/pruning/demo/scenario2_puzzletron.ipynb rename to examples/pruning/minitron_vs_puzzletron/scenario2_puzzletron.ipynb index 77458541777..85a79aa8836 100644 --- a/examples/pruning/demo/scenario2_puzzletron.ipynb +++ b/examples/pruning/minitron_vs_puzzletron/scenario2_puzzletron.ipynb @@ -4,32 +4,14 @@ "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, - "source": "# Scenario 2 — Puzzletron: Hardware-Constrained Compression (~6h15 on 2x H200)\n\nThis notebook compresses Qwen3-8B to fit within a **78,000 MiB memory budget** using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n\nThis is the **recommended approach** for Scenario 2. Puzzletron can directly target a memory constraint via its MIP (Mixed-Integer Programming) solver, producing a heterogeneous architecture that maximizes accuracy within the budget. For comparison, see [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb).\n\n**Pipeline:** Install → Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." - }, - { - "cell_type": "markdown", - "id": "acae54e37e7d407bbb7b55eff062a284", - "metadata": {}, - "source": "## 1. Install Puzzletron dependencies\n\nPuzzletron requires additional dependencies beyond the base ModelOpt installation. Skip this step if you already ran [`scenario1_puzzletron.ipynb`](scenario1_puzzletron.ipynb) in the same container session." - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9a63283cbaf04dbcab1f6479b197f3a8", - "metadata": {}, - "outputs": [], - "source": [ - "!cd /workspace/Model-Optimizer && \\\n", - "pip install -e .[hf,puzzletron] && \\\n", - "pip install -r examples/puzzletron/requirements.txt" - ] + "source": "# Scenario 2 — Puzzletron: Hardware-Constrained Compression (~6h15 on 2x H200)\n\nThis notebook compresses Qwen3-8B to fit within a **78,000 MiB memory budget** using **Puzzletron** (heterogeneous NAS-based pruning), then distills and evaluates the result.\n\nThis is the **recommended approach** for Scenario 2. Puzzletron can directly target a memory constraint via its MIP (Mixed-Integer Programming) solver, producing a heterogeneous architecture that maximizes accuracy within the budget. For comparison, see [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb).\n\n**Pipeline:** Prepare calibration data → Configure → NAS search → Evaluate → Patch → Distill → Evaluate\n\n**Prerequisites:**\n- Run [`00_prerequisites.ipynb`](00_prerequisites.ipynb) first to prepare the distillation dataset.\n- Base model downloaded at `/workspace/models/Qwen3-8B`." }, { "cell_type": "markdown", "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "source": [ - "## 2. Prepare calibration dataset\n", + "## 1. Prepare calibration dataset\n", "\n", "Download and format the [Nemotron-Post-Training-Dataset-v2](https://huggingface.co/datasets/nvidia/Nemotron-Post-Training-Dataset-v2) for Puzzletron's block scoring phase. Skip if already prepared." ] @@ -41,7 +23,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "python -m modelopt.torch.puzzletron.dataset.prepare_dataset \\\n", " --dataset_name=nvidia/Nemotron-Post-Training-Dataset-v2 \\\n", " --output_dir=/workspace/datasets/Nemotron-Post-Training-Dataset-v2" @@ -51,7 +33,7 @@ "cell_type": "markdown", "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, - "source": "## 3. Configure the NAS search\n\nPuzzletron is driven by two YAML configuration files:\n\n- **`qwen3_8b_pruneffn_memory.yaml`** — The top-level config. It sets the input model path, the calibration dataset path, the working directory, the MIP memory constraint, and the list of FFN intermediate sizes to search over (the search space). This is the file you edit for each experiment.\n\n- **`qwen3_8b.yaml`** — The base model config. It defines the full pipeline settings: pruning strategy, scoring parameters, MIP solver settings (constraints, objective function, batch sizes for memory computation)... Most of these can be left at their defaults.\n\nHere, the **primary constraint is memory** (78,000 MiB), not parameter count. We set:\n- **`input_hf_model_path`**: path to the base Qwen3-8B model\n- **`target_memory`**: 78,000 MiB — the hard memory ceiling the compressed model must fit within\n- **`num_params`**: set high (8B) so it doesn't constrain — memory is the binding constraint\n- **`eval_samples`**: number of samples for scoring. A higher value can produce more reliable scores and potentially a better final architecture, but scoring time scales roughly linearly with this parameter. 32 is the value we use here as a reasonable accuracy/runtime trade-off for tutorial reproducibility.\n\nThis is Puzzletron's strength: the MIP solver directly optimizes for the memory budget, accounting for both weights and KV cache per layer." + "source": "## 2. Configure the NAS search\n\nPuzzletron is driven by two YAML configuration files:\n\n- **`qwen3_8b_pruneffn_memory.yaml`** — The top-level config. It sets the input model path, the calibration dataset path, the working directory, the MIP memory constraint, and the list of FFN intermediate sizes to search over (the search space). This is the file you edit for each experiment.\n\n- **`qwen3_8b.yaml`** — The base model config. It defines the full pipeline settings: pruning strategy, scoring parameters, MIP solver settings (constraints, objective function, batch sizes for memory computation)... Most of these can be left at their defaults.\n\nHere, the **primary constraint is memory** (78,000 MiB), not parameter count. We set:\n- **`input_hf_model_path`**: path to the base Qwen3-8B model\n- **`target_memory`**: 78,000 MiB — the hard memory ceiling the compressed model must fit within\n- **`num_params`**: set high (8B) so it doesn't constrain — memory is the binding constraint\n- **`eval_samples`**: number of samples for scoring. A higher value can produce more reliable scores and potentially a better final architecture, but scoring time scales roughly linearly with this parameter. 32 is the value we use here as a reasonable accuracy/runtime trade-off for tutorial reproducibility.\n\nThis is Puzzletron's strength: the MIP solver directly optimizes for the memory budget, accounting for both weights and KV cache per layer." }, { "cell_type": "code", @@ -61,19 +43,19 @@ "outputs": [], "source": [ "!sed -i 's|input_hf_model_path: .*|input_hf_model_path: /workspace/models/Qwen3-8B|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", "\n", "!sed -i 's|target_memory: .*|target_memory: 78_000|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\n", "\n", "!sed -i 's|target_memory: .*|target_memory: 78_000|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", "\n", "!sed -i 's|num_params: .*|num_params: 8_000_000_000|' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml\n", "\n", "!sed -i '/^scoring:/,/^[a-z]/{s|eval_samples: .*|eval_samples: 32|}' \\\n", - " /workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml" + " /opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b.yaml" ] }, { @@ -188,7 +170,7 @@ "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": {}, "source": [ - "## 4. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", + "## 3. Run Puzzletron NAS search (Longest step: 5 hours at first run)\n", "\n", "This is the core Puzzletron pipeline. It runs the full 8-step process:\n", "1. Convert the model to Puzzletron's heterogeneous format\n", @@ -222,7 +204,7 @@ "source": [ "# Remove if already exists from a previous run\n", "!rm -f /workspace/puzzle_dir/subblock_stats.json\n", - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "torchrun --nproc_per_node 1 \\\n", " examples/puzzletron/main.py \\\n", " --config examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml \\\n", @@ -234,7 +216,7 @@ "id": "7cdc8c89c7104fffa095e18ddfef8986", "metadata": {}, "source": [ - "## 5. Evaluate pruned model (before distillation)\n", + "## 4. Evaluate pruned model (before distillation)\n", "\n", "At ~38% memory compression, the model is expected to be near-random before distillation. This is normal — distillation will recover significant accuracy.\n", "\n", @@ -251,7 +233,7 @@ "!sed -i 's/\"torch\\.bfloat16\"/\"bfloat16\"/g' \\\n", " /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0/config.json\n", "\n", - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "python examples/llm_eval/lm_eval_hf.py \\\n", " --model hf \\\n", " --model_args pretrained=/workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0/,dtype=bfloat16,parallelize=True \\\n", @@ -264,7 +246,7 @@ "cell_type": "markdown", "id": "938c804e27f84196a10c8828c723f798", "metadata": {}, - "source": "## 6. Distill\n\nDistill the heterogeneous model against the original Qwen3-8B teacher. Same recipe: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1). At this compression level, distillation is critical — it transforms the model from near-random to functional.\n\nThe `distill.py` script handles both distillation and automatic export to HuggingFace format." + "source": "## 5. Distill\n\nDistill the heterogeneous model against the original Qwen3-8B teacher. Same recipe: 100 iterations on [WikiText-103](https://huggingface.co/datasets/Salesforce/wikitext/tree/main/wikitext-103-v1). At this compression level, distillation is critical — it transforms the model from near-random to functional.\n\nThe `distill.py` script handles both distillation and automatic export to HuggingFace format." }, { "cell_type": "markdown", @@ -314,10 +296,10 @@ "outputs": [], "source": [ "!torchrun --nproc_per_node=2 \\\n", - " /workspace/Model-Optimizer/examples/megatron_bridge/distill.py \\\n", + " /opt/Model-Optimizer/examples/megatron_bridge/distill.py \\\n", " --student_hf_path /workspace/puzzle_dir/mip/puzzle_solutions/target_memory_78000MiB-num_params_8G/solutions--checkpoints/solution_0 \\\n", " --teacher_hf_path /workspace/models/Qwen3-8B \\\n", - " --data_paths 1.0 /workspace/datasets/wikitext-103-v1/wikitext-train_text \\\n", + " --data_paths 1.0 /workspace/datasets/tokenized_qwen3/wikitext_wikitext-103-v1_train_text \\\n", " --output_dir /workspace/output/distill_output_puzzle_78k \\\n", " --hf_export_path /workspace/output/distilled_Qwen3-8B-Puzzle-78k \\\n", " --student_hf_model Qwen/Qwen3-8B \\\n", @@ -357,7 +339,7 @@ "cell_type": "markdown", "id": "c3933fab20d04ec698c2621248eb3be0", "metadata": {}, - "source": "## 7. Evaluate distilled model\n\nCompare with the Minitron result at the same memory budget (see [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Memory | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n| Puzzletron 78k — pruned | 77,992 MiB | 0.2752 | 36.7% |\n| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |\n| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |" + "source": "## 6. Evaluate distilled model\n\nCompare with the Minitron result at the same memory budget (see [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb)).\n\n**Expected results on Qwen3-8B:**\n\n| Model | Memory | MMLU (5-shot) | % of Teacher |\n|---|---|---|---|\n| Qwen3-8B (teacher) | 126,215 MiB | 0.7493 | 100% |\n| Puzzletron 78k — pruned | 77,992 MiB | 0.2752 | 36.7% |\n| **Puzzletron 78k — distilled** | **77,992 MiB** | **0.5613** | **74.9%** |\n| Minitron 22L — distilled | 78,054 MiB | 0.4620 | 61.7% |" }, { "cell_type": "code", @@ -366,7 +348,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "python examples/llm_eval/lm_eval_hf.py \\\n", " --model hf \\\n", " --model_args pretrained=/workspace/output/distilled_Qwen3-8B-Puzzle-78k,dtype=bfloat16,parallelize=True \\\n", @@ -380,15 +362,15 @@ "id": "dsm07ynktiu", "metadata": {}, "source": [ - "## 8. Bonus: Memory Sweep\n", + "## 7. Bonus: Memory Sweep\n", "\n", - "Puzzletron supports a **MIP (Mixed-Integer Programming) sweep mode** that lets you explore multiple memory compression rates in a single run. Instead of running the full pipeline for each target, the sweep reuses the scoring and replacement library from Steps 1–6 and only re-runs the MIP solver at each compression rate making it very fast.\n", + "Puzzletron supports a **MIP (Mixed-Integer Programming) sweep mode** that lets you explore multiple memory compression rates in a single run. Instead of running the full pipeline for each target, the sweep reuses the scoring and replacement library from Steps 1–5 and only re-runs the MIP solver at each compression rate making it very fast.\n", "\n", "This produces a CSV with accuracy and memory metrics for each configuration, allowing you to map out the accuracy-memory trade-off curve and find the right operating point for your deployment.\n", "\n", "### Enable sweep mode\n", "\n", - "We add the sweep configuration to the YAML and run with `--mip-only` (skips the scoring steps that were already completed in Step 4):" + "We add the sweep configuration to the YAML and run with `--mip-only` (skips the scoring steps that were already completed in Step 3):" ] }, { @@ -400,7 +382,7 @@ "source": [ "import yaml\n", "\n", - "config_path = \"/workspace/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\"\n", + "config_path = \"/opt/Model-Optimizer/examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml\"\n", "\n", "with open(config_path) as f:\n", " config = yaml.safe_load(f)\n", @@ -433,7 +415,7 @@ "metadata": {}, "outputs": [], "source": [ - "!cd /workspace/Model-Optimizer && \\\n", + "!cd /opt/Model-Optimizer && \\\n", "torchrun --nproc_per_node 1 \\\n", " examples/puzzletron/main.py \\\n", " --config examples/puzzletron/configs/qwen3-8b_pruneffn_memory/qwen3_8b_pruneffn_memory.yaml \\\n", @@ -445,11 +427,7 @@ "cell_type": "markdown", "id": "uilkjsv2wx", "metadata": {}, - "source": [ - "Here is an example of what the accuracy-memory trade-off curve looks like when we ran this sweep (MMLU accuracy for Qwen3-8B w.r.t. memory compression rate):\n", - "\n", - "![Puzzletron Memory Sweep](memory_sweep.png)" - ] + "source": "Here is an example of what the accuracy-memory trade-off curve looks like when we ran this sweep (MMLU accuracy for Qwen3-8B w.r.t. memory compression rate):\n\n![Puzzletron Memory Sweep](figures/memory_sweep.png)" } ], "metadata": { From edca1770e9e5fe9898839b0aa05add2d186e03bf Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Tue, 5 May 2026 14:46:10 +0200 Subject: [PATCH 7/8] minor corrections Signed-off-by: Alexandre Chidiac --- examples/pruning/minitron_vs_puzzletron/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/pruning/minitron_vs_puzzletron/README.md b/examples/pruning/minitron_vs_puzzletron/README.md index 2f0e8f5fe0f..3c89b8276d7 100644 --- a/examples/pruning/minitron_vs_puzzletron/README.md +++ b/examples/pruning/minitron_vs_puzzletron/README.md @@ -1,4 +1,4 @@ -# How to Reduce Your LLM Size and Efficiency with NVIDIA Model-Optimizer: A Pruning & Distillation Guide +# How to Reduce Your LLM Size and Improve Efficiency with NVIDIA Model-Optimizer: A Pruning & Distillation Guide ## Table of Contents @@ -83,7 +83,7 @@ flowchart LR **Minitron is a special case of Puzzletron**: any architecture Minitron can produce, Puzzletron can also find. Both follow the same pipeline (find a smaller architecture, then recover accuracy via distillation); they score the components of each Transformer layer (neurons, attention heads, FFN widths) and remove the ones that contribute least to the model's output. What distinguishes them is how fine-grained that search is. -- **Minitron** applies *homogeneous pruning*: the same pruning decision is applied across all layers simultaneously. The compression target is a **parameter count** (e.g. "reduce to 7B"). Direct memory-budget targeting is also now supported as a recently added Minitron feature. The result is a standard, smaller model with the same architecture type as the original. Fast and simple. +- **Minitron** applies *homogeneous pruning*: the same pruning decision is applied across all layers simultaneously. The compression target is a **parameter count** (e.g. "reduce to 7B"; direct memory-budget targeting is on the Minitron roadmap). The result is a standard, smaller model with the same architecture type as the original. Fast and simple. - **Puzzletron** applies *heterogeneous pruning* via Neural Architecture Search (NAS): it evaluates multiple candidate configurations for each layer independently (different FFN widths, optional attention removal), then uses Mixed-Integer Programming (MIP) to find the optimal per-layer combination under a given resource constraint (e.g. a **memory budget**). The result is a model where each layer can have a different structure, tailored to a specific hardware budget. More powerful, but slower. From 1b05a89a50487a84776f3204365ed2a8e2b8de7e Mon Sep 17 00:00:00 2001 From: Alexandre Chidiac Date: Wed, 6 May 2026 14:59:10 +0200 Subject: [PATCH 8/8] address minor comment Signed-off-by: Alexandre Chidiac --- .../pruning/minitron_vs_puzzletron/README.md | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/examples/pruning/minitron_vs_puzzletron/README.md b/examples/pruning/minitron_vs_puzzletron/README.md index 3c89b8276d7..60e708f9d2b 100644 --- a/examples/pruning/minitron_vs_puzzletron/README.md +++ b/examples/pruning/minitron_vs_puzzletron/README.md @@ -236,9 +236,9 @@ Both strategies can be combined. An optional automatic NAS search can be enabled ### 3.3 Walkthrough: Qwen3-8B → 7B parameters -**▶ Data preparation:** Run notebook [`00_prerequisites.ipynb`](00_prerequisites.ipynb) to prepare the data and evaluate the original model. +**→ Data preparation:** Run notebook [`00_prerequisites.ipynb`](00_prerequisites.ipynb) to prepare the data and evaluate the original model. -**▶ Minitron pruning and distillation:** Run notebook [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb) for the full end-to-end pipeline (prune → distill → evaluate). +**→ Minitron pruning and distillation:** Run notebook [`scenario1_minitron.ipynb`](scenario1_minitron.ipynb) for the full end-to-end pipeline (prune → distill → evaluate). #### Results @@ -254,7 +254,7 @@ Distillation recovers **+1.28 percentage points** of MMLU accuracy with just 100 To validate that Minitron is the right choice for this scenario, we also ran Puzzletron at the same ~7B parameter target. Puzzletron produces a 36-layer heterogeneous model with variable FFN widths per layer (some as low as 2560) and selective attention removal. -▶ See notebook [`scenario1_puzzletron.ipynb`](scenario1_puzzletron.ipynb) to reproduce this run. +→ See notebook [`scenario1_puzzletron.ipynb`](scenario1_puzzletron.ipynb) to reproduce this run. | Model | Parameters | MMLU (pruned) | MMLU (distilled) | % of Teacher | |---|---|---|---|---| @@ -302,9 +302,9 @@ Puzzletron compresses a model through an automated NAS pipeline: ### 4.3 Walkthrough: Qwen3-8B - 126,215 MiB → 78,000 MiB memory target -**▶ Data preparation:** Run notebook [`00_prerequisites.ipynb`](00_prerequisites.ipynb) to prepare the data and evaluate the original model (if not already done). +**→ Data preparation:** Run notebook [`00_prerequisites.ipynb`](00_prerequisites.ipynb) to prepare the data and evaluate the original model (if not already done). -**▶ Puzzletron NAS and distillation:** Run notebook [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb) for the full end-to-end pipeline (prune → NAS search → distill → evaluate). +**→ Puzzletron NAS and distillation:** Run notebook [`scenario2_puzzletron.ipynb`](scenario2_puzzletron.ipynb) for the full end-to-end pipeline (prune → NAS search → distill → evaluate). #### Results @@ -316,7 +316,8 @@ Puzzletron compresses a model through an automated NAS pipeline: The pre-distillation accuracy is near-random (MMLU has a 25% baseline for 4-choice questions); this is expected at >35% compression. Distillation recovers **+28.61 percentage points**, transforming a non-functional model into a usable one. -#### Puzzletron architecture details +

+Puzzletron architecture details — per-layer block configuration (click to expand) ```text block_0: attention kv_heads_8 ffn intermediate_12288 @@ -357,11 +358,13 @@ block_34: attention kv_heads_8 ffn intermediate_12288 block_35: attention kv_heads_8 ffn intermediate_9984 ``` +
+ ### 4.4 Comparison with Minitron at the same memory target To validate that Puzzletron is the right choice for this scenario, we also ran Minitron at the same memory budget. To match ~78,000 MiB, Minitron drops 14 of 36 layers (keeping 22), producing a 5.49B parameter model. -▶ See notebook [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb) to reproduce this run. +→ See notebook [`scenario2_minitron.ipynb`](scenario2_minitron.ipynb) to reproduce this run. | Model | Memory Footprint | MMLU (pruned) | MMLU (distilled) | % of Teacher | |---|---|---|---|---| @@ -447,6 +450,9 @@ Several observations stand out: The two scenarios in this guide represent two specific points on a continuous compression curve. Complementary experiments using Puzzletron's MIP sweep mode (which re-runs the MIP solver across multiple memory targets without repeating the full NAS pipeline) allowed us to sample additional points and compare both methods side-by-side across the full spectrum. +
+Click to expand — chart + observations across the full compression spectrum + ![Puzzletron vs. Minitron Memory Sweep on Qwen3-8B](figures/memory_sweep_combined.png) Several observations stand out: @@ -457,6 +463,8 @@ Several observations stand out: **The crossover point lies somewhere between 20% and 38% compression.** Below ~20% compression, Minitron consistently wins post-distillation. Beyond ~38%, Puzzletron pulls decisively ahead. The exact crossover will depend on the model, the distillation budget, and the Puzzletron search space — but this range provides a practical guideline. +
+ ### 5.6 Decision rules | If... | Then use... | @@ -625,6 +633,9 @@ As shown in [Section 5.4](#54-benchmark-specific-behavior), the relative ranking Puzzletron's heterogeneous models require a few extra steps to serve with vLLM. Below is the procedure for the Scenario 1 Puzzletron model (`distilled_Qwen3-8B-Puzzle-7B`); the same steps apply to any Puzzletron checkpoint. The walkthrough below is kept self-contained to reproduce the exact throughput-vs-latency curves in [Section 7](#7-inference-performance) end-to-end. For the canonical, kept-up-to-date deployment instructions, see also [Deploy compressed model in vLLM](https://github.com/NVIDIA/Model-Optimizer/tree/main/examples/puzzletron#deploy-compressed-model-in-vllm) in the Puzzletron example. +
+Reproduction steps — install vLLM, patch config, serve, benchmark with AIPerf (click to expand) + **Step 1 — Install vLLM with AnyModel support:** ```bash @@ -685,3 +696,5 @@ done ``` > **Note:** For Minitron models and the baseline, skip Step 2 — standard vLLM serves them directly. + +

WY(YxP#wA`mzUE ztFa=LIxOld1hwqb_Gp)35y#q)N+ItCdOWk<%XKCk?TBbR-f@8ta#L>j)Ps{F4_H0q z7IP$VLOb_|WFWG89oK2)Ta5lzjvwO{1sn+?v?xNla;M2|h?2Ep5PQ&|7#rhp5SY>* z?lkLNL+JW^PQgjV*cUHu1M5n|V3CuR74^7Zh&t1WH@fJlSBi=cOn|4b?e5c^8t`?S zD8@<=iAPK+=FP$Lr{0N9OiYbP7D>Z8!LkooA^l5J`_AamSP@%cvTRi4c!N{9G*5EP z^4#yQGNF`iPVx+mN^1Q5Bfr$;{4&e#rFYv8IFrR^N-&Eqg^2i8R)njv`+xsyD)692 zRiae_p+zlqc~3-H>*?ZjRLf7t)QkV@@-3xx%$?-bG7PbZdH!@b;f%1dvXYuuRzss3 zNtQtZTIi?Ry7dc`q2Yk=2fS;KN1vs0PG_rwyeA(AaJoB?jtr*q3 z*i%!l2tYC31)!^p#!7V9erGXAc&aOhK4{gPaP-f_6Y!QX%}mu;!o>F^ @#BgAa} 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 kdG%k{ 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