Microsoft đã phát triển một AI có thể tìm và sửa lỗi trong code | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Microsoft đã phát triển một AI có thể tìm và sửa lỗi trong code

Chia sẻ kiến thức 14/02/2022

Microsoft đã phát triển một chương trình AI có tên là BugLab có thể giúp bạn tìm và sửa lỗi trong code của mình. Dưới đây là cách nó hoạt động!

Viết code chỉ là bước đầu tiên trong việc tạo ra một thứ gì đó. Việc đọc qua code của bạn để tìm lỗi và sửa chúng 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 cần thiết.

Giá như có một cách để tự động sửa các lỗi ngoài lỗi syntax và thực sự hiểu được ý định đằng sau code 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 code bằng cách sử dụng học sâu (deep learning). Nhưng nó hoạt động như thế nào?

1. BugLab là gì và nó hoạt động như thế nào?

BugLab là một công cụ trí tuệ nhân tạo nhằm tìm kiếm và sửa các lỗi trong code. 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  chơi trò “trốn tìm” với các dòng code.

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 code 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ộ ẩn lỗi trở nên tốt hơn trong việc giấu các lỗi trong code và bộ phát hiện trở nên tốt hơn trong việc bắt và sửa chúng.

2. Hiểu code 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 code. Hiểu ý định của nhà phát triển là điều cần thiết để tìm ra những lỗi này.

Việc xử lý các đoạn code giống như xử lý các ngôn ngữ tự nhiên mang lại kết quả không tối ưu. Rất khó để AI hiểu mối quan hệ giữa các câu khác nhau khi chúng được chia thành các code thông báo riêng lẻ.

Thay vào đó, BugLab xem xét toàn bộ code. Bằng cách đó, mỗi cú pháp, biểu thức, ký hiệu và identifier đượ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ệ 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. Nó có thể thu thập thông tin chi tiết từ cấu trúc phong phú của biểu đồ code 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.

3. BugLab có hoạt động trên code trong đờ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 thể được xử lý.

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 “or” thay vì “and” 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ả mang lại rất tiềm năng, vì BugLab có thể phát hiện và tự động sửa khoảng 26% lỗi trong một đoạn code. 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, do họ thường phải xem qua code của họ để tìm những 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ừ nhỏ đến nghiêm trọng. Nhưng trong một vài năm nữa, BugLab rất có thể 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.

4. 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ế, thì sẽ càng 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à tích hợp ý định và sự hiểu biết của con người về code 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.

Dịch từ: https://www.makeuseof.com/microsoft-ai-that-find-fix-bugs-in-code/

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

>>> Xem thêm bài viết:

Đại học trực tuyến? Tại sao nên chọn học đại học trực tuyến thay vì đại học offline?

5 điều có thể bạn chưa biết về học lập trình trực tuyến FUNiX

Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn

FUNiX đào tạo lập trình trực tuyến cung cấp nhân sự tập đoàn FPT

5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX

Vân Nguyễn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại