Trong khuôn khổ sự kiện thường niên Intel Labs Day 2020 diễn ra rạng sáng nay 04/12, Intel đã gây nhiều chú ý khi bất ngờ tiết lộ thông tin về ControlFlag, một hệ thống lập trình máy sử dụng thuật toán trí tuệ nhân tạo (AI) để rà soát cũng như phát hiện lỗi có trong các dòng, đoạn code bất kể dài ngắn, với độ chính xác cao.
Theo chia sẻ của Intel, hệ thống này được đào tạo dựa trên hơn 1 tỷ dòng code không gắn nhãn có chứa vô số loại lỗi khác nhau, sử dụng một thuật toán học máy (machine learning) có tên gọi Anomaly Detection để phát hiện các mẫu code truyền thống và xác định bất kỳ điểm bất thường tiềm ẩn nào trong code có khả năng gây ra lỗi, bất kể đoạn code đó được viết bằng ngôn ngữ lập trình nào.
ControlFlag được giới thiệu như một phần của dự án Rapid Analysis of Developers mà Intel đang tích cực triển khai nhằm mục đích giúp các kỹ sư phần mềm và nhà nghiên cứu có thể viết code nhanh hơn cũng như chính xác hơn. Nó sử dụng phương pháp học không giám sát (unsupervised learning - một kỹ thuật trong AI) để tự đào tạo khả năng xác định mẫu và phát hiện sự bất thường trong mã. Intel lưu ý rằng ControlFlag hiểu các đoạn code theo cách riêng, thay vì hoạt động như một công cụ kiểm tra ngữ pháp/lỗi chính tả truyền thống, bởi môi trường ngôn ngữ lập trình về cơ bản rất khác biệt với môi trường ngôn ngữ giao tiếp thông thường.
Trong các thử nghiệm thực tế, ControlFlag có thể xác định lỗi tương đối triệt để trong các đoạn code “thành phẩm”. Trong một số trường hợp, công cụ này thậm chí còn xác định được điểm bất thường trong mã cURL đã bị bỏ xót khi các nhà phát triển tự mình rà soát code. Đặc biệt, Intel cũng đã bắt đầu ứng dụng ControlFlag trong hệ thống nội bộ, cụ thể là ở quá trình phát triển phần mềm và firmware.
Nói về công cụ mới này, kỹ sư Justin Gottschlich, giám đốc Intel Labs, tin rằng ControlFlag có thể giúp “giảm đáng kể thời gian cũng như chi phí cần thiết dành cho các quy trình đánh giá và gỡ lỗi code”. Điều này sẽ rất có lợi vì nhiều nghiên cứu đã chỉ ra rằng các nhà phát triển phần mềm thường phải dành khoảng 50% thời gian để tìm và gỡ lỗi trong code, đó là còn chưa kể đến những chi phí liên quan khiến việc triển khai một dự án phần mềm trở nên khó khăn hơn.