GitHub Copilot so với Amazon CodeWhisperer

Feb 13 2023
Cuộc chiến giành trợ lý viết mã được hỗ trợ bởi AI tốt nhất đã chính thức bắt đầu! GitHub Copilot và Amazon CodeWhisperer là những trợ lý mã hóa được hỗ trợ bởi AI đưa tính năng tự động hoàn thành lên một cấp độ hoàn toàn mới. Tốt nhất, họ có thể viết các đoạn mã chức năng hoàn chỉnh chỉ dựa trên một văn bản mô tả nhỏ do nhà phát triển đưa ra.

Cuộc chiến giành trợ lý viết mã được hỗ trợ bởi AI tốt nhất đã chính thức bắt đầu!

GitHub Copilot và Amazon CodeWhisperer là những trợ lý mã hóa được hỗ trợ bởi AI đưa tính năng tự động hoàn thành lên một cấp độ hoàn toàn mới. Tốt nhất, họ có thể viết các đoạn mã chức năng hoàn chỉnh chỉ dựa trên một văn bản mô tả nhỏ do nhà phát triển đưa ra. Điều này có thể giúp bạn làm việc hiệu quả hơn với tư cách là một nhà phát triển
và — theo ý kiến ​​của tôi — khiến việc phát triển trở nên thú vị hơn rất nhiều!✨

Vì vậy, không có gì khó chịu, hãy bắt đầu!

Trợ lý mã hóa do AI cung cấp là gì?

GitHub Copilot và Amazon CodeWhisperer là các dịch vụ tích hợp với trình chỉnh sửa mã của bạn và giúp bạn viết mã nhanh hơn. Nhưng không giống như các công cụ tự động hoàn thành phổ biến như “IntelliSense”, Copilot và CodeWhisperer sử dụng các mô hình máy học đã được đào tạo về cả mã nguồn và ngôn ngữ tự nhiên, cho phép chúng hiểu cả ngôn ngữ lập trình và ngôn ngữ của con người. Điều này cho phép họ hiểu các nhận xét được viết bằng tiếng Anh đơn giản, tạo mã dựa trên ý định của nhà phát triển và phù hợp với mẫu và phong cách của nhà phát triển. Khi bạn nhập, họ thậm chí còn cung cấp các đề xuất để hoàn thành nhận xét ban đầu. Bạn có thể chấp nhận đề xuất hàng đầu, xem các đề xuất khác hoặc đơn giản là tiếp tục viết mã của riêng bạn.

Dành ít thời gian hơn để tạo các mẫu mã soạn sẵn và mã lặp đi lặp lại, đồng thời dành nhiều thời gian hơn cho những gì quan trọng: xây dựng phần mềm tuyệt vời (GitHub Copilot)

GitHub Copilot là gì?

GitHub Copilot được phát triển bởi GitHub và OpenAI. Nó được cung cấp bởi mô hình Codex của OpenAI, được đào tạo về mã nguồn có sẵn công khai, bao gồm các kho lưu trữ công khai trên GitHub. Phi công phụ chính thức được thông báo “không còn bản xem trước kỹ thuật” vào tháng 6 năm 2022.

Bắt đầu nhập một nhận xét mô tả hoặc tên chức năng và Copilot sẽ cố gắng tự động hoàn thành phần còn lại

Copilot rất dễ sử dụng và cung cấp khả năng tích hợp hợp lý với tất cả các trình soạn thảo mã chính. GitHub Copilot được tối ưu hóa cho bảy ngôn ngữ lập trình chính (xem biểu đồ bên dưới để biết chi tiết), nhưng cũng có thể tạo đề xuất bằng các ngôn ngữ khác và nhiều khung khác nhau.

Copilot đã miễn phí trong giai đoạn xem trước, nhưng GitHub gần đây đã thông báo rằng họ sẽ chuyển sang mô hình dựa trên đăng ký. Bạn vẫn có thể dùng thử miễn phí 60 ngày và nó sẽ vẫn miễn phí cho các sinh viên đã được xác minh và người duy trì các dự án nguồn mở phổ biến.

Đề xuất của Copilot phụ thuộc vào ngữ cảnh. Quan sát cách nó “học” rằng bạn muốn sử dụng các hằng số và cách nó điền tên và số chính xác vào các đối tượng

Amazon CodeWhisperer là gì?

Amazon CodeWhisper được phát triển bởi Amazon. Các mô hình ML của nó được đào tạo trên nhiều nguồn dữ liệu khác nhau, bao gồm mã nội bộ và mã nguồn mở của Amazon.

CodeWhisperer hoàn thành nhận xét của bạn. Sau đó, nó sử dụng các nhận xét để đề xuất mã. Bạn có thể chuyển đổi giữa các cách triển khai mã khác nhau để chọn cách triển khai phù hợp nhất.

CodeWhisperer vẫn đang ở dạng xem trước và hỗ trợ ít ngôn ngữ hơn cũng như ít trình soạn thảo mã chính hơn GitHub Copilot. Tuy nhiên, hỗ trợ ngôn ngữ rộng và IDE không phải là điểm thu hút chính của nó. Thay vào đó, CodeWhisperer tập trung vào việc cung cấp hỗ trợ hạng nhất cho API AWS, cung cấp các đề xuất mã cho API AWS trên các dịch vụ phổ biến nhất, bao gồm Amazon Elastic Compute Cloud (EC2), AWS Lambda và Amazon Simple Storage Service (S3). Chất lượng hơn số lượng?

Theo bài đăng trên blog này của Amazon, người dùng sẽ có thể viết “tải tệp lên S3.” và CodeWhisperer sẽ tự động xác định dịch vụ đám mây và thư viện công cộng nào phù hợp nhất cho tác vụ được chỉ định, xây dựng mã cụ thể một cách nhanh chóng, và đề xuất các đoạn mã được tạo trực tiếp trong IDE.

Trong thời gian xem trước, nhà phát triển có thể sử dụng CodeWhisperer miễn phí bằng cách đăng ký tại đây .

so sánh

So sánh giữa GitHub Copilot và Amazon CodeWhisperer. CHỈNH SỬA: Copilot được tối ưu hóa cho các ngôn ngữ này, nhưng hỗ trợ nhiều hơn nữa.

Cái nào phổ biến hơn?

Với thời gian tồn tại ngắn của CodeWhisperer (được phát hành vào tháng trước), tôi không thể tìm thấy bất kỳ dữ liệu nào liên quan đến số lượng người dùng. Tuy nhiên, có thể an toàn khi nói rằng GitHub Copilot, với khởi đầu trước một năm, hiện đang là người chơi thống trị. Theo chính GitHub , hơn 1,2 triệu nhà phát triển đã sử dụng bản xem trước kỹ thuật của Copilot trong 12 tháng qua. Nghiên cứu của riêng họ cho thấy rằng người dùng đã chấp nhận trung bình 26% tổng số lần hoàn thành do GitHub Copilot hiển thị và tối đa 40% tệp mã của nhà phát triển được tạo bởi GitHub Copilot.

Còn riêng tư thì sao ?

Để cải thiện hiệu suất của họ, cả Copilot và CodeWhisperer đều thu thập dữ liệu từ người dùng của họ. Bạn có đang đặt cơ sở mã hoặc dữ liệu của tổ chức mình vào rủi ro khi sử dụng những công cụ này tại nơi làm việc không? Đây là một câu hỏi quan trọng và là một công cụ giải quyết tiềm năng cho hầu hết các công ty.

Để cung cấp các đề xuất mã, GitHub Copilot gửi mã và nhận xét của bạn đến dịch vụ GitHub Copilot. Dịch vụ này dựa trên nội dung tệp giống như ngữ cảnh, cả trong tệp bạn đang chỉnh sửa, cũng như các tệp lân cận hoặc liên quan trong một dự án. Nó cũng có thể thu thập các URL của kho lưu trữ hoặc đường dẫn tệp để xác định ngữ cảnh có liên quan. Các phần của việc thu thập dữ liệu có thể bị vô hiệu hóa trong cài đặt đo từ xa. Các phần khác, như thông tin sử dụng, được yêu cầu cho việc sử dụng Copilot và không thể tắt được. Điều này có thể bao gồm dữ liệu cá nhân, như được tham chiếu trong Tuyên bố về quyền riêng tư của GitHub .

GitHub cũng tuyên bố rằng từ thử nghiệm nội bộ của họ, họ thấy hiếm khi các đề xuất của GitHub Copilot bao gồm nguyên văn dữ liệu cá nhân từ tập huấn luyện (“hiếm”..? ). Tuy nhiên, một số gợi ý này có thể chỉ là dữ liệu cá nhân — địa chỉ email, số điện thoại, v.v. — nhưng thực ra là thông tin hư cấu được tổng hợp từ các mẫu trong dữ liệu huấn luyện.

Amazon CodeWhisperer cũng thu thập một số thông tin nhất định như thông tin theo ngữ cảnh (bao gồm cả nội dung tệp), phản hồi, chỉ số đo từ xa và thông tin môi trường người dùng. Trong Điều khoản dịch vụ của họ, Amazon tuyên bố rằng trong giai đoạn xem trước, họ có thể cung cấp cho bạn tùy chọn bật hoặc tắt chia sẻ nội dung.

Còn rủi ro và lỗ hổng thì sao?

Cả hai trợ lý đều được đào tạo về mã công khai. Mã này có thể chứa các mẫu mã không an toàn, lỗi hoặc tham chiếu đến các API hoặc thành ngữ lỗi thời. Nghiên cứu “Ngủ trên bàn phím? Đánh giá tính bảo mật của các đóng góp mã của GitHub Copilot ” nhận thấy rằng có tới 40% các kịch bản thử nghiệm của họ sử dụng Copilot chứa mã dễ bị tấn công.

GitHub thừa nhận rằng Copilot đôi khi có thể đề xuất các cách sử dụng thư viện và ngôn ngữ cũ hoặc không dùng nữa, đồng thời nó có thể tổng hợp mã chứa các mẫu không mong muốn. Để giảm thiểu điều này, họ đề xuất sử dụng sản phẩm của họ kết hợp với các công cụ như GitHub Actions, Dependabot và CodeQL để giúp cải thiện chất lượng mã.

Điều tương tự cũng xảy ra với Amazon, mặc dù Amazon đã thực hiện các biện pháp tuyệt vời để chống lại điều này bằng cách cung cấp các bản quét bảo mật để phát hiện các lỗ hổng trong các dự án Java và Python.

Khi bạn chọn Run Security Scan, CodeWhisperer sẽ phát hiện lỗ hổng này và hiển thị sự cố. (nguồn: Blog học máy AWS)

Nói như vậy, bạn phải luôn sử dụng các trợ lý mã hóa do AI cung cấp cùng với thử nghiệm thích hợp, thực hành đánh giá mã tốt và các công cụ bảo mật đáng tin cậy, cũng như phán đoán của riêng bạn!

Còn việc sử dụng (sai) mã công khai thì sao?

Đã có sự nâng cao nhận thức về việc sử dụng đáng kể mã công khai trong tập huấn luyện. Lý tưởng nhất là một trợ lý nên liên tục tạo mã chưa từng thấy trước đây. Thay vào đó, nếu trợ lý đọc mã trực tiếp từ tập huấn luyện, nó có khả năng khiến nó không đủ điều kiện được coi là sử dụng hợp lý và có thể vi phạm bản quyền của chủ sở hữu ban đầu.

Để giảm thiểu điều này, Copilot có một bộ lọc tích hợp cố gắng phát hiện và chặn các trường hợp trong đó đề xuất GitHub Copilot chứa mã khớp với mã công khai trên GitHub. Bộ lọc này là tùy chọn và có thể được tắt. Theo chính GitHub, Copilot sẽ xuất ra các đoạn mã nguyên văn dài hơn ~150 ký tự trong khoảng 1% thời gian. Họ đổ lỗi cho điều này trong trường hợp GitHub Copilot không thể thu thập đủ ngữ cảnh từ mã bạn đang viết hoặc khi có một giải pháp chung, thậm chí có thể là phổ quát, cho vấn đề.

Tương tự như Copilot, CodeWhisperer cũng đi kèm với trình theo dõi tham chiếu có thể phát hiện khi kết quả đầu ra được tạo có thể giống với dữ liệu đào tạo cụ thể. Liên quan đến việc thu thập mã do người dùng viết, Amazon tuyên bố rằng họ sẽ không sử dụng bất kỳ mã nào do nhà phát triển viết để đào tạo thêm các mô hình của mình trong giai đoạn xem trước. Tuy nhiên, CodeWhisperer có lưu trữ dữ liệu hoạt động của người dùng liên quan đến phản hồi của nhà phát triển đối với đề xuất mã, chẳng hạn như chấp nhận hoặc từ chối đề xuất. Dịch vụ sử dụng phản hồi này để làm cho các mô hình ML chính xác hơn để CodeWhisperer có thể cải thiện các đề xuất trong tương lai.

Người thắng cuộc là..?

GitHub Copilot là người chiến thắng khi nói đến hỗ trợ ngôn ngữ và IDE. Nó cũng đã tồn tại lâu hơn và chính thức không còn bản xem trước, giúp các nhà phát triển của nó có thêm thời gian để sửa lỗi và giải quyết những khúc mắc trên đường. Sử dụng nó đòi hỏi một khoản đầu tư tài chính nhỏ, nhưng bạn sẽ có được một sản phẩm đầy đủ chức năng sẵn sàng hoạt động.

Tuy nhiên, nếu bạn đang làm việc trong môi trường AWS, Amazon CodeWhisperer có lẽ là dành cho bạn. Tôi thực sự ngưỡng mộ nỗ lực của Amazon trong việc trở thành Nhà cung cấp dịch vụ đám mây đầu tiên cung cấp trợ lý mã hóa thông minh, phần lớn nhằm vào sản phẩm của chính họ và tôi hy vọng sẽ có nhiều nhà cung cấp làm theo (Tôi đang nhìn bạn, Azure!). Ngoài ra, tính năng phát hiện lỗ hổng tích hợp của họ cũng có thể là một lý do chính đáng để xem xét nó. Cuối cùng, thực tế là nó hiện đang miễn phí là một động lực mạnh mẽ để ít nhất hãy dùng thử trong khi nó ở dạng xem trước. Tuy nhiên, điều này sẽ yêu cầu bạn phải đăng ký và kiên nhẫn chờ đến lượt mình. ⏳

Cuối cùng, chúng ta hãy dành một chút thời gian để đánh giá mức độ phát triển của công nghệ và những công cụ tuyệt vời mà chúng ta hiện có thể sử dụng với tư cách là nhà phát triển! Cả GitHub Copilot và Amazon CodeWhisperer đều là những công nghệ tuyệt vời mà tôi dự đoán sẽ là công cụ bắt buộc phải có đối với tất cả các nhà phát triển nghiêm túc trong tương lai không xa. Và khi các tác nhân khác như Google và Salesforce đang bắt đầu nhúng ngón chân vào nước, chắc chắn chúng ta sẽ sớm bước vào một kỷ nguyên mới khi nói đến việc phát triển mã.

Tôi hy vọng bạn tìm thấy bài viết này hữu ích. Cảm ơn vì đã đọc!

Biên tập viên lưu ý:

GitHub Copilot cực kỳ có giá trị trong công việc của tôi với tư cách là một nhà khoa học dữ liệu. Thực hiện phân tích dữ liệu thường yêu cầu tôi nhanh chóng kiểm tra các giả thuyết. Vì tôi thường không biết trước kết quả sẽ ra sao, nên cuối cùng tôi thường viết rất nhiều đoạn mã gần như giống hệt nhau mà tôi sẽ chỉ chạy một lần, để xác nhận hoặc bác bỏ giả thuyết của mình. GitHub Copilot là một công cụ tuyệt vời để tăng tốc quá trình này và nó cũng tích hợp tốt với mọi IDE yêu thích của các nhà khoa học dữ liệu, cụ thể là Jupyter Notebook (trong Mã VS) !

NGƯỜI GIỚI THIỆU

  • GitHub, Lập trình viên cặp AI của bạn (2022), github.com
  • Amazon, người đồng hành viết mã do ML hỗ trợ — Amazon CodeWhisperer — Amazon Web Services (2022), aws.amazon.com
  • Amazon, AWS công bố Amazon CodeWhisperer (Bản xem trước) (2022), aws.amazon.com
  • A. Desai và A. Deo, Giới thiệu Amazon CodeWhisperer, công cụ viết mã được hỗ trợ bởi ML (2022), Blog AWS Machine Learning
  • S. Bhattacharyya, Trận chiến trợ lý viết mã AI: GitHub Copilot vs Amazon CodeWhisperer (2022), analyticsindiamag.com
  • B. Dickson, GitHub Copilot hiện đã công khai — đây là những điều bạn cần biết (2022), Venturebeat.com
  • F. Lardinois, Amazon ra mắt CodeWhisperer, một công cụ lập trình cặp AI giống GitHub Copilot (2022), techcrunch.com
  • D. Gershgorn, công cụ mã hóa tự động của GitHub dựa trên cơ sở pháp lý chưa được kiểm chứng (2021), theverge.com