#!/usr/bin/env python3"""REAP Pruning Script for MoE ModelsAdapted from: https://github.com/CerebrasResearch/reap""" import subprocessimport sys def run_reap( model_path: str, compression_ratio: float, dataset: str = "0xSero/glm47-reap-calibration-v2", samples: int = 1360, seed: int = 42, distance: str = "angular", reuse_observations: str = None,): """ Run REAP expert pruning. Args: model_path: Path to base model compression_ratio: 0.30 = prune 30%, keep 70% dataset: Calibration dataset (code + tools + agentic) samples: Number of calibration samples seed: Random seed for reproducibility distance: Distance metric for expert clustering reuse_observations: Path to pre-computed observations for instant pruning """ cmd = [ sys.executable, "src/reap/prune.py", "--model-name", model_path, "--dataset-name", dataset, "--compression-ratio", str(compression_ratio), "--prune-method", "reap", "--seed", str(seed), "--samples_per_category", str(samples), "--model_max_length", "2048", "--distance_measure", distance, "--record_pruning_metrics_only", "true", ] if reuse_observations: # Instant pruning: skip calibration, reuse precomputed expert scores cmd.extend(["--load_observations", reuse_observations]) subprocess.run(cmd, check=True) # Example: Create 40% pruned modelrun_reap( model_path="/path/to/GLM-4.7", compression_ratio=0.40, # Prune 40% of experts)