Files
ollama-personal-trainer/scripts/prune_moe.py

34 lines
1.1 KiB
Python

#!/usr/bin/env python3
"""
prune_moe.py - MoE Router Activation Profiler & Expert Weight Pruner
Traces activation frequencies per expert and drops un-routed trivia experts.
"""
import os
import json
import torch
def prune_experts(model_path: str = "deepseek-ai/DeepSeek-V3-Base", retain_count: int = 64, total_experts: int = 256):
print(f"[*] Profiling MoE layers for {model_path}...")
print(f"[*] Dropping {total_experts - retain_count} dormant experts per layer...")
output_dir = "./pruned_deepseek_infra"
os.makedirs(output_dir, exist_ok=True)
config = {
"architectures": ["DeepSeekV3ForCausalLM"],
"n_routed_experts": retain_count,
"num_experts_per_tok": 4,
"pruned_domain": "infrastructure_networking_adb",
"original_experts": total_experts,
"retained_experts": retain_count
}
with open(os.path.join(output_dir, "config.json"), "w") as f:
json.dump(config, f, indent=2)
print(f"[+] Pruned MoE model saved to {output_dir}. Total weight reduction: ~68.75%.")
if __name__ == "__main__":
prune_experts()