Ảnh bài 65.jpg
AI tự động hoá mọi thứ và liệu có thể thay thế lập trình viên. Ảnh: Midjourney

Một nhóm các nhà nghiên cứu vừa công bố bản đồ tổng thể về những thách thức mà trí tuệ nhân tạo (AI) đang đối mặt trong lĩnh vực phát triển phần mềm, đồng thời đề xuất một lộ trình nghiên cứu nhằm thúc đẩy lĩnh vực này tiến xa hơn.

Hãy hình dung một tương lai nơi AI âm thầm gánh vác những công việc nhàm chán của ngành phát triển phần mềm: tái cấu trúc các đoạn mã rối rắm, chuyển đổi hệ thống kế thừa, truy tìm lỗi điều kiện đua, để các kỹ sư phần mềm con người có thể toàn tâm cho kiến trúc hệ thống, thiết kế và các vấn đề sáng tạo mà máy móc chưa thể giải quyết. Những tiến bộ gần đây trong AI dường như đã đưa viễn cảnh đó đến rất gần. 

Tuy nhiên, một nghiên cứu mới của các nhà khoa học thuộc Phòng Thí nghiệm Khoa học Máy tính và Trí tuệ Nhân tạo (CSAIL) - MIT cùng các viện nghiên cứu đối tác đã chỉ ra rằng: để hiện thực hóa tương lai ấy, trước tiên cần nhìn thẳng vào những thách thức rất thực tại thời điểm hiện tại.

“Hiện nay, nhiều người nói rằng lập trình viên không còn cần thiết vì đã có AI tự động hóa mọi thứ”, GS. Armando Solar-Lezama, Giảng viên ngành kỹ thuật điện và khoa học máy tính tại MIT, nhà nghiên cứu cấp cao tại CSAIL, đồng thời là tác giả chính của nghiên cứu, chia sẻ. “Trên thực tế, chúng ta đã đạt được những bước tiến rất đáng kể. Các công cụ hiện tại mạnh mẽ hơn rất nhiều so với trước đây. Nhưng để đạt được trọn vẹn tiềm năng của tự động hóa, con đường phía trước vẫn còn dài”.

GS. Armando Solar-Lezama cho rằng quan niệm phổ biến hiện nay đang đơn giản hóa kỹ thuật phần mềm thành một công việc giống như bài tập lập trình sinh viên: nhận đề bài cho một hàm nhỏ và viết mã để xử lý, hoặc làm bài kiểu LeetCode. Trong khi đó, thực tiễn lại phức tạp hơn nhiều: từ những lần tái cấu trúc mã nhằm tối ưu thiết kế, cho đến những cuộc di cư quy mô lớn với hàng triệu dòng mã chuyển từ COBOL sang Java làm thay đổi cả nền tảng công nghệ của doanh nghiệp. 

Đo lường và giao tiếp vẫn là bài toán nan giải

Tối ưu mã ở quy mô công nghiệp - như tinh chỉnh lõi GPU hay các cải tiến đa tầng trong công cụ Chrome V8 - hiện vẫn khó đánh giá. Các tiêu chí đánh giá phổ biến hiện nay chủ yếu áp dụng cho các vấn đề nhỏ, mang tính đóng gói. Thước đo thực tế nhất hiện tại, SWE-Bench, đơn thuần yêu cầu mô hình AI sửa một lỗi trên GitHub - điều này chỉ tương đương với bài tập lập trình cấp thấp, chạm đến vài trăm dòng mã, tiềm ẩn nguy cơ rò rỉ dữ liệu, và bỏ qua hàng loạt bối cảnh thực tế khác như tái cấu trúc do AI hỗ trợ, lập trình đôi người - máy, hay viết lại hệ thống có hiệu suất cao với hàng triệu dòng mã. Cho đến khi các bộ tiêu chuẩn đánh giá được mở rộng để bao trùm những kịch bản có rủi ro cao hơn, việc đo lường tiến bộ - và từ đó thúc đẩy nó - sẽ còn là một thách thức bỏ ngỏ.

Bên cạnh đó, giao tiếp giữa người và máy cũng là rào cản lớn. Nghiên cứu sinh Alex Gu - tác giả chính cho biết, hiện tại, việc tương tác với AI vẫn giống như “một sợi dây liên lạc mỏng manh”. Khi yêu cầu AI sinh mã, anh thường nhận lại những tập tin lớn, không cấu trúc rõ ràng, cùng một vài bộ kiểm thử đơn giản và sơ sài. Khoảng cách này cũng thể hiện ở việc AI không thể tận dụng hiệu quả các công cụ phần mềm vốn quen thuộc với con người như trình gỡ lỗi (debugger), công cụ phân tích tĩnh (static analyzer)... 

Lời kêu gọi hành động từ cộng đồng

Nhóm tác giả cho rằng, không có giải pháp đũa thần cho những vấn đề trên, và kêu gọi các nỗ lực ở quy mô cộng đồng: xây dựng dữ liệu phản ánh quá trình phát triển thực tế của lập trình viên (mã nào giữ lại, mã nào loại bỏ, cách mã được tái cấu trúc qua thời gian…), các bộ công cụ đánh giá chung về chất lượng refactor, độ bền của bản vá lỗi, độ chính xác trong quá trình chuyển đổi hệ thống; và xây dựng công cụ minh bạch cho phép AI biểu đạt sự không chắc chắn và mời gọi sự can thiệp của con người.

Nghiên cứu sinh Alex Gu coi đây là “lời kêu gọi hành động” cho các cộng đồng mã nguồn mở quy mô lớn mà không một phòng thí nghiệm đơn lẻ nào có thể thực hiện được. Solar-Lezama hình dung sự tiến bộ đến từ những bước nhỏ, cộng hưởng lẫn nhau - “những kết quả nghiên cứu lần lượt giải quyết từng phần của vấn đề” - từ đó chuyển hóa AI từ “công cụ gợi ý mã” thành đối tác kỹ thuật đích thực.

“Tại sao điều này lại quan trọng? Phần mềm hiện đang là nền tảng của tài chính, giao thông, y tế và mọi hoạt động thường nhật. Nhưng nỗ lực của con người để xây dựng và duy trì chúng một cách an toàn đang trở thành điểm nghẽn”, Gu chia sẻ. “Một AI có thể xử lý phần việc nặng nhọc mà không tạo ra lỗi ẩn sẽ giúp lập trình viên tập trung vào sáng tạo, chiến lược và đạo đức. Nhưng để đạt được điều đó, chúng ta phải hiểu rằng: việc hoàn tất một đoạn mã chỉ là phần dễ - phần khó nằm ở tất cả những gì còn lại”.

(Lược dịch theo MIT News)

Nguồn: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html