Membership Inference Attacks
Tấn công suy luận tư cách thành viên kiểm tra xem một bản ghi cụ thể có nằm trong dữ liệu huấn luyện của model hay không, bằng cách khai thác chênh lệch loss do overfitting tạo ra.
Tấn công suy luận tư cách thành viên tìm cách xác định một bản ghi dữ liệu cụ thể có nằm trong dữ liệu huấn luyện của model học máy hay không. Kẻ tấn công đã có sẵn bản ghi, chẳng hạn ảnh chụp y tế của bệnh nhân hoặc ảnh của một người, rồi truy vấn model để quyết định bản ghi đó là “thành viên” hay “không phải thành viên”. Chỉ riêng việc một người có mặt trong dữ liệu cũng có thể nhạy cảm, khiến những cuộc tấn công này trở thành rủi ro cốt lõi đối với quyền riêng tư dữ liệu: nếu model chỉ được huấn luyện trên bệnh nhân mắc một căn bệnh cụ thể, việc chứng minh ảnh chụp của ai đó nằm trong tập huấn luyện sẽ tiết lộ chẩn đoán của họ. Năm 2017, Reza Shokri, Marco Stronati, Congzheng Song và Vitaly Shmatikov giới thiệu các cuộc tấn công suy luận tư cách thành viên nhằm vào model học máy và chứng minh chúng trên các nền tảng ML dưới dạng dịch vụ thương mại của Google và Amazon.
Vì sao model làm lộ tư cách thành viên#
Model hoạt động khác nhau trên dữ liệu chúng được huấn luyện. Chúng thường gán loss thấp hơn và độ tin cậy cao hơn cho ví dụ huấn luyện so với ví dụ chưa từng thấy; khoảng cách này tăng lên khi overfitting. Các model lớn ghi nhớ ví dụ hiếm, ảnh trùng lặp hoặc ngoại lệ gây rò rỉ nhiều nhất; model AI tạo sinh, bao gồm mô hình ngôn ngữ lớn (LLM), có thể làm lộ tư cách thành viên bằng cách tái tạo gần như nguyên văn ảnh hoặc văn bản huấn luyện.
Cuộc tấn công đơn giản nhất đặt ngưỡng cho loss: đoán “thành viên” bất cứ khi nào loss của model trên một bản ghi thấp bất thường. Đoạn mã dưới đây huấn luyện một bộ phân loại mạng nơ-ron nhỏ trong PyTorch trên 100 bản ghi ngẫu nhiên có nhãn ngẫu nhiên; model chỉ có thể học chúng bằng cách ghi nhớ. Sau đó, đoạn mã tấn công một tập gồm các thành viên đó và 100 bản ghi model chưa từng thấy:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
x, y = torch.randn(200, 20), torch.randint(0, 2, (200,))
is_member = torch.arange(200) < 100 # the first 100 records form the training set
# Train a small classifier on the members only, long enough to memorize them
model = torch.nn.Sequential(torch.nn.Linear(20, 256), torch.nn.ReLU(), torch.nn.Linear(256, 2))
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
for _ in range(300):
optimizer.zero_grad()
F.cross_entropy(model(x[is_member]), y[is_member]).backward()
optimizer.step()
# Loss-threshold attack: guess "member" for every record with below-median loss
with torch.no_grad():
losses = F.cross_entropy(model(x), y, reduction="none")
guess = losses < losses.median()
print(f"attack accuracy: {(guess == is_member).float().mean():.2f}")Cuộc tấn công gán nhãn chính xác cho 85% bản ghi, trong khi đoán ngẫu nhiên chỉ đạt 50%. Loss của mọi thành viên gần bằng 0, nhưng 15 bản ghi không phải thành viên mà model tình cờ dự đoán nhãn ngẫu nhiên với độ tin cậy còn cao hơn lại nằm dưới ngưỡng trung vị, khiến 16 thành viên nằm phía trên ngưỡng đó. Model tổng quát hóa tốt hơn thu hẹp chênh lệch loss, làm giảm độ chính xác của cuộc tấn công nhưng thường không loại bỏ hoàn toàn rủi ro.
Các cuộc tấn công mạnh hơn và cách đo lường#
- Model bóng: Cuộc tấn công ban đầu năm 2017 huấn luyện một số model trên dữ liệu tương tự với tư cách thành viên đã biết, rồi huấn luyện một classifier trên đầu ra của các model đó để nhận diện dấu hiệu của tư cách thành viên.
- Tấn công đã hiệu chuẩn: Tấn công tỷ số hợp lý (LiRA), được Nicholas Carlini cùng các đồng nghiệp công bố năm 2022, so sánh loss của một bản ghi với các model tham chiếu được huấn luyện có và không có bản ghi đó. Cách này phát hiện các ngoại lệ bị ghi nhớ mà ngưỡng chung duy nhất không thể phát hiện.
- Tấn công chỉ dựa trên nhãn: API chỉ trả về nhãn dự đoán vẫn có thể làm rò rỉ thông tin, vì các mẫu dữ liệu thuộc tập huấn luyện thường cần nhiễu đầu vào lớn hơn—loại nhiễu mà tấn công đối kháng tìm cách xác định—để làm thay đổi dự đoán.
Vì độ chính xác tổng thể che khuất một số ít cá nhân chịu rủi ro cao nhất, các cuộc kiểm toán quyền riêng tư báo cáo tỷ lệ dương tính thật tại tỷ lệ dương tính giả rất thấp, chẳng hạn 0.1%. Các bộ công cụ quyền riêng tư mã nguồn mở có thể tạo báo cáo suy luận tư cách thành viên, chạy những cuộc tấn công này trên một model đã huấn luyện và biểu đồ hóa mức độ dễ bị tấn công qua các checkpoint huấn luyện.
Các cuộc tấn công quyền riêng tư liên quan#
Suy luận về tư cách thành viên là dạng rò rỉ dữ liệu huấn luyện hẹp nhất. Đảo ngược model tái tạo các đặc trưng đại diện của một lớp hoặc một người, suy luận thuộc tính bổ sung trường nhạy cảm còn thiếu của một bản ghi mà kẻ tấn công biết một phần, còn trích xuất dữ liệu huấn luyện khôi phục nội dung nguyên văn như văn bản được ghi nhớ. Đầu độc dữ liệu hoạt động theo chiều ngược lại: làm hỏng tập huấn luyện thay vì đọc dữ liệu từ đó. Các phương pháp machine unlearning, nhằm loại bỏ ảnh hưởng của một bản ghi sau huấn luyện, dùng suy luận tư cách thành viên để kiểm tra xem bản ghi đó còn để lại dấu vết hay không. Vì tư cách thành viên là đơn vị rò rỉ nhỏ nhất, suy luận tư cách thành viên đã trở thành thước đo tiêu chuẩn để đánh giá mức độ một quy trình huấn luyện làm lộ từng bản ghi.
Biện pháp phòng vệ#
Quyền riêng tư vi sai là phương pháp phòng vệ có bảo đảm hình thức. Khi huấn luyện bằng DP-SGD, một biến thể của gradient descent ngẫu nhiên có trong PyTorch thông qua Opacus, hệ thống cắt gradient của từng ví dụ và thêm nhiễu đã hiệu chuẩn; về mặt toán học, cách này giới hạn mức độ một bản ghi đơn lẻ có thể làm thay đổi model, qua đó giới hạn lợi thế của mọi cuộc tấn công suy luận tư cách thành viên, đổi lại là một phần độ chính xác. Các biện pháp thực tiễn giúp giảm rủi ro hơn nữa: regularization, tăng cường dữ liệu và dừng sớm hạn chế overfitting; xóa các bản ghi trùng lặp ngăn một ảnh hoặc tài liệu bị ghi nhớ nhiều lần; API công khai có thể chỉ trả về nhãn hoặc điểm độ tin cậy đã làm tròn.
Đường cong huấn luyện của model thị giác là nơi nhanh nhất để kiểm tra mức độ lộ dữ liệu. Khi bộ phát hiện Ultralytics YOLO26 được tinh chỉnh trên ảnh nhạy cảm như ảnh chụp y tế hoặc thẻ nhân viên, chế độ huấn luyện ghi lại loss huấn luyện và validation sau mỗi epoch. Đối số patience, mặc định là 100 epoch, dừng huấn luyện nếu fitness trên validation không cải thiện trong số epoch đó; nhờ vậy, quá trình dừng trước các epoch cuối, khi loss huấn luyện tiếp tục giảm còn kết quả validation chững lại—khoảng cách mà cuộc tấn công dựa trên ngưỡng loss khai thác.










