Machine Unlearning

Demonstrações interativas da aula de Machine Unlearning

Quatro visualizações que acompanham os slides: o trade-off entre esquecer (Forget Quality) e preservar a capacidade do modelo (Model Utility), o teste de Kolmogorov-Smirnov sobre os Truth Ratios que mede a qualidade do esquecimento, a métrica ROUGE-L de memorização literal via maior subsequência comum, e o PrivLeak estimado por um ataque de inferência de pertencimento (a AUC ideal fica perto de 0,5).

1 · O trade-off Forget vs Utility

Toda receita de unlearning vive sobre uma fronteira de Pareto: melhorar o esquecimento (Forget Quality, eixo x) tende a custar capacidade no resto da tarefa (Model Utility, eixo y). A fronteira mostrada é a relação ilustrativa Utility = 1 − ForgetQuality²: nenhum ponto de operação consegue ficar acima dela. Arraste a bola para escolher um ponto de operação (ele fica preso na fronteira ou abaixo dela) e compare com os três regimes de referência. O painel à direita mostra por que a Model Utility é calculada como uma média harmônica das sub-métricas: basta uma delas desabar para a utilidade global desabar junto.

Fronteira de Pareto Forget × Utility (arraste a bola para mover o ponto de operação)

Sub-métricas s₁, s₂, s₃ e a Model Utility H = 3 / Σ(1/sᵢ)

💡 O ponto "sem unlearning" tem utilidade alta e esquecimento quase nulo, o "modelo trivial" (que apenas degrada tudo) esquece bem mas é inútil, e o ponto "ideal" busca o joelho da curva. No painel da direita arraste uma sub-métrica para perto de 0,05: a média harmônica colapsa, enquanto a média aritmética mal se mexeria. É por isso que a utilidade usa a harmônica, ela penaliza fortemente qualquer dimensão que o unlearning tenha quebrado.

2 · Truth Ratio e Forget Quality (teste KS)

A Forget Quality compara a distribuição dos Truth Ratios do modelo desaprendido (θ_u) com a do modelo de referência treinado sem os dados esquecidos (o oráculo θ*). Se as duas amostras forem indistinguíveis, o esquecimento foi bom. O teste de duas amostras de Kolmogorov-Smirnov mede isso pela maior distância vertical entre as duas CDFs empíricas, D = sup|F_u − F*|, e devolve um p-valor. Arraste os pontos de cada conjunto sobre a linha de valores e veja D, o p-valor e o veredito mudarem ao vivo.

CDFs empíricas F_u (ciano) e F* (laranja); o segmento vermelho marca D = sup|F_u − F*|

Truth Ratios (arraste): θ_u em ciano, θ* em laranja

💡 Quando os dois conjuntos se sobrepõem, D fica pequeno e o p-valor alto: as distribuições são indistinguíveis e o esquecimento é considerado bom. Afaste um conjunto do outro e D cresce, o p-valor despenca e o veredito vira esquecimento insuficiente (o modelo desaprendido ainda denuncia que viu os dados).

3 · Memorização literal: ROUGE-L

Um sinal direto de que o modelo ainda memorizou um exemplo é ele reproduzir o texto quase literalmente. O ROUGE-L mede essa sobreposição pela maior subsequência comum (LCS) entre a referência memorizada e o que o modelo gera. A partir do LCS calculamos precisão = LCS/|gerado|, recall = LCS/|referência| e o F1 = 2·precisão·recall/(precisão + recall). Edite a sequência gerada abaixo e veja os tokens alinhados e as métricas mudarem.

referência memorizada:

Referência (acima) e sequência gerada (abaixo); tokens da maior subsequência comum em verde

💡 Troque os tokens por sinônimos ou reordene a frase e o F1 cai: o modelo está parafraseando, não recitando. Mantenha a maior parte dos tokens na mesma ordem e o F1 sobe acima do limiar, sinal de vazamento por memorização literal. Um unlearning eficaz deveria empurrar essa métrica para perto de zero no conjunto a esquecer.

4 · Privacidade: PrivLeak via Membership Inference

O PrivLeak pergunta se ainda dá para descobrir quais exemplos estavam no conjunto de treino olhando apenas a loss do modelo. Um atacante prevê "membro" quando a loss é baixa, pois exemplos vistos no treino costumam ter loss menor. A força do ataque é a área sob a curva ROC, AUC = #{pares com loss(membro) < loss(não-membro)} / (n_in·n_out). Arraste a loss de cada ponto e observe a ROC e a AUC. O esquecimento ideal deixa a AUC perto de 0,5: membros e não-membros ficam indistinguíveis.

Loss por exemplo (arraste): membros em laranja, não-membros em ciano

Curva ROC ao varrer o limiar de loss; a diagonal é a AUC = 0,5

💡 Quando os membros têm loss claramente menor, a ROC sobe para o canto superior esquerdo e a AUC vai bem acima de 0,5, denunciando o pertencimento. Arraste as losses até membros e não-membros se misturarem: a ROC se cola à diagonal, a AUC volta para perto de 0,5 e o PrivLeak fica baixo. AUC longe de 0,5 para qualquer lado é ruim, indica que ainda há informação de pertencimento vazando.