GitHub thông báo đã hoàn tất thử nghiệm trợ lý thông minh GitHub Copilot, có khả năng tạo ra các bản dựng chung trong khi viết mã. Hệ thống này được phát triển với sự hợp tác của dự án OpenAI và sử dụng nền tảng học máy OpenAI Codex, được huấn luyện trên nhiều mã nguồn khác nhau được lưu trữ trong các kho lưu trữ công khai của GitHub.
Công cụ tạo mã hỗ trợ Python, JavaScript, TypeScript, Ruby, Go, C#, và C++ sử dụng nhiều framework khác nhau. Có sẵn các module để tích hợp GitHub Copilot với Neovim, JetBrains IDE, Visual Studio và Visual Studio Code.
Dựa trên dữ liệu thu thập được trong quá trình thử nghiệm, dịch vụ này cho phép tạo ra mã nguồn có chất lượng khá cao ; ví dụ, các nhà phát triển đã chấp nhận 26% các khuyến nghị được đề xuất trong GitHub Copilot mà không chỉnh sửa gì thêm.
GitHub Copilot khác biệt so với các hệ thống tự động hoàn thành mã truyền thống ở khả năng tạo ra các khối mã khá phức tạp, thậm chí cả các hàm hoàn chỉnh sẵn sàng sử dụng, có tính đến ngữ cảnh hiện tại.
GitHub Copilot thích ứng với cách lập trình viên viết mã và tính đến các API và framework được sử dụng trong chương trình. Ví dụ, nếu có một cấu trúc JSON mẫu trong phần bình luận, khi bạn bắt đầu viết một hàm để phân tích cấu trúc này, GitHub Copilot sẽ cung cấp mã sẵn sàng sử dụng, và bằng cách viết các phép liệt kê thông thường các mô tả lặp lại, nó sẽ hoàn thiện phần còn lại.
Trong một bài đăng trên blog, Giám đốc điều hành GitHub, Thomas Dohmke, cho biết GitHub Copilot được thiết kế như một phần mở rộng của trình soạn thảo để đảm bảo không có gì cản trở công việc của các nhà phát triển.
“GitHub Copilot chắt lọc kiến thức chung của các nhà phát triển trên khắp thế giới thành một tiện ích mở rộng trình soạn thảo đề xuất mã trong thời gian thực, để giúp bạn tập trung vào điều quan trọng nhất: xây dựng phần mềm tuyệt vời,” ông giải thích.
Theo Dohmke, khoảng 1,2 triệu nhà phát triển đã thử Copilot trong giai đoạn xem trước của nó. Rõ ràng, nó cũng khá hữu ích, vì Dohmke tuyên bố rằng anh ấy đã viết tới 40% mã dành cho nhà phát triển được viết bằng các ngôn ngữ phổ biến như Python.
Dohmke nói: “Giống như sự gia tăng của trình biên dịch và mã nguồn mở, chúng tôi tin rằng mã hóa do AI hỗ trợ sẽ thay đổi cơ bản bản chất của phát triển phần mềm, mang đến cho các nhà phát triển một công cụ mới để viết mã dễ dàng và nhanh chóng hơn.
Khả năng tạo các khối mã dựng sẵn của GitHub Copilot đã gây ra tranh cãi về khả năng vi phạm giấy phép copyleft. Khi hình thành mô hình học máy, các văn bản nguồn thực từ các kho dự án mở được lưu trữ trên GitHub đã được sử dụng.
Nhiều dự án trong số này được cung cấp theo giấy phép copyleft, chẳng hạn như GPL, yêu cầu mã trong các tác phẩm phái sinh phải được cung cấp theo giấy phép tương thích. Nếu Copilot dán mã hiện có, các nhà phát triển có thể vô tình vi phạm giấy phép của dự án mà từ đó mã được mượn.
Vẫn chưa rõ liệu tác phẩm được tạo ra bởi hệ thống học máy có thể được coi là tác phẩm phái sinh hay không . Cũng nảy sinh câu hỏi liệu mô hình học máy có thuộc phạm vi bảo hộ bản quyền hay không, và nếu có, ai sở hữu các quyền này và chúng liên quan như thế nào đến quyền đối với mã nguồn mà mô hình được xây dựng dựa trên đó.
Một mặt, các khối được tạo có thể lặp lại các đoạn văn bản từ các dự án hiện có, nhưng mặt khác, hệ thống tạo lại cấu trúc mã và không sao chép chính mã.
Theo một nghiên cứu của GitHub, chỉ 1% các đề xuất của Copilot bao gồm các đoạn mã từ các dự án hiện có dài hơn 150 ký tự. Trong hầu hết các trường hợp, sự lặp lại này xảy ra khi Copilot không xác định đúng ngữ cảnh hoặc cung cấp các giải pháp chung chung cho một vấn đề.
Để tránh thay thế mã hiện có, một bộ lọc đặc biệt đã được thêm vào Copilot không cho phép chồng chéo với các dự án hiện có. Khi cấu hình, nhà phát triển có thể bật hoặc tắt bộ lọc này theo ý mình. Trong số các vấn đề khác, người ta lưu ý khả năng mã tổng hợp có thể lặp lại các lỗi và lỗ hổng có trong mã được sử dụng để đào tạo mô hình.
Cuối cùng, điều đáng nói là dịch vụ này miễn phí cho những người bảo trì các dự án nguồn mở phổ biến và cho sinh viên. Trong khi đối với các nhóm người dùng khác, quyền truy cập vào GitHub Copilot được trả phí (10 đô la mỗi tháng hoặc 100 đô la mỗi năm), nhưng quyền truy cập dùng thử miễn phí được cung cấp trong 60 ngày.
Cuối cùng, nếu bạn muốn tìm hiểu thêm, bạn có thể xem chi tiết tại liên kết sau.