GitHub Copilot là gì? Công cụ tự tạo code bằng AI mới của Github

Các lập trình viên dành nhiều thời gian để viết code. Các công cụ như các phần mềm “gõ code” có thể giúp chúng ta bằng các đề xuất cú pháp, đoạn code, đề xuất gỡ lỗi,…Nhưng điều gì sẽ xảy ra nếu có một công cụ sử dụng trí thông minh nhân tạo (AI) để giúp chúng ta viết nhiều code hơn? Đó là tất cả những gì GitHub Copilot hướng đến.

Mình đã rất ngạc nhiên trước ý tưởng AI giúp lập trình viên viết code (hoặc thậm chí làm tất cả các công việc nặng nhọc), vì vậy mình đã truy cập trang GitHub Copilot.

Bỏ qua tất cả nội dung, mình cuộn xuống cuối web để đăng ký dùng thử GitHub Copilot.

GitHub Copilot là gì?

GitHub Copilot là một công cụ AI cung cấp cho bạn các đề xuất code dựa trên nhận xét và ngữ cảnh của file bạn đang chỉnh sửa.

Copilot là kết quả của sự hợp tác giữa GitHub và OpenAI, được hỗ trợ rất nhiều bởi Microsoft. Nó được cung cấp bởi một hệ thống AI hoàn toàn mới có tên là Codex, dựa trên mô hình GPT-3.

GPT-3 là viết tắt của thế hệ thứ ba của Generative Pre-training Transformer – một mô hình ngôn ngữ có khả năng tạo chuỗi văn bản từ những lời nhắc đơn giản. Codex có nguồn gốc từ mô hình này, mô hình này không chỉ có khả năng tạo văn bản mà còn có khả năng tạo code bằng một số ngôn ngữ phổ biến nhất.

Copilot đã được đào tạo với hàng tỷ dòng code từ các kho lưu trữ công khai trên GitHub, vì vậy code của bạn có thể đã cải thiện công cụ AI này theo một cách nào đó (chúng ta sẽ đi vào chi tiết sau).

Mặc dù nó hỗ trợ hầu hết các ngôn ngữ lập trình, nhưng nó hiện hoạt động tốt nhất với Python, JavaScript, TypeScript, Ruby và Go.

Cài đặt Github Copilot

Copilot cực kỳ dễ cài đặt. Trong trường hợp bạn có quyền truy cập vào bản xem trước kỹ thuật, chỉ cần tải xuống tiện ích mở rộng VS Code bằng cách tìm kiếm nó trên tab Extension và kích hoạt nó.

Sau đó, nó yêu cầu bạn đăng nhập vào tài khoản GitHub của mình, và xác nhận bạn có quyền truy cập vào bản xem trước hay không.

Hiện tại, cách duy nhất để sử dụng Copilot là trên VS Code và nó có thể vẫn giữ nguyên trong một thời gian theo trang của Copilot.

Hầu hết các ví dụ sau sẽ sử dụng Python, vì nó là một trong những ngôn ngữ mà công cụ AI này hoạt động tốt.

Cách Copilot hoạt động

GitHub Copilot tạo nhiều đề xuất cho bạn dựa trên ngữ cảnh của tệp bạn đang chỉnh sửa. Về cơ bản, nó cung cấp cho bạn các đề xuất dựa trên yêu cầu bạn đã đưa ra trong tệp và code bạn đã viết trước đó.

Khi Copilot có một đề xuất code, nó sẽ yêu cầu bạn sử dụng nó. Hãy kiểm tra Copilot bằng cách tạo một hàm tính giá trị trung bình của một tập dữ liệu. Điều duy nhất mình sẽ cung cấp cho Copilot là một mô tả và tên của hàm.

Như bạn có thể thấy, văn bản màu xám được Copilot đề xuất và mình có thể chấp nhận nó bằng cách nhấn Tab. Nhưng nếu mình không thích đề xuất đầu tiên, mình có thể xem qua các đề xuất khác bằng Ctrl + ] hoặc xem một loạt các giải pháp từ bảng điều khiển bên bằng Ctrl + Return.

Thật ấn tượng phải không? Nhưng hãy đặt ra một thử thách khác. Bây giờ, Copilot phải tạo một hàm main cho phép người dùng nhập các số được phân cách bằng dấu cách. Nó sẽ chia nhỏ các số này và chuyển danh sách kết quả cho hàm compute_average, trước khi in kết quả.

Cuối cùng, mình sẽ yêu cầu Copilot gọi hàm main bằng cách sử dụng __name__ == ‘__main__’.

Và đó là cách GitHub Copilot viết một hàm chỉ dựa trên các lệnh mà mình đã đưa cho nó. Tất nhiên, code không phải là hoàn hảo. Ví dụ, hàm compute_average có thể được rút gọn thành sum (dataset) / len (dataset), nhưng kết quả tổng thể là khá tốt.

Kiểm tra Copilot với các thử thách đơn giản

Hãy bắt đầu với hàm mà mọi nhà phát triển phải biết: FizzBuzz. Mình sẽ viết câu lệnh vấn đề, đặt tên cho hàm và để Copilot thực hiện công việc.

Ví khác về hàm tính năm nhuận.

Hoặc một công cụ kiểm tra palindrome đơn giản.

Một điều thú vị khác về Copilot là nó cũng có thể cung cấp các đề xuất trong các comment và docstrings. Trong ví dụ trên, nó đã hoàn thành hàm palindrome.

Cuối cùng, là một trình tạo mật khẩu đơn giản. Mình đã cung cấp một mô tả dài và các mô-đun mình muốn sử dụng.

Copilot rất giỏi trong việc đề xuất các giải pháp đơn giản, nhỏ gọn từ các yêu cầu của chúng ta.

Bây giờ, hãy kiểm tra cách thức mà công cụ này hoạt động trong các thử thách phức tạp hơn.

Sử dụng Copilot cho các thử thách phức tạp

Đầu tiên, hãy sử dụng Copilot để giải quyết các vấn đề thuật toán phổ biến. Ví dụ: tìm kiếm nhị phân lặp đi lặp lại.

Nếu bạn không biết code thì cũng đừng lo. Đây là một trong những nhược điểm của việc sử dụng loại công cụ này. Bạn có thể triển khai code do Copilot cung cấp mà không thực sự hiểu ý nghĩa của nó.

Chúng ta sẽ thấy nhiều nhược điểm hơn sau này, nhưng bạn nên tính đến điều này trong trường hợp bạn có quyền truy cập vào bản xem trước.

Ngoài ra, giải pháp trên rất tuyệt vời (có thể được trích xuất từ ​​kho lưu trữ DSA GitHub). Đó là code có thể đọc được mà chỉ cần phân tích một chút.

Nhưng không phải lúc nào bạn cũng có thể dựa vào các đề xuất của Copilot. Thông thường, bạn sẽ cần xem lại các đề xuất một vài lần trước khi tích hợp chúng vào code của mình.

Kết luận

Thật ấn tượng khi thấy một công cụ do AI hỗ trợ tạo code. Ý định của GitHub không phải là thay thế các lập trình viên mà là để giúp họ nâng cao năng suất của mình trong khi viết code, đặc biệt là với các tác vụ lặp đi lặp lại, chẳng hạn như viết docstrings trong các hàm hoặc class.

Sau khi sử dụng Copilot một thời gian, mình nhận thấy một số vấn đề, nhưng nhìn chung nó cung cấp các gợi ý code tốt (chưa hoàn hảo). Mình đã thử nghiệm các giải pháp cho một số tình huống phổ biến và mình khá hài lòng với kết quả. Mình nghĩ Copilot không nên được sử dụng bởi những người mới bắt đầu.

Dự án còn khá mới mẻ, vì vậy nó không phải là công cụ lý tưởng khi xây dựng một dự án nghiêm túc, nhưng trong tương lai, nó có thể nổi lên như một trong những công cụ tạo code được sử dụng nhiều nhất.

Ngoài ra, bạn cũng có thể tạo website đơn giản trong 15 phút bằng Github tại đây.

Đánh giá post
Exit mobile version