PII gồm tên, email, số điện thoại, CCCD, số thẻ, địa chỉ, hồ sơ y tế. Với LLM có bốn đường rò: gửi thẳng lên provider bên ngoài, lọt vào log, lọt vào dữ liệu fine-tune rồi bị model ghi nhớ, và chính model sinh ra PII ở đầu ra.
Nguyên tắc gốc: giảm lượng PII đi ra ngoài, đừng chỉ trông vào cam kết của provider.
Che trước khi gửi — cách hiệu quả nhất: thay PII bằng placeholder ([TÊN_1], [EMAIL_1]), giữ bảng ánh xạ ở phía mình, gửi bản đã che lên model rồi khôi phục khi trả về người dùng. Model làm việc hoàn toàn trên placeholder mà kết quả không đổi, vì phần lớn tác vụ không cần biết tên thật. Presidio là công cụ phổ biến cho khâu này.
Chọn nơi xử lý theo mức nhạy cảm:
- Thoả thuận không lưu trữ dữ liệu (ZDR) với provider là mức tối thiểu cho dữ liệu thường.
- Dữ liệu bị quản lý chặt thì dùng bản triển khai theo vùng (Azure OpenAI, AWS Bedrock) có ràng buộc hợp đồng và chọn được nơi lưu trữ.
- Nhạy cảm nhất thì tự vận hành model, dữ liệu không rời hệ thống.
Quét cả đầu ra, không chỉ đầu vào. Model có thể nhắc lại PII lấy từ ngữ cảnh, hoặc bịa ra một email trông rất thật. Quét trước khi trả về người dùng.
Log là chỗ rò hay bị bỏ quên nhất. Đừng log thẳng prompt và response còn PII; cần debug thì log bản đã che. Đặt thời hạn tự xoá, mã hoá khi lưu, giới hạn ai đọc được — vì log thường được chia sẻ rộng hơn database rất nhiều.
Nếu fine-tune thì phải làm sạch dữ liệu trước. Model ghi nhớ được dữ liệu huấn luyện, và một khi PII đã vào trọng số thì không gỡ ra được, chỉ còn cách train lại.
Phần pháp lý cần chuẩn bị sẵn: thông báo rõ dữ liệu đi đâu và lưu bao lâu; đáp ứng quyền của chủ thể dữ liệu theo GDPR (xem, xoá, rút khỏi việc dùng để huấn luyện); ký DPA với provider. Tính năng xử lý dữ liệu nhạy cảm thì cần đánh giá tác động (DPIA) trước khi ra mắt.
Quyền được xoá là chỗ khó nhất về kỹ thuật — phải xoá được ở database, log, vector store và bộ nhớ hội thoại. Thiết kế ngay từ đầu sao cho dữ liệu của một người dùng luôn truy ra được, đừng đợi tới lúc nhận yêu cầu xoá mới đi tìm.