--- title: UnlearningComparator emoji: ๐Ÿข colorFrom: indigo colorTo: blue sdk: static pinned: false license: mit short_description: Machine Unlearning Visual Playground thumbnail: img/teaser.gif # ์ธ๋„ค์ผ์„ ์œ„ํ•ด ์ด ์ค„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. (2๋ฒˆ ํ•ญ๋ชฉ ์ฐธ๊ณ ) --- # ๐Ÿงน Machine Unlearning Comparator *Under review* ย  ![Teaser Animation](https://raw.githubusercontent.com/gnueaj/machine-unlearning-comparator/main/img/teaser.gif) Machine Unlearning Comparator is a **web-based visual-analytics toolkit** for **seeing, testing, and comparing** how unlearning methods balance the three MU principlesโ€”**accuracy, efficiency, and privacy**โ€”from class- to layer-level detail. ![Unlearning Comparator Workflow](https://raw.githubusercontent.com/gnueaj/machine-unlearning-comparator/main/img/fig_workflow_github.png) --- ## ๐Ÿ”— Demo & Video - **Live demo** โ†’ [Machine Unlearning Comparator](https://gnueaj.github.io/Machine-Unlearning-Comparator/) ย  - **5-min overview** โ†’ [Youtube](https://youtu.be/yAyAYp2msDk?si=Q-8IgVlrk8uSBceu) ย  --- ## ๐Ÿš€ Why use the Comparator? | Pain Point | How the Comparator helps | |------------|--------------------------| | Fragmented evaluations | **One workflow โ€” Build โ†’ Screen โ†’ Contrast โ†’ Attack** โ€” keeps every run tidy and repeatable. | | Raw numbers hide behavior | Combine metrics & visuals: **Class-wise Accuracy chart, Prediction Matrix, Embedding Space, Layer-wise Similarity chart**. | | "Did it really forget?" | Built-in **membership-inference attacks** and an aggregated **privacy score** reveal lingering signals. | | Baselines vary by paper | Compare against **standard baselines** or plug in your own method via two Python hooks. | --- ## โœจ Key Features ### Multi-Level Comparison * **Metrics View** โ€“ follow Unlearning/Retaining Accuracy, Run Time (RT), and the worst-case privacy score in one glance. ย  * **Embedding Space** โ€“ twin UMAPs show how feature clusters shift after unlearning. ย  * **Layer-wise Similarity** โ€“ CKA curves pinpoint layers that still encode the forget class. ย  * **Attack Simulation** โ€“ sweep thresholds, flag high-risk samples, and inspect logits interactively. ### Built-in Baselines | Method | Idea (aligned with the paper) | |--------|------------------------------| | **Fine-Tuning (FT)** | Continue training on the **retain set** only, leveraging catastrophic forgetting of the forget set. | | **Gradient Ascent (GA)** | Update weights to **maximize loss** on the forget set, actively "unteaching" it. | | **Random Labeling (RL)** | Assign **random labels** to the forget set then fine-tune, so the model treats those samples as noise. | | **SCRUB** | Use **knowledge distillation** with selective forgetting, preserving important parameters while removing forget class information. | | **SalUn** | Apply **gradient saliency masking** to selectively update weights based on their importance for the forget class. | ### Custom Method API Add your algorithm, register it, and the UI will automatically expose metrics, embeddings, and privacy attacks. --- ## โšก Quick Start ### Backend \`\`\`bash # 1 Install deps & enter env hatch shell # 2 Run the API hatch run start \`\`\` ### Frontend \`\`\`bash # 1 Install deps pnpm install # 2 Launch the UI pnpm start \`\`\` --- ## Related Resources - **ResNet-18 CIFAR-10 MU checkpoints** โ†’ - **ResNet-18 FashionMNIST MU checkpoints** โ†’ - **ViT-Base CIFAR-10 MU checkpoints** โ†’ ## ๐Ÿ“„ Paper [Unlearning Comparator: A Visual Analytics System for Comparative Evaluation of Machine Unlearning Methods](https://arxiv.org/abs/2508.12730)