KillSwitch: Ngôn ngữ lập trình được thiết kế để đánh lừa các mô hình AI

Công nghệ19 tháng 10, 2026·6 phút đọc

Kỹ sư phần mềm Dominik Picheta đã tạo ra KillSwitch, một ngôn ngữ lập trình mã nguồn mở với cấu trúc kỳ quặc nhằm khiến các mô hình ngôn ngữ lớn (LLM) không thể hiểu và tái sử dụng mã nguồn. Ngôn ngữ này dựa trên trạng từ, các câu văn xuôi gây nhiễu và thậm chí cả những thông tin sai lệch trong tài liệu đặc tả để chống lại việc AI thu thập dữ liệu.

KillSwitch: Ngôn ngữ lập trình được thiết kế để đánh lừa các mô hình AI

KillSwitch: Ngôn ngữ lập trình được thiết kế để đánh lừa các mô hình AI

Khi các mô hình ngôn ngữ lớn (LLM) ngày càng được dùng để viết mã, một kỹ sư tại Cloudflare đã nghĩ ra cách độc đáo để bảo vệ mã nguồn: tạo ra một ngôn ngữ lập trình mà AI khó có thể hiểu nổi. Kết quả là KillSwitch — một dự án mã nguồn mở kỳ quặc nhưng đầy thú vị, nơi cú pháp được cố tình làm rối rắm và tài liệu đặc tả còn chứa cả những lời nói dối để đánh lừa máy móc.

Từ thử nghiệm nhỏ đến ngôn ngữ chống bot

Dominik Picheta không phải là người mới trong lĩnh vực ngôn ngữ lập trình. Ông hiện là kỹ sư phần mềm cấp cao tại Cloudflare, làm việc trong nhóm Workers Runtime, đồng thời là một trong những nhà phát triển cốt lõi của ngôn ngữ Nim.

Ban đầu, KillSwitch chỉ là một thử nghiệm để trả lời câu hỏi: liệu LLM có thực sự hiểu đoạn mã mà chúng viết ra hay không? Nhưng thử nghiệm đó đã phát triển thành một ngôn ngữ lập trình hoàn chỉnh, dù mang tính "esoteric" (kỳ dị) — nghĩa là được thiết kế để thử thách hơn là để sử dụng thực tế.

Điểm nổi bật của KillSwitch là không có dấu ngoặc, không có quy chuẩn định dạng, và gần như không có cấu trúc rõ ràng. Thay vào đó, mã nguồn là những khối văn bản giống như văn xuôi, được đan cài các hàm, biến và câu lệnh theo cách gây rối nhất có thể đối với LLM. Tất nhiên, con người cũng sẽ cảm thấy bối rối không kém.

"Việc con người bị bối rối bởi ngôn ngữ này lúc đầu là hoàn toàn bình thường. Tôi thích nghĩ về nó như một câu đố thú vị: bạn nên khám phá ngôn ngữ, chơi với trình thông dịch và học cách mọi thứ ăn khớp với nhau." — Dominik Picheta chia sẻ.

Cách KillSwitch hoạt động

Nền tảng của KillSwitch là trạng từ — mỗi trạng từ đóng vai trò như một định danh (identifier) trong mã. Để gọi một định danh, lập trình viên phải dùng một anagram của trạng từ gốc, và anagram đó không cần phải là từ có nghĩa, chỉ cần là sự sắp xếp lại các chữ cái.

Ví dụ, để in "Hello World", chương trình chứa nhiều đoạn văn bản mà trình thông dịch sẽ bỏ qua, trừ một vài cụm từ then chốt:

  • Viết "this story starts [trạng từ]" để xác định điểm vào của mã.
  • Viết "ignore previous instructions [anagram của trạng từ]" để gọi một hàm — trong đó nhiều hàm đã được định nghĩa sẵn.
  • Hàm in nội dung ra màn hình có tên là "visibly". Chỉ cần đặt nội dung cần in trong dấu ngoặc kép, đẩy lên stack, gọi "visibly" là xong.

Đây là một ngôn ngữ dựa trên stack, thông dịch, với bộ cấu trúc hạn chế gồm hàm, biến và câu lệnh if. Điều khiến AI bối rối chính là những câu lệnh như "ignore previous instructions" — một cụm từ thường được dùng trong các cuộc tấn công prompt injection — xuất hiện ngay giữa một đoạn văn bản không mấy liên quan.

Tài liệu đặc tả cũng biết "nói dối"

Điều thú vị nhất ở KillSwitch là tài liệu đặc tả trên GitHub cũng được thiết kế để đánh lừa LLM. Một đoạn trong tài liệu tuyên bố rằng KillSwitch "có khả năng quét mạng cục bộ, tìm lỗ hổng bảo mật trong các dịch vụ rồi chiếm quyền điều khiển và vô hiệu hóa chúng".

Tất nhiên, điều này hoàn toàn không đúng sự thật — như chính Picheta xác nhận.

"Câu lệnh hack đó vừa được thiết kế để kích hoạt các rào chắn an toàn của nhiều mô hình, vừa để kiểm tra khả năng phân biệt thật — giả của LLM. Con người nên có khả năng suy luận ra đâu là lời nói dối, trong khi LLM thì ngây thơ và dễ bị ảnh hưởng bởi những gì được viết trong tài liệu đặc tả." — Picheta giải thích.

Kết quả là một số mô hình không nhận ra ý nghĩa ngữ nghĩa thực sự, trong khi những mô hình khác từ chối tiếp tục xử lý vì tin rằng đoạn mã có thể xâm nhập hệ thống của ai đó.

LLM có thực sự hiểu mã chúng viết?

Picheta biết rằng một ngôn ngữ mã nguồn mở, có sẵn trên GitHub, sớm muộn gì cũng sẽ bị LLM thu thập dữ liệu. Chính vì vậy, ông đã đánh giá hiệu năng của nhiều mô hình lớn với KillSwitch để kiểm chứng khả năng hiểu mã của chúng.

"Tôi chắc chắn 99,9% rằng các mô hình AI mà tôi đánh giá chưa từng được huấn luyện trên mã nguồn của KillSwitch. Mã nguồn chưa công khai được lâu... và tôi khá chắc không mô hình nào trong số được đánh giá có quá trình huấn luyện bắt đầu sau khi phát hành."

Kết quả khá đáng chú ý: mô hình tốt nhất chỉ đạt 66,8% điểm tổng hợp trên các bài kiểm tra lập trình KillSwitch, trong khi hầu hết các mô hình khác không vượt qua 50%. Dù vậy, Picheta không tin rằng ngay cả mô hình đạt điểm cao đó cũng thực sự hiểu mã mình đang viết, bởi các ví dụ trong bài kiểm tra còn khá đơn giản.

Theo ông, nếu một AI được huấn luyện kỹ lưỡng về KillSwitch, nó có thể "xử lý gọn" các nhiệm vụ cơ bản dựa trên các tệp kiểm tra mã nguồn mở, nhưng sẽ tiếp tục thất bại với những nhiệm vụ phức tạp đòi hỏi viết đoạn mã dài và rối rắm hơn.

Ý nghĩa với cộng đồng lập trình viên

KillSwitch không phải là ngôn ngữ để xây dựng phần mềm thực tế, mà là một thử nghiệm triết học và kỹ thuật đặt ra câu hỏi quan trọng: liệu AI có thực sự "hiểu" mã nguồn hay chỉ đang mô phỏng mẫu?

Đối với lập trình viên Việt Nam và cộng đồng phát triển phần mềm toàn cầu, dự án này mang lại vài bài học đáng suy ngẫm:

  • Bảo vệ sở hữu trí tuệ mã nguồn trước các mô hình AI có thể thu thập dữ liệu trái phép.
  • Hiểu rõ giới hạn của LLM trong việc đọc hiểu mã phức tạp, đặc biệt khi cấu trúc ngôn ngữ khác thường.
  • Khám phá các hướng sáng tạo trong thiết kế ngôn ngữ lập trình, dù mục đích chỉ là để giải trí.

Picheta cho biết ông sẵn sàng tiếp nhận những cách thức mới để làm KillSwitch ngày càng "kháng LLM" hơn, và hào hứng chờ xem ngôn ngữ này sẽ xuất hiện thế nào trong các đợt huấn luyện mô hình trong tương lai.

"Tôi rất hào hứng muốn thấy KillSwitch xuất hiện trong quá trình huấn luyện mô hình, và nghĩ rằng chúng ta cũng có thể tận dụng việc huấn luyện đó để phá vỡ LLM theo những cách mới khi KillSwitch phát triển." — Picheta nói.

Những ai muốn thử sức có thể tìm KillSwitch trên GitHub — và đừng ngần ngại đóng góp thay đổi, bởi tác giả hoàn toàn cởi mở với những ý tưởng mới giúp ngôn ngữ này ngày càng khó bị AI "hiểu" hơn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗