Microsoft đã phát triển một AI có thể tìm và sửa lỗi trong mã
Viết mã chỉ là bước đầu tiên trong việc tạo ra một thứ gì đó. Việc duyệt qua mã của bạn để tìm lỗi và sửa chúng tốn nhiều thời gian và thường mất nhiều thời gian hơn dự kiến, nhưng dù sao cũng là một bước thiết yếu.
Giá như có một cách để tự động sửa các lỗi vượt quá lỗi cú pháp và thực sự hiểu được ý định đằng sau mã của bạn.
Gần đây, Microsoft đã phát triển một AI có khả năng phát hiện và sửa lỗi trong mã bằng cách sử dụng học sâu. Nhưng làm thế nào mà phần công nghệ mang tính cách mạng này lại tồn tại, và nó hoạt động như thế nào?
Mục Lục
BugLab là gì và nó hoạt động như thế nào?
BugLab là một triển khai Python trí tuệ nhân tạo nhằm tìm kiếm và sửa các lỗi trong mã. Nó được phát triển bởi Miltos Alamanis và Marc Brockschmidt, hai nhà nghiên cứu tại Microsoft Research. Họ đã tìm cách khắc phục tình trạng thiếu dữ liệu được gắn nhãn thường được sử dụng trong học máy bằng cách sử dụng phương pháp học tự giám sát và cho phép BugLab tự đào tạo thông qua trò chơi “trốn tìm” với các dòng mã.
BugLab đã được đào tạo bằng cách sử dụng hai mô hình máy tính; một cái ẩn lỗi trong các đoạn mã chính xác và một cái khác tìm kiếm và sửa lỗi. Cả hai mô hình liên tục học hỏi lẫn nhau. Theo thời gian, bộ chọn lỗi trở nên tốt hơn trong việc ẩn các lỗi trong mã và bộ phát hiện trở nên tốt hơn trong việc bắt và sửa chúng.
Hiểu mã với BugLab
Phần lớn các lỗi mà BugLab AI được đào tạo để phát hiện và sửa chữa không dẫn đến lỗi logic mà chỉ sai do bối cảnh chung của mã. Hiểu được ý định của nhà phát triển là điều cần thiết để tìm ra những lỗi này.
Xử lý các đoạn mã giống như xử lý các ngôn ngữ tự nhiên mang lại kết quả không tối ưu. AI vẫn khó hiểu mối quan hệ giữa các câu lệnh khác nhau khi chúng được chia thành các mã thông báo riêng lẻ.
Thay vào đó, BugLab xem xét toàn bộ mã. Bằng cách đó, mỗi cú pháp, biểu thức, ký hiệu và số nhận dạng được biểu diễn dưới dạng các điểm trong biểu đồ, cho phép AI “hiểu” mối liên hệ và mối quan hệ giữa các nút khác nhau.
Sau đó, kiến trúc mạng nơ-ron được sử dụng để đào tạo AI gỡ lỗi. Họ có thể thu thập thông tin chi tiết từ cấu trúc phong phú của đồ thị mã và cung cấp lý do cho mối quan hệ của mỗi nút với các nút khác.
BugLab có hoạt động trên mã đời thực không?
Điều quan trọng cần lưu ý là BugLab không phải là sự thay thế cho một lập trình viên lành nghề. Đó là bởi vì những lỗi phức tạp vẫn chưa nằm trong tầm tay.
Mục tiêu của Microsoft với AI là phát hiện và sửa các lỗi thường xảy ra như toán tử Boolean không chính xác, như việc sử dụng “hoặc” thay vì “và” và ngược lại, ngoài việc so sánh giá trị đảo ngược và sử dụng sai biến.
Theo Microsoft, kết quả đầy hứa hẹn, vì BugLab có thể phát hiện và tự động sửa khoảng 26% lỗi trong một đoạn mã. Tuy nhiên, một tỷ lệ phần trăm độ chính xác đáng kể vẫn bị mất do kết quả xác định sai và lỗi bị bỏ sót.
Các ứng dụng tương lai của Microsoft BugLab
Mục tiêu của Microsoft với BugLab là tiết kiệm thời gian cho các nhà phát triển phần mềm, họ thường phải xem qua mã của họ để tìm lỗi nhỏ nhất.
Trong khi mô hình gỡ lỗi AI vẫn đang trong quá trình hoàn thiện, nó có cơ hội tìm và sửa các lỗi từ bất tiện đến nghiêm trọng. Nhưng trong một vài năm nữa, bạn có thể mong đợi BugLab sẽ trở thành thứ cần có trong bộ công cụ của mọi nhà phát triển, ngay cả khi nó không hoàn hảo.
Sự phát triển theo cấp số nhân của AI tự học
Các mô hình AI như BugLab càng có nhiều thời gian để đào tạo trên các ví dụ thực tế, chúng sẽ mang lại kết quả tốt hơn và chính xác hơn.
Một trong những trở ngại thách thức nhất mà các nhà nghiên cứu của Microsoft phải đối mặt khi phát triển BugLab là sử dụng sự hiểu biết của con người về mã và ý định vào công cụ này. Nhưng bây giờ điều đó gần như đã được giải quyết, bạn có thể mong đợi BugLab sẽ trở nên tốt hơn theo thời gian.
Đọc tiếp
Giới thiệu về tác giả