Công cụ phát hiện mã AI có độ chính xác 95% nhưng có thể bị đánh lừa dễ dàng bằng những thủ thuật đơn giản

Nhóm Cộng đồng BigGo
Công cụ phát hiện mã AI có độ chính xác 95% nhưng có thể bị đánh lừa dễ dàng bằng những thủ thuật đơn giản

Span đã ra mắt một công cụ phát hiện mã AI tuyên bố có độ chính xác 95% trong việc nhận diện mã được tạo bởi máy. Công cụ này sử dụng mô hình học máy được huấn luyện trên hàng triệu mẫu mã để giúp các nhóm kỹ thuật hiểu có bao nhiều mã do AI tạo ra tồn tại trong dự án của họ. Tuy nhiên, việc kiểm tra từ cộng đồng đã tiết lộ những điểm yếu đáng kể làm dấy lên câu hỏi về hiệu quả thực tế của nó.

Chỉ số hiệu suất:

  • Độ chính xác tổng thể: 95%
  • Tỷ lệ thu hồi: 91.5%
  • Điểm F1: 93.3%
  • Dữ liệu huấn luyện: Hàng triệu mẫu mã nguồn được viết bởi AI và con người

Những thủ thuật nhắc lệnh đơn giản đánh lừa hệ thống

Khám phá nổi bật nhất đến từ việc kiểm tra của cộng đồng cho thấy công cụ phát hiện có thể bị thao túng dễ dàng như thế nào. Một người dùng đã chứng minh rằng bằng cách yêu cầu ChatGPT viết mã theo hai phong cách khác nhau - một cách sạch sẽ và chuyên nghiệp, cách khác lộn xộn như một sinh viên đại học - kết quả hoàn toàn khác biệt. Mã sạch được gắn cờ là 100% do AI tạo ra, trong khi phiên bản lộn xộn với định dạng kém và các bình luận bình thường được đánh giá là 0% do AI tạo ra.

Phát hiện này làm nổi bật một vấn đề cơ bản với phương pháp phát hiện. Mô hình dường như phụ thuộc rất nhiều vào các chỉ số chất lượng mã như định dạng phù hợp, bình luận toàn diện và cấu trúc sạch sẽ - những đặc điểm mà trớ trêu thay lại đại diện cho các thực hành lập trình tốt.

Nghịch lý mã sạch

Phương pháp phát hiện tạo ra một tình huống bất thường khi việc viết mã chất lượng cao thực sự có thể gây bất lợi cho các nhà phát triển. Các thành viên cộng đồng đã nêu lên mối lo ngại về việc liệu điều này có tạo ra động lực tiêu cực cho các thực hành lập trình thủ công hay không.

Điều đó có tạo ra động lực cho những người viết thủ công để viết mã tệ hơn, có cấu trúc kém, như bằng chứng rằng họ không sử dụng AI để tạo mã của mình không?

Nghịch lý này trở nên phức tạp hơn khi xem xét rằng các mô hình AI chủ yếu được huấn luyện trên mã do con người viết, nhưng công cụ phát hiện hiện tại lại coi một số tiêu chuẩn lập trình của con người quá hoàn hảo để có thể do con người tạo ra.

Hỗ trợ ngôn ngữ hạn chế và ràng buộc kỹ thuật

Hiện tại, công cụ phát hiện chỉ hỗ trợ Python , TypeScript và JavaScript , mặc dù công ty có kế hoạch bổ sung hỗ trợ cho Java , C# và Ruby . Công cụ hoạt động ở cấp độ khối thay vì phân tích từng dòng, và nó kiểm tra cả mã và bình luận cùng nhau, điều này có thể gắn cờ các nhà phát triển chỉ sử dụng AI cho tài liệu trong khi viết mã thủ công.

Công ty đã chia sẻ một số chỉ số hiệu suất ngoài con số độ chính xác chính, báo cáo tỷ lệ thu hồi 91,5% và điểm F1 là 93,3%. Tuy nhiên, các thành viên cộng đồng đã đặt câu hỏi về việc liệu những chỉ số này có đại diện đầy đủ cho hiệu suất thực tế hay không, đặc biệt là do tính dễ bị tổn thương đã được chứng minh đối với các kỹ thuật thao túng đơn giản.

Hỗ trợ ngôn ngữ hiện tại:

  • Python ✓
  • TypeScript ✓
  • JavaScript ✓
  • Java (đang lên kế hoạch)
  • C (đang lên kế hoạch)
  • Ruby (đang lên kế hoạch)

Ứng dụng thực tế bất chấp những hạn chế

Bất chấp những lo ngại này, công cụ dường như được thiết kế chủ yếu cho việc sử dụng tổ chức thay vì kiểm soát mã cá nhân. Các nhóm kỹ thuật có thể sử dụng nó để theo dõi xu hướng áp dụng AI, giám sát các mẫu chất lượng mã và hiểu tác động của các trợ lý lập trình AI đối với quy trình phát triển của họ.

Thách thức phát hiện phản ánh một xu hướng rộng lớn hơn trong phát triển AI khi ranh giới giữa nội dung do con người và máy tạo ra tiếp tục mờ nhạt. Khi các mô hình AI cải thiện và tạo ra đầu ra ngày càng giống con người, việc phát hiện trở nên khó khăn hơn về cơ bản - một hạn chế có thể là toán học thay vì chỉ kỹ thuật.

Tham khảo: Detect AI-generated code regardless of its source.