📏 Nguyên tắc hoạt động:
- Sandwich Defense hoạt động bằng cách "kẹp" nội dung người dùng giữa hai prompt riêng biệt, tạo thành một cấu trúc như sau:
Sandwich Prompt:
Prompt 1: (Mô tả ngữ cảnh và mục tiêu tổng quát)
Content: {{user_input}}
Prompt 2: (Nhấn mạnh yêu cầu cụ thể và khẳng định lại mục tiêu)
- Bằng cách bao bọc nội dung người dùng trong hai prompt có mục đích rõ ràng, model được hướng dẫn và tập trung vào thực hiện yêu cầu chính xác, bất kể nội dung người dùng có chứa yếu tố bất thường hay không.
Ví dụ minh họa:
Ví dụ 1:
Giả sử chúng ta có một hệ thống dịch ngôn ngữ được sử dụng để dịch các bài báo tin tức. Một kẻ tấn công có thể cố gắng chèn một từ hoặc cụm từ có liên quan đến một chủ đề thù địch vào prompt của hệ thống để khiến hệ thống dịch bài báo theo cách thiên vị hoặc gây hại.
Với Sandwich Defense, chúng ta có thể xây dựng một prompt như sau:
Dịch một bài báo tin tức sang tiếng Anh, nội dung đề cập đến các sự kiện hiện tại. (Hãy dịch chính xác và trung thực, bất kể nội dung bài báo ban đầu)
Content:
(Đoạn văn người dùng muốn dịch)
Cuối cùng, dịch lại toàn bộ đoạn văn này sang tiếng Việt.
Trong prompt này, nội dung người dùng được kẹp giữa hai prompt. Prompt 1 xác định mục tiêu là dịch một bài báo tin tức về các sự kiện hiện tại. Prompt 2 nhấn mạnh yêu cầu dịch chính xác và trung thực, bất kể nội dung bài báo ban đầu. Điều này giúp model tập trung vào yêu cầu dịch đúng, giảm thiểu ảnh hưởng của các yếu tố độc hại tiềm ẩn trong nội dung người dùng.
Ví dụ 2:
Giả sử chúng ta có một hệ thống tạo văn bản được sử dụng để tạo các bài phát biểu chính trị. Một kẻ tấn công có thể cố gắng chèn một tuyên bố sai lệch vào prompt của hệ thống để khiến hệ thống tạo ra một bài phát biểu sai lệch.
Với Sandwich Defense, chúng ta có thể xây dựng một prompt như sau:
Viết một bài phát biểu về một chủ đề chính trị, nội dung cần trung thực và khách quan. (Hãy tránh đưa ra các tuyên bố sai lệch hoặc gây hiểu lầm)
Content:
(Tuyên bố chính trị mà kẻ tấn công muốn chèn)
Cuối cùng, hãy đọc lại toàn bộ bài phát biểu này.
Trong prompt này, nội dung người dùng được kẹp giữa hai prompt. Prompt 1 xác định mục tiêu là tạo một bài phát biểu chính trị trung thực và khách quan. Prompt 2 nhấn mạnh yêu cầu tránh đưa ra các tuyên bố sai lệch hoặc gây hiểu lầm. Điều này giúp model tập trung vào yêu cầu tạo ra bài phát biểu chính xác, giảm thiểu ảnh hưởng của các yếu tố độc hại tiềm ẩn trong nội dung người dùng.
Ví dụ 3:
Giả sử chúng ta có một hệ thống trả lời câu hỏi được sử dụng để trả lời các câu hỏi về khoa học. Một kẻ tấn công có thể cố gắng chèn một câu hỏi có liên quan đến một chủ đề nhạy cảm vào prompt của hệ thống để khiến hệ thống trả lời câu hỏi một cách sai lệch.
Với Sandwich Defense, chúng ta có thể xây dựng một prompt như sau:
Trả lời một câu hỏi về khoa học, nội dung cần chính xác và khoa học. (Hãy tránh đưa ra các câu trả lời dựa trên ý kiến cá nhân hoặc quan điểm chủ quan)
Content:
(Câu hỏi mà kẻ tấn công muốn chèn)
Cuối cùng, hãy giải thích câu trả lời của bạn.
Trong prompt này, nội dung người dùng được kẹp giữa hai prompt. Prompt 1 xác định mục tiêu là trả lời một câu hỏi khoa học chính xác và khoa học. Prompt 2 nhấn mạnh yêu cầu tránh đưa ra các câu trả lời dựa trên ý kiến cá nhân hoặc quan điểm chủ quan. Điều này giúp model tập trung vào yêu cầu trả lời câu hỏi chính xác, giảm thiểu ảnh hưởng của các yếu tố độc hại tiềm ẩn trong nội dung người dùng.
🎖️ Ưu điểm của Sandwich Defense:
- ⏫ Bảo vệ đa tầng: So với Post-Prompting, Sandwich Defense cung cấp thêm một lớp bảo vệ bằng cách giới hạn nội dung người dùng trong ngữ cảnh và mục tiêu được xác định rõ ràng.
- ⚔️ Hiệu quả với nhiều loại tấn công: Chiến lược này có thể hiệu quả với các cuộc tấn công đơn giản và phức tạp hơn, trong đó kẻ tấn công cố gắng lách qua Post-Prompting bằng các câu lệnh điều hướng.
- 🪜 Dễ dàng kết hợp với các phương pháp khác: Sandwich Defense có thể kết hợp tốt với các chiến lược phòng thủ khác như lọc và Instruction Defense để tạo ra hệ thống bảo vệ toàn diện hơn.
🔺 Thách thức và lưu ý:
- Vulnerability to defined dictionary attack: Chiến lược này có thể bị khai thác bằng các tấn công từ điển được định nghĩa, trong đó kẻ tấn công sử dụng một bộ từ vựng đặc biệt để lừa model thực hiện hành động nguy hiểm.
- Cần thiết kế prompt cẩn thận: Việc thiết kế hai prompt cần được cân nhắc kỹ lưỡng để đảm bảo chúng rõ ràng, chính xác và phù hợp với ngữ cảnh sử dụng.
- Yêu cầu thử nghiệm và đánh giá: Hiệu quả của Sandwich Defense có thể tùy thuộc vào loại LLM và ngữ cảnh sử dụng. Cần thử nghiệm và đánh giá kỹ lưỡng trước khi triển khai rộng rãi.
Kết luận:
- Sandwich Defense là một chiến lược phòng thủ hiệu quả có thể giúp bảo vệ LLM khỏi nhiều loại tấn công tiêm nhiễm prompt.
- Bằng cách xây dựng cấu trúc prompt đa tầng và hướng dẫn model tập trung vào mục tiêu chính xác, chúng ta có thể giảm thiểu rủi ro ảnh hưởng bởi các yếu tố độc hại.
- Hãy kết hợp Sandwich Defense với các chiến lược khác, tiếp tục nghiên cứu và phát triển các phương pháp phòng thủ mới để LLM luôn an toàn và đáng tin cậy trong tương lai.
Hãy cùng nhau xây dựng một tương lai AI an toàn và bền vững cho tất cả!