AI Có Thể Viết Mã Như Con Người—Cả Nhược Điểm Nữa

Một số nhà phát triển phần mềm hiện nay đang để trí tuệ nhân tạo giúp viết mã của họ. Họ đang nhận thấy rằng AI cũng như con người, đầy những lỗi sai.
Tháng Sáu năm ngoái, GitHub, một công ty con của Microsoft cung cấp các công cụ để lưu trữ và hợp tác trên mã nguồn, phát hành phiên bản beta của một chương trình sử dụng trí tuệ nhân tạo để hỗ trợ các lập trình viên. Bắt đầu gõ một lệnh, truy vấn cơ sở dữ liệu, hoặc một yêu cầu đến một API, và chương trình, được gọi là Copilot, sẽ đoán ý định của bạn và viết phần còn lại.
Alex Naka, một nhà khoa học dữ liệu tại một công ty sinh học đã đăng ký để thử nghiệm Copilot, nói rằng chương trình có thể rất hữu ích và đã thay đổi cách anh ta làm việc. “Nó giúp tôi tiết kiệm thời gian không cần phải nhảy qua trình duyệt để tra cứu tài liệu API hoặc ví dụ trên Stack Overflow,” anh ta nói. “Cảm giác như công việc của tôi đã chuyển từ việc tạo ra mã thành việc phân biệt nó.”
Nhưng Naka đã phát hiện ra rằng lỗi có thể tràn vào mã của anh ta theo cách khác nhau. “Đôi khi tôi đã bỏ lỡ một loại lỗi tinh tế nào đó khi tôi chấp nhận một trong những đề xuất của nó,” anh ta nói. “Và việc theo dõi điều này có thể rất khó khăn, có lẽ vì nó tạo ra những lỗi có hương vị khác biệt so với những lỗi mà tôi thường mắc phải.”
Rủi ro của việc AI tạo ra mã lỗi có thể cao đáng kể. Các nhà nghiên cứu tại NYU gần đây đã phân tích mã được tạo ra bởi Copilot và phát hiện rằng, đối với một số nhiệm vụ nơi an ninh quan trọng, mã chứa các lỗi an ninh khoảng 40% thời gian.
Con số “cao hơn một chút so với những gì tôi mong đợi,” nói Brendan Dolan-Gavitt, một giáo sư tại NYU tham gia vào phân tích. “Nhưng cách mà Copilot được đào tạo thực sự không phải để viết mã tốt—nó chỉ là để tạo ra loại văn bản sẽ theo một đề xuất cụ thể.”
Mặc dù có nhược điểm như vậy, Copilot và các công cụ tương tự được động viên bởi trí tuệ nhân tạo có thể dự báo một biến đổi lớn trong cách nhà phát triển phần mềm viết mã. Có sự quan tâm ngày càng tăng về việc sử dụng AI để giúp tự động hóa công việc nhàm chán hơn. Nhưng Copilot cũng làm nổi bật một số rủi ro của các kỹ thuật AI hiện nay.
Trong khi phân tích mã nguồn cho một plugin Copilot, Dolan-Gavitt phát hiện rằng nó bao gồm một danh sách các cụm từ bị hạn chế. Có vẻ như chúng được giới thiệu để ngăn hệ thống từ việc phát ra những thông điệp xúc phạm hoặc sao chép mã nguồn nổi tiếng của người khác.
Oege de Moor, phó chủ tịch nghiên cứu tại GitHub và là một trong những nhà phát triển của Copilot, nói rằng an ninh đã là một vấn đề từ khi bắt đầu. Anh ta nói rằng tỷ lệ mã lỗi được trích dẫn bởi các nhà nghiên cứu NYU chỉ có ý nghĩa đối với một phần nhỏ mã nguồn nơi lỗ hổng an ninh xảy ra nhiều hơn.
De Moor là người phát minh ra CodeQL, một công cụ được các nhà nghiên cứu NYU sử dụng để tự động xác định lỗi trong mã nguồn. Anh ta nói rằng GitHub khuyến nghị nhà phát triển sử dụng Copilot cùng với CodeQL để đảm bảo công việc của họ là an toàn.
Chương trình GitHub được xây dựng trên mô hình trí tuệ nhân tạo do OpenAI phát triển, một công ty trí tuệ nhân tạo nổi tiếng đang thực hiện công việc tiên tiến trong học máy. Mô hình đó, được gọi là Codex, bao gồm một mạng nơ-ron nhân tạo lớn được đào tạo để dự đoán các ký tự tiếp theo trong cả văn bản và mã máy tính. Thuật toán đã học từ hàng tỷ dòng mã được lưu trữ trên GitHub—không phải tất cả đều hoàn hảo—để học cách viết mã.
OpenAI đã xây dựng một công cụ mã hóa trí tuệ nhân tạo riêng trên nền Codex có thể thực hiện những mánh mã vô cùng đặc sắc. Nó có thể chuyển đổi một hướng dẫn đã gõ, chẳng hạn như “Tạo một mảng của các biến ngẫu nhiên từ 1 đến 100 và sau đó trả về giá trị lớn nhất của chúng,” thành mã hoạt động trong một số ngôn ngữ lập trình.
Một phiên bản khác của chương trình OpenAI, có tên GPT-3, có thể tạo ra văn bản mạch lạc về một chủ đề nhất định, nhưng cũng có thể tái tạo ngôn ngữ phân biệt hoặc có độ chệch hướng học từ những góc tối của internet.
Copilot và Codex đã khiến một số nhà phát triển tự hỏi liệu trí tuệ nhân tạo có thể tự động hóa công việc của họ. Trong thực tế, như trải nghiệm của Naka cho thấy, những nhà phát triển cần có kỹ năng đáng kể để sử dụng chương trình, vì họ thường phải kiểm tra hoặc điều chỉnh những gợi ý của nó.
Hammond Pearce, một nghiên cứu viên sau tiến sĩ tại NYU tham gia vào việc phân tích mã nguồn Copilot, cho biết chương trình đôi khi tạo ra mã nguồn gặp vấn đề vì nó không hiểu đầy đủ về điều mà một đoạn mã đang cố gắng thực hiện. “Những lỗ hổng thường do thiếu bối cảnh mà một nhà phát triển cần biết,” anh ấy nói.
Một số nhà phát triển lo lắng rằng trí tuệ nhân tạo đã bắt đầu học những thói quen xấu. “Chúng ta đã làm việc chăm chỉ như một ngành công nghiệp để tránh việc sao chép-gán giải pháp, và bây giờ Copilot đã tạo ra một phiên bản siêu nạp của nó,” nói Maxim Khailo, một nhà phát triển phần mềm đã thử nghiệm việc sử dụng trí tuệ nhân tạo để tạo mã nhưng chưa thử Copilot.
Khailo nói rằng có thể có khả năng cho hacker can thiệp vào một chương trình như Copilot. “Nếu tôi là một người chơi xấu, điều tôi sẽ làm là tạo ra các dự án mã nguồn có lỗ hổng trên GitHub, tăng độ phổ biến của chúng một cách nhân tạo bằng cách mua sao GitHub trên thị trường đen, và hy vọng rằng nó sẽ trở thành một phần của bộ dữ liệu đào tạo cho vòng đào tạo tiếp theo.”
Cả GitHub và OpenAI đều cho biết, ngược lại, các công cụ viết mã trí tuệ nhân tạo của họ chỉ có thể trở nên ít lỗi hơn. OpenAI nói rằng họ kiểm tra dự án và mã nguồn cả bằng tay và bằng cách sử dụng các công cụ tự động.
De Moor tại GitHub nói rằng các cập nhật gần đây cho Copilot có thể đã giảm tần suất của các lỗ hổng bảo mật. Nhưng ông thêm rằng đội ngũ của ông đang nghiên cứu các cách khác nhau để cải thiện đầu ra của Copilot. Một cách là loại bỏ các ví dụ xấu mà mô hình trí tuệ nhân tạo cơ bản học từ đó. Một cách khác có thể là sử dụng học củng cố, một kỹ thuật trí tuệ nhân tạo đã tạo ra một số kết quả ấn tượng trong trò chơi và các lĩnh vực khác, để tự động phát hiện đầu ra xấu, bao gồm cả các ví dụ chưa từng được thấy trước đây. “Các cải tiến khổng lồ đang diễn ra,” ông nói. “Đến mức khó tưởng tượng được nó sẽ trông như thế nào trong một năm.”
More Great MYTOUR Stories
- 📩 Tin tức mới nhất về công nghệ, khoa học và nhiều hơn nữa: Đăng ký nhận bản tin của chúng tôi!
- Looks that quill: The dark side of hedgehog Instagram
- Climate change is making it harder to flee disasters
- I'm a Lyft driver. Passengers act like I'm part of the app
- Covid has created a virtual Renaissance for life drawing
- The US AI industry risks becoming winner-take-most
- 👁️ Explore AI like never before with our new database
- 🎮 MYTOUR Games: Get the latest tips, reviews, and more
- 🎧 Things not sounding right? Check out our favorite wireless headphones, soundbars, and Bluetooth speakers
