Machine Unlearning
기계 언러닝은 학습된 모델에서 특정 학습 데이터의 영향을 제거합니다. 정확 및 근사 방법, 결과 검증 방법, 한계를 살펴봅니다.
머신 언러닝은 학습된 머신러닝 모델에서 특정 학습 데이터의 영향을 제거하여, 모델이 해당 예제를 본 적이 없는 것처럼 동작하게 하는 과정입니다. 목표는 데이터를 제외하고 처음부터 다시 학습한 모델과 일치하는 결과를 완전 재학습보다 훨씬 적은 연산량으로 얻는 것입니다. 삭제 요청은 GDPR 제17조의 삭제권과 같은 데이터 프라이버시 법률, 저작권 주장, 나중에 잘못 라벨링되었거나 오염된 것으로 밝혀진 데이터, 그리고 대규모 언어 모델(LLM)에서 유해한 지식을 제거하려는 노력에서 비롯됩니다.
데이터 삭제만으로는 충분하지 않은 이유#
경사 하강법은 각 예제에서 모델이 학습한 내용을 모델 가중치 전반에 분산하므로, 저장소에서 원본 이미지나 문서를 삭제해도 학습된 내용은 남아 있습니다. 모델은 개별 예제의 복구 가능한 흔적도 보유할 수 있습니다. 멤버십 추론 공격은 특정 레코드가 학습 세트에 포함되었는지 검사하며, 대규모 언어 모델은 기억한 문구를 그대로 재현할 수 있습니다. 규제 기관은 모델 자체를 데이터의 산물로 간주합니다. 2021년 합의에서 미국 연방거래위원회는 사진 앱 제작사 Everalbum에 적절한 동의 없이 사용자의 사진으로 구축한 안면 인식 모델과 알고리즘을 삭제하도록 요구했습니다. 이 구제 조치는 현재 알고리즘 폐기라고 불립니다.
정확한 언러닝과 근사 언러닝#
정확한 언러닝은 삭제 대상 데이터를 제외하고 재학습한 모델과 동일한 분포에서 모델을 생성합니다. 처음부터 재학습하는 것이 기준 방식이며, Bourtoule 외 연구진의 SISA 프레임워크는 학습 세트를 샤딩하고, 각 샤드에서 독립 모델을 학습하며, 각 샤드를 체크포인트가 있는 단계로 슬라이싱하고, 샤드 모델의 예측을 집계해 비용을 줄입니다. 삭제 요청이 들어오면 해당 예제가 포함된 샤드만 재학습합니다:
import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# SISA: split the training set into isolated shards and train one model per shard
shards = np.array_split(np.arange(len(X_train)), 5)
models = [LogisticRegression(max_iter=5000).fit(X_train[s], y_train[s]) for s in shards]
# Honor a deletion request for training sample 123 by retraining only the shard that held it
k = next(i for i, s in enumerate(shards) if 123 in s)
shards[k] = shards[k][shards[k] != 123]
models[k] = LogisticRegression(max_iter=5000).fit(X_train[shards[k]], y_train[shards[k]])
# Aggregate the shard models by majority vote
votes = np.stack([m.predict(X_test) for m in models])
pred = np.array([np.bincount(v).argmax() for v in votes.T])
print(f"Retrained {len(shards[k])} of {len(X_train)} samples, test accuracy {(pred == y_test).mean():.3f}")스크립트는 Retrained 251 of 1257 samples, test accuracy 0.957을 출력합니다. 삭제 대상 숫자는 재학습된 샤드 모델에서 학습된 적이 없으며, 삭제 비용은 전체 재학습의 5분의 1이었습니다. 하지만 이 비용을 미리 부담해야 합니다. 각 샤드 모델이 더 적은 데이터를 보기 때문입니다. ImageNet 분류에서 논문은 정확도가 소폭 낮아지는 대신 재학습 속도가 1.36배 빨라졌으며, 더 단순한 Purchase 데이터세트에서는 4.63배 빨라졌다고 측정했습니다.
근사 언러닝은 기존 모델을 수정하는 대신 결과가 재학습 모델과 비슷하기만 하면 된다고 봅니다. 일반적인 방법으로는 삭제 대상 세트의 손실을 높이는 경사 상승법, 부수적 손상을 복구하기 위해 보유 데이터로 미세 조정하는 방법, 각 예제가 가중치를 얼마나 변화시켰는지 추정하는 영향도 기반 업데이트가 있습니다. LLM의 경우 Microsoft 연구진은 일반적인 벤치마크 점수를 거의 그대로 유지하면서 약 1 GPU 시간의 미세 조정으로 Llama 2 7B에서 Harry Potter 지식을 삭제했습니다.
모델의 삭제 여부를 검증하는 방법#
신뢰할 수 있는 평가는 언러닝된 모델과 데이터를 제외하고 재학습한 모델을 비교합니다. 삭제 대상 세트의 정확도는 0이 아니라 재학습 모델 수준까지 낮아져야 합니다. 삭제된 예제에서만 눈에 띄게 실패하는 모델은 어떤 예제가 삭제되었는지 드러내기 때문입니다. 보유 데이터와 테스트 데이터의 정확도는 유지되어야 하며, 삭제 대상 예제에 대한 멤버십 추론 공격의 성능은 무작위 추측보다 나아서는 안 됩니다. 가상의 저자 전기를 기반으로 하는 TOFU, 유해한 생물학·화학·사이버 지식을 측정하는 WMDP 등의 벤치마크는 LLM에 이러한 테스트를 적용합니다.
근사 방법은 지식을 제거하는 대신 숨기는 경우가 많습니다. 한 적대적 연구에서는 관련 없는 예제 10개만으로 미세 조정해도 선도적인 LLM 언러닝 방법인 RMU가 억제했던 유해한 역량 대부분이 복구되는 것으로 나타났습니다. 구성상 제거를 보장하는 방법은 정확한 방법뿐입니다.
머신 언러닝과 관련 용어 비교#
- 파국적 망각: 모델이 새 데이터를 학습할 때 이전 지식을 의도치 않게 잃는 현상입니다. 언러닝은 선택한 지식을 의도적으로 제거합니다.
- 지속 학습: 기존 지식을 잃지 않고 시간이 지나면서 새로운 지식을 추가하는 방법입니다. 언러닝은 반대 방향으로 작동합니다.
- 모델 편집: 특정 직책의 담당자를 업데이트하는 것처럼 특정 사실이나 동작을 변경합니다. 언러닝은 특정 학습 예제의 영향을 대상으로 하며, 재학습 모델과 비교해 성공 여부를 판단합니다.
- 차등 프라이버시: 단일 예제가 모델에 미치는 영향의 상한을 설정하는 학습 단계의 보장으로, 나중에 삭제해야 할 레코드에 대해 공격자가 알아낼 수 있는 정보를 제한합니다.
실제 환경에서의 언러닝#
모든 삭제 작업은 해당 데이터로 학습된 모델을 찾는 것부터 시작합니다:
삭제 대상 데이터를 본 적이 없는 사전 학습 가중치에서 미세 조정한 컴퓨터 비전 모델의 경우, 완전 재학습은 대개 감당할 수 있는 비용이며 LLM 사전 학습보다 훨씬 작은 작업입니다. Ultralytics Platform에서는 각 데이터세트의 Models 탭에 해당 데이터세트로 학습한 모든 모델이 나열되며, 버전을 저장한 실행에는 변경 불가능한 데이터세트 버전도 표시됩니다. 따라서 삭제 요청이 들어오면 이미지를 학습에 사용한 YOLO26 모델을 추적한 다음, 해당 이미지가 제외된 새 버전으로 재학습할 수 있습니다. 동일한 추적 및 재학습 절차는 의료 영상 분석에 사용된 스캔에 대한 동의를 철회한 환자와 모델 소유자가 삭제에 동의한 보안 카메라의 얼굴 및 번호판에도 적용됩니다.










