Đảm bảo an toàn trong ứng dụng trí tuệ nhân tạo
Trong việc phát triển ứng dụng AI, các nhà khoa học dữ liệu cần phát triển những mô hình thống kê có khả năng phát hiện, chống trả những nỗ lực đánh lừa AI. Phạm vi tấn công của một mô hình AI có thể rất rộng lớn và khó hiểu. Những lỗ hổng trong mạng nơ-ron sâu nếu bị phát hiện và lợi dụng có thể khiến tổ chức gặp nguy hiểm. Khả năng tấn công các mạng nơ-ron sâu càng ngày càng tăng lên. Các nghiên cứu đã cho thấy khá nhiều trường hợp mạng nơ-ron sâu bị tấn công phá hoại. Phần lớn các công trình nghiên cứu tập trung vào khả năng sửa đổi hình ảnh không thể phát hiện, khiến các thuật toán máy tính nhận nhầm hoặc phân loại nhầm hình ảnh. Kẻ tấn công có thể thành công ngay cả khi chúng không biết mạng nơ-ron được xây dựng như thế nào. Những sửa đổi với mục đích phá hoại có thể cực kỳ nhỏ và khó phát hiện nhưng tác hại của chúng gây ra không hề nhỏ. Ứng dụng AI có thể đưa ra quyết định sai khi bị đánh lừa, chẳng hạn như khi hiểu nhầm biển báo giao thông và chuyển hướng sai dẫn đến tai nạn. Tùy phần lớn những kiểu tấn công giả lập được thực hiện trong môi trường thí nghiệm có kiểm soát chứ không phải những ứng dụng AI triển khai trên thực tế, nhưng chúng rất có khả năng bị tội phạm, khủng bố lợi dụng.
Các nhà phát triển AI cần tuân thủ những hướng dẫn sau để phòng chống khả năng bị lợi dụng:
- Giả định khả năng bị tấn công phá hoại với tất cả các tài sản AI đang ứng dụng. Do AI được ứng dụng ở khắp nơi nên các nhà phát triển phải luôn nghĩ rằng ứng dụng của họ sẽ nằm trong danh sách tấn công của tội phạm để đưa ra các biện pháp phòng thủ. Những lỗ hổng của AI có thể gây hại lớn hơn nhiều so với những sai lầm của con người vì chúng được tự động hoá và nhân rộng.
- Thực hiện việc đánh giá nguy cơ trước khi phát triển: các nhà phát triển cần đánh giá từ đầu và xem xét các nguy cơ trong suốt vòng đời của quy trình phát triển ứng dụng. Theo một tài liệu nghiên cứu do IEEE công bố năm 2015, các nhà phát triển cần đánh giá khả năng kẻ xấu truy cập trực tiếp tới các cấu phần chủ chốt của dự án AI, bao gồm cả kiến trúc mạng nơ-ron, dữ liệu đào tạo, các tham số, phương pháp học máy và hàm sai lệch (loss function).
- Cần giả định rằng kẻ tấn công có thể sử dụng những phương thức gián tiếp để tạo ra những dữ liệu đánh lừa: chúng có thể thu thập một tập dữ liệu thay thế từ chính nguồn dữ liệu đào tạo dùng để tối ưu hoá mạng nơ-ron. Tập dữ liệu đó có thể giúp kẻ tấn công hiểu thêm về kiểu dữ liệu giả có thể đánh lừa AI.
- Tạo ra những ví dụ phá hoại trong quá trình đào tạo AI: những nhà phát triển nên tìm hiểu những nghiên cứu về các cách sửa đổi dữ liệu để đánh lừa mạng nơ-ron. Các nhà khoa học dữ liệu nên tận dụng những công cụ nguồn mở trên GitHub và các hệ thống khác để sinh dữ liệu kiểm thử lỗ hổng của mạng nơ-ron và các mạng AI khác.
- Kiểm tra các thuật toán bằng nhiều dạng dữ liệu đầu vào để xác định khả năng chịu lỗi: các nhà phát triển AI cần kiểm tra xem mạng nơ-ron của họ có thể xử lý những dữ liệu đầu vào đa dạng và đưa ra kết quả đáng tin cậy tới mức nào.
- Cần dựa vào cả thuật toán và con người để chống lại những dữ liệu đánh lừa: Một số kiểu chỉnh sửa có thể được con người phát hiện rất dễ dàng nhưng AI lại không nhận ra. Ngược lại, một số kiểu chỉnh sửa khác lại quá chi tiết khiến con người không phát hiện nổi nhưng lại có thể được một thuật toán phân biệt trong Generative Adversarial Networks nhận ra khá đơn giản.
- Xây dựng các mô hình nhóm sử dụng nhiều thuật toán AI để phát hiện những dữ liệu đánh lừa: ví dụ như các nhà nghiên cứu ở trường đại học Campinas phát hiện một trường hợp mà thuật toán nhận dạng nông có thể phát hiện hình ảnh đánh lừa tốt hơn một mạng nơ-ron CNN nhiều lớp. Họ cũng nhận thấy một số thuật toán có thể phát hiện sự chỉnh sửa trên toàn bộ hình ảnh tốt hơn trong khi những thuật toán khác lại có khả năng vượt trội trong việc phát hiện những chỉnh sửa chi tiết ở một phần nhỏ của hình ảnh.
- Tái sử dụng những kiến thức về phòng chống đánh lừa để nâng cao khả năng của AI: trong một tài liệu nghiên cứu năm 2016 của IEEE, các nhà khoa học dữ liệu có thể dùng các kỹ thuật học - chuyển giao để giảm khả năng bị tấn công của CNN hay các mô hình khác. Trong khi cách làm truyền thống áp dụng tri thức thống kê từ một mô hình có sẵn sang một mô hình khác, tài liệu nghiên cứu này mô tả cách sử dụng kiến thức thu được từ việc học một tập dữ liệu hợp lệ để phát hiện những chỉnh sửa phá hoại.
- Xem xét các biện pháp phòng chống tấn công trong suốt vòng đời của các mô hình AI được triển khai: Để giảm thiểu rủi ro của các lỗ hổng trong ứng dụng AI, môi trường DevOps của các nhà khoa học dữ liệu cần hỗ trợ các biện pháp kiểm soát mạnh trong toàn bộ vòng đời sản phẩm. Những biện pháp đó có thể gồm bảo vệ trong quản lý cấu hình, theo dõi thay đổi, kiểm soát phiên bản, quản lý quyền và các biện pháp kiểm tra trong tất cả các dự án và tài sản AI.
Trường hợp lý tưởng nhất là các nhà khoa học dữ liệu có được các công cụ chống đánh lừa tinh vi để giúp họ áp dụng những phương thức thực hành tốt nhất trong toàn bộ quá trình phát triển và vận hành AI. Theo hướng đó, IBM vừa công bố Adversarial Robustness Toolbox tại hội thảo RSA Conference hàng năm. Đây là bộ công cụ nguồn mở đầu tiên bao gồm các kiểu tấn công, các biện pháp phòng chống và các phép đo cho:
- Phát hiện dữ liệu đầu vào bị chỉnh sửa phá hoại: bộ công cụ bao gồm các phương thức dánh dấu những dữ liệu đầu vào để lợi dụng những điểm yếu của mạng nơ-ron sâu.
- Áp dụng các biện pháp phòng chống phá hoại ở mức kiến trúc của các mô hình mạng nơ-ron: thay đổi kiến trúc của mạng nơ-ron sâu để ngăn các tín hiệu phá hoại lây lan qua lớp biểu diễn, bổ sung các ví dụ phá hoại vào dữ liệu đào tạo và/hoặc thực hiện các thay đổi tiền xử lý với dữ liệu đầu vào của mạng nơ-ron sâu. Bộ công cụ hỗ trợ ba phương thức: feature squeezing, spatial smoothing và label smoothing.
- Đo khả năng chống lại dữ liệu ác ý của mạng nơ-ron bằng cách ghi nhận những sai lệch của độ chính xác khi xử lý dữ liệu đánh lừa và mức thay đổi của các biểu diễn bên trong cũng như đầu ra của mạng nơ-ron sâu khi dữ liệu đầu vào thay đổi. Sử dụng bộ công cụ triển khai độ đo mới – CLEVER (Cross Lipschitz Extreme Value for nEtwork Robustness) – để đánh giá bất kỳ mạng nơ-ron phân loại nào. Độ đo này cho biết mức độ kẻ xấu có thể qua mặt một mạng nơ-ron, khiến nó phân loại sai dữ liệu đầu vào. Nó ước lượng mức tấn công tối thiểu cần thiết để có thể thay đổi thành công một hình ảnh tự nhiên thành một hình ảnh đánh lừa.
Bộ công cụ này được phát triển trong các phòng thí nghiệm của IBM ở Dublin, Ireland, bằng ngôn ngữ Python, là nguồn mở và có thể làm việc với các mô hình nơ-ron sâu. Phiên bản đầu tiên hỗ trợ TensorFlow và Keras, các phiên bản sau có thể sẽ hỗ trợ PyTorch và MXNet. Các biện pháp phòng chống trong bộ công cụ có có thể được đào tạo trên Fabric for Deep Learning mà IBM mới công bố hoặc qua IBM Deep Learning as a Service trong Watson Studio. Các nhà phát triển có thể truy cập mã nguồn của bộ công cụ qua ART GitHub.
Hiện tại, các thư viện của bộ công cụ chỉ hỗ trợ phòng chống đánh lừa cho một kiểu mạng nơ-ron sâu là những loại mô hình nhận dạng và phân loại hình ảnh. Bộ công cụ bao gồm nhiều kiểu tấn công khác nhau như Deep Fool, Fast Gradient Method, Jacobian Saliency Map. Các phiên bản trong tương lai sẽ hỗ trợ các mạng nơ-ron sâu được thiết kế để xử lý giọng nói, văn bản và dữ liệu chuỗi thời gian.
Các thư viện của bộ công cụ chủ yếu phòng chống những tấn công mà dữ liệu đánh lừa được đưa vào trong quá trình vận hành mô hình. Tuy nhiên, các biện pháp phòng chống kiểu tấn công “đầu độc”, trong đó, dữ liệu đào tạo bị chỉnh sửa ngay từ giai đoạn phát triển mô hình sẽ được cung cấp trong những phiên bản tiếp theo.
Nguyễn Anh Tuấn
Lược dịch siliconangle.com