GitHub ra mắt hệ thống máy học Copilot tạo mã

GitHub thông báo đã hoàn thành thử nghiệm trợ lý thông minh GitHub Copilot, có khả năng tạo ra các cấu trúc tiêu chuẩn khi viết mã. Hệ thống này được phát triển cùng với dự án OpenAI và sử dụng nền tảng máy học OpenAI Codex, được đào tạo trên một lượng lớn mã nguồn được lưu trữ trong kho GitHub công khai. Dịch vụ này miễn phí dành cho người duy trì các dự án nguồn mở phổ biến và sinh viên. Đối với các loại người dùng khác, quyền truy cập vào GitHub Copilot được trả phí ($10 mỗi tháng hoặc $100 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.

Việc tạo mã được hỗ trợ trong các ngôn ngữ lập trình Python, JavaScript, TypeScript, Ruby, Go, C# và C++ bằng nhiều khung khác nhau. Các mô-đun có sẵn để tích hợp GitHub Copilot với các môi trường phát triển Neovim, JetBrains IDE, Visual Studio và Visual Studio Code. Đánh giá dựa trên dữ liệu đo từ xa được thu thập trong quá trình thử nghiệm, dịch vụ cho phép bạn tạo mã có chất lượng khá cao - ví dụ: 26% đề xuất được đề xuất trong GitHub Copilot đã được các nhà phát triển chấp nhận.

GitHub Copilot khác với các hệ thống hoàn thiện mã truyền thống ở khả năng tạo ra các khối mã khá phức tạp, cho đến các hàm tạo sẵn được tổng hợp có tính đến bối cảnh hiện tại. GitHub Copilot thích ứng với cách nhà phát triển viết mã và tính đến các API cũng như khung được sử dụng trong chương trình. Ví dụ: nếu có một ví dụ về cấu trúc JSON trong một nhận xét, 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ã tạo sẵn và khi viết danh sách thường lệ các mô tả lặp lại, nó sẽ tạo ra phần còn lại các vị trí.

GitHub ra mắt hệ thống máy học Copilot tạo mã

Khả năng tạo các khối mã làm sẵn của GitHub Copilot đã dẫn đến tranh cãi liên quan đến 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ừ kho dự án nguồn mở 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ã của tác phẩm phái sinh phải được phân phối theo giấy phép tương thích. Bằng cách chèn mã hiện có theo đề xuất của Copilot, các nhà phát triển có thể vô tình vi phạm giấy phép của dự án mà mã được mượn.

Vẫn chưa rõ liệu công việc do hệ thống máy học tạo ra có thể được coi là phái sinh hay không. Các câu hỏi cũng đặt ra là liệu một mô hình học máy có tuân theo bản quyền hay không và nếu có thì ai sở hữu các quyền này và chúng liên quan như thế nào đến các quyền đối với mã mà mô hình 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 sẽ tái tạo cấu trúc của mã thay vì sao chép chính mã đó. Theo một nghiên cứu của GitHub, chỉ 1% thời gian đề xuất của Copilot có thể 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 tình huống, sự lặp lại xảy ra khi Copilot không thể xác định chính xác bối cảnh hoặc đưa ra các giải pháp tiêu chuẩn cho một vấn đề.

Để ngăn chặn việc 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 giao cắt với các dự án hiện có. Khi thiết lập, nhà phát triển có thể tùy ý kích hoạt hoặc tắt bộ lọc này. Trong số các vấn đề khác, có 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 để huấn luyện mô hình.

Nguồn: opennet.ru

Thêm một lời nhận xét