paint-brush
Nghiên cứu tiết lộ các vấn đề thường gặp mà người dùng GitHub Copilot phải đối mặttừ tác giả@textmodels
4,022 lượt đọc
4,022 lượt đọc

Nghiên cứu tiết lộ các vấn đề thường gặp mà người dùng GitHub Copilot phải đối mặt

từ tác giả Writings, Papers and Blogs on Text Models16m2024/03/04
Read on Terminal Reader

dài quá đọc không nổi

Một nghiên cứu đã điều tra những thách thức của người dùng với GitHub Copilot, tiết lộ các vấn đề phổ biến như trở ngại khi sử dụng, mối lo ngại về khả năng tương thích và chất lượng đề xuất mã. Nguyên nhân bao gồm từ sự cố hệ thống nội bộ đến sự cố kết nối mạng, trong khi các giải pháp bao gồm sửa lỗi, điều chỉnh cấu hình và cập nhật phiên bản. Nhìn chung, những phát hiện này đã làm sáng tỏ việc cải thiện trải nghiệm người dùng của GitHub Copilot.
featured image - Nghiên cứu tiết lộ các vấn đề thường gặp mà người dùng GitHub Copilot phải đối mặt
Writings, Papers and Blogs on Text Models HackerNoon profile picture

Bài viết này có sẵn trên arxiv theo giấy phép CC 4.0.

tác giả:

(1) Xiyu Zhou, Trường Khoa học Máy tính, Đại học Vũ Hán, Vũ Hán, Trung Quốc;

(2) Peng Liang, Trường Khoa học Máy tính, Đại học Vũ Hán, Vũ Hán, Trung Quốc;

(3) Zengyang Li, Trường Khoa học Máy tính, Đại học Sư phạm Trung ương Trung Quốc, Vũ Hán, Trung Quốc;

(4) Aakash Ahmad, Trường Máy tính và Truyền thông, Đại học Lancaster Leipzig, Leipzig, Đức;

(4) Mojtaba Shahin, Trường Công nghệ Máy tính, Đại học RMIT, Melbourne, Úc;

(4) Muhammad Waseem, Khoa Công nghệ thông tin, Đại học Jyväskylä, Jyväskylä, Phần Lan.


III. KẾT QUẢ VÀ PHÂN TÍCH

Trong phần này, chúng tôi báo cáo kết quả nghiên cứu của ba RQ và đưa ra phân tích về những phát hiện chính. Trong Phần III-A, chúng tôi trình bày các loại vấn đề, trong khi ở Phần III-B và III-C, chúng tôi lần lượt trình bày các loại nguyên nhân và giải pháp cho các vấn đề tương ứng. Kết quả của các loại vấn đề được phân loại thành hai cấp độ: danh mục (ví dụ: Vấn đề về nội dung đề xuất) và loại (ví dụ: ĐỀ XUẤT KÉM HIỆU QUẢ). Trong khi đó, kết quả về nguyên nhân và giải pháp chỉ được sắp xếp theo loại (ví dụ: Sử dụng Phiên bản Phù hợp). Cần lưu ý rằng, chỉ những nguyên nhân đã được chứng minh là dẫn đến vấn đề và giải pháp có thể giải quyết vấn đề mới được trích xuất và cung cấp trong kết quả. Vì vậy, không phải vấn đề nào cũng có nguyên nhân và giải pháp tương ứng. Chúng tôi cung cấp các ví dụ có ký hiệu “#”, biểu thị “ID vấn đề GitHub”, “ID thảo luận GitHub” hoặc “ID bài đăng SO” trong tập dữ liệu được cung cấp [13].


A. Loại vấn đề (RQ1)


Hình 2 trình bày cách phân loại các vấn đề được trích xuất từ dữ liệu của chúng tôi. Có thể thấy rằng Vấn đề sử dụng (56,9%) chiếm phần lớn các vấn đề mà người dùng Copilot gặp phải. Ngoài ra, một số lượng đáng kể người dùng đã đưa ra Yêu cầu tính năng (15,3%) dựa trên trải nghiệm và yêu cầu người dùng của họ. Ngoài ra còn có một phần người dùng đã gặp phải Sự cố tương thích (15,3%) khi sử dụng Copilot trong các môi trường khác nhau, trong khi tỷ lệ phần trăm nhỏ hơn được xác định là Sự cố nội dung đề xuất (4,9%), Sự cố trải nghiệm người dùng (4,2%) và Các vấn đề về bản quyền và chính sách (3,4%).


  1. Vấn đề sử dụng (56,9%): Vấn đề sử dụng đề cập đến một loại trở ngại mà người dùng gặp phải khi cố gắng sử dụng một số chức năng cơ bản của Copilot (ví dụ: lỗi cài đặt). Loại vấn đề này còn được chia thành sáu loại, được trình bày chi tiết dưới đây.


• VẤN ĐỀ SỬ DỤNG CHỨC NĂNG đề cập đến sự bất thường của nhiều tính năng liên quan đến việc tạo mã do Copilot cung cấp. Ngoài việc cung cấp các đề xuất mã, Copilot còn cung cấp nhiều tính năng tương tác khác nhau để tương tác tốt hơn với người dùng, chẳng hạn như “đề xuất trước/tiếp theo”, “xem tất cả đề xuất” và cấu hình các phím tắt để chấp nhận đề xuất. Người dùng có thể gặp phải trường hợp ngoại lệ khi sử dụng các tính năng này. Ví dụ: một người dùng đã báo cáo rằng “Copilot không còn đề xuất trên PyCharm nữa” (Thảo luận #11199).


• VẤN ĐỀ THIẾT LẬP/VẬN HÀNH đề cập đến các lỗi hoặc trục trặc xảy ra trong quá trình khởi tạo hoặc vận hành Copilot và thường liên quan đến các ngoại lệ trong thời gian chạy. Những sự cố này có thể ngăn Copilot chạy chính xác hoặc khiến nó gặp sự cố bất ngờ, chẳng hạn như khi người dùng gặp phải “lỗi khởi động copilot trong VSCode” (Thảo luận #30996).


• LỖI XÁC THỰC đề cập đến các vấn đề liên quan đến khó khăn khi đăng nhập và xác thực người dùng khi sử dụng Copilot. Copilot yêu cầu người dùng đăng nhập vào tài khoản GitHub trước khi sử dụng dịch vụ. Chỉ những người dùng có quyền truy cập (bao gồm đăng ký trả phí, xác minh danh tính sinh viên, v.v.) mới có thể sử dụng dịch vụ tạo mã của Copilot. Trong quá trình xác thực, người dùng có thể gặp phải nhiều vấn đề khác nhau liên quan đến nó, dẫn đến không thể sử dụng Copilot. Ví dụ: một người dùng đã đề cập trong diễn đàn thảo luận rằng “Tôi không thể đăng nhập sau khi nâng cấp” (Thảo luận #18132).


• LỖI TRUY CẬP là tình trạng người dùng không truy cập được vào máy chủ của Copilot, thường liên quan đến các lỗi liên quan đến kết nối máy chủ. Người dùng có thể gặp thông báo lỗi như “GitHub Copilot không thể kết nối với máy chủ” (Thảo luận #11801).


• VẤN ĐỀ CÀI ĐẶT đề cập đến các vấn đề gặp phải trong quá trình cài đặt Copilot, bao gồm lỗi cài đặt, không tìm được phương pháp cài đặt và các vấn đề liên quan khác. Ví dụ: một số người dùng có thể gặp phải các sự cố như “Lỗi khi cài đặt Copilot” (Thảo luận #17250).


• VẤN ĐỀ KIỂM SOÁT PHIÊN BẢN đề cập đến các vấn đề mà người dùng gặp phải khi điều chỉnh phiên bản Copilot hoặc môi trường thời gian chạy của nó (ví dụ: IDE), bao gồm việc không thể nâng cấp phiên bản Copilot hoặc các vấn đề bất thường như tiếp tục nhắc nâng cấp ngay cả sau khi nâng cấp. Ví dụ: một người dùng cho biết “plugin copilot không cập nhật được” khi sử dụng nó trong IntelliJ IDEA (Thảo luận #17298).


Phân tích: Là một sản phẩm mã AI tương đối mới, chúng tôi đã xác định được Vấn đề sử dụng ở các giai đoạn tương tác khác nhau của người dùng với Copilot. Người dùng cũng có xu hướng báo cáo những vấn đề này và tìm kiếm sự trợ giúp, điều này khiến Vấn đề sử dụng trở thành loại vấn đề phổ biến nhất. VẤN ĐỀ SỬ DỤNG CHỨC NĂNG (233), VẤN ĐỀ THIẾT LẬP/VẬN HÀNH (201) và LỖI XÁC THỰC (199) là ba loại hàng đầu. Chúng tôi cho rằng tần suất cao hơn của hai loại sự cố đầu tiên là do những thiếu sót trong thiết kế tính năng và độ ổn định của Copilot, những yếu tố này cũng bị ảnh hưởng bởi môi trường và hoạt động của người dùng. Loại thứ ba chủ yếu liên quan đến các chi tiết cụ thể phát sinh khi Copilot yêu cầu người dùng đăng nhập bằng tài khoản GitHub của họ.


2) Yêu cầu tính năng (15,3%): Yêu cầu tính năng đề cập đến các tính năng mà người dùng yêu cầu bổ sung hoặc cải thiện dựa trên trải nghiệm và nhu cầu thực tế của họ khi sử dụng Copilot. Những yêu cầu tính năng này không chỉ giúp cải thiện trải nghiệm người dùng của Copilot mà còn góp phần khám phá cách các công cụ tạo mã AI có thể tương tác tốt hơn với các nhà phát triển. Loại này được chia thành bốn loại, như được hiển thị dưới đây.


• YÊU CẦU CHỨC NĂNG đề cập đến các yêu cầu phát triển các chức năng mới trong Copilot, thường phát sinh từ nhu cầu thực sự của người dùng và những khó khăn gặp phải khi sử dụng công cụ. Ví dụ: một người dùng đã đề xuất rằng việc bổ sung “Tính năng giải thích mã” có thể nâng cao tính hữu ích của Copilot (Thảo luận #7509).


• YÊU CẦU TÍCH HỢP đề cập đến một loại yêu cầu để Copilot khả dụng trên một số nền tảng nhất định hoặc được tích hợp với các plugin khác. Điều này chủ yếu là do một số người dùng mong muốn sử dụng Copilot trong các môi trường cụ thể. Ví dụ: một người dùng đã yêu cầu “Hỗ trợ cho dòng Intellij 2022.2 EAP” (Thảo luận #17045). Các yêu cầu tích hợp cũng phản ánh mức độ phổ biến của Copilot đối với các nhà phát triển ở một mức độ nào đó.


• YÊU CẦU UI đề cập đến các yêu cầu do người dùng đưa ra đối với các thay đổi đối với giao diện người dùng (UI) của Copilot, có thể liên quan đến việc sửa đổi giao diện của biểu tượng Copilot, điều chỉnh lời nhắc sử dụng và các khía cạnh liên quan khác. Những yêu cầu này thường nhằm mục đích cải thiện hiệu ứng hình ảnh và trải nghiệm người dùng của Copilot. Ví dụ: người dùng có thể yêu cầu bổ sung “chỉ báo trạng thái” (Số 163) để cung cấp thông tin về trạng thái làm việc hiện tại của Phi công phụ.


• PHIÊN BẢN COPILOT CHUYÊN NGHIỆP đề cập đến yêu cầu của một số người dùng về phiên bản Copilot chuyên nghiệp.


Hình 2. Phân loại các vấn đề khi sử dụng GitHub Copilot


Những người dùng này thường là nhà phát triển từ nhóm nội bộ của một số công ty nhất định, những người hy vọng nhận được dịch vụ tạo mã chuyên nghiệp và đáng tin cậy hơn trong công việc thực tế của họ. Cụ thể, họ có yêu cầu cao hơn về độ tin cậy và tính bảo mật của mã Copilot, cũng như chứng nhận của nhóm và các khía cạnh khác.


Phân tích: Đối với YÊU CẦU CHỨC NĂNG (123), chúng tôi quan sát thấy rằng người dùng thường bày tỏ mong muốn có được sự linh hoạt cao hơn trong việc định cấu hình Copilot để phù hợp hơn với thói quen phát triển của họ. Ví dụ: các yêu cầu phổ biến bao gồm khả năng chấp nhận từng từ gợi ý của Copilot và chỉ định nơi Copilot sẽ tự động hoạt động về mặt loại tệp hoặc phạm vi phát triển mã. Các nhu cầu đổi mới hơn liên quan đến nhu cầu Copilot đưa ra các đề xuất theo toàn bộ dự án, cũng như các tính năng như giải thích mã và chức năng trò chuyện [15], đã được ra mắt dưới dạng bản xem trước kỹ thuật trong Copilot X. YÊU CẦU TÍCH HỢP (75) phản ánh mong muốn của các nhà phát triển sử dụng Copilot trong môi trường quen thuộc của họ. Điều này đặt ra yêu cầu cao hơn đối với nhóm Copilot vì chúng tôi đã xác định được một số lượng đáng kể các Vấn đề về khả năng tương thích.


3) Vấn đề tương thích (15,3%): Danh mục này bao gồm các vấn đề phát sinh từ sự không khớp giữa Copilot và môi trường thời gian chạy của nó. Copilot hoạt động như một plugin trong nhiều IDE và trình soạn thảo văn bản khác nhau (ví dụ: VSCode và IntelliJ IDEA), đồng thời, sự phức tạp của môi trường cũng như sự can thiệp từ các plugin khác có thể dẫn đến số lượng vấn đề tương thích tăng lên. Những vấn đề này còn được phân loại thành bốn loại, được trình bày chi tiết dưới đây.


• VẤN ĐỀ TƯƠNG THÍCH CỦA EDITOR/IDE đề cập đến các vấn đề phát sinh từ sự không khớp giữa Copilot và IDE hoặc trình soạn thảo của nó. Những sự cố này thường biểu hiện là Copilot không thể hoạt động bình thường trong một IDE hoặc trình chỉnh sửa cụ thể.


• VẤN ĐỀ TƯƠNG THÍCH PLUG-IN đề cập đến một loại vấn đề khớp phát sinh khi Copilot và các plugin khác đang hoạt động và làm việc cùng nhau trong cùng một môi trường. Những sự cố như vậy có thể gây ra trục trặc một phần hoặc toàn bộ của Copilot và các plugin khác và thường được xác định thông qua các phương pháp khắc phục sự cố như vô hiệu hóa Copilot hoặc các plugin khác. Ví dụ: một người dùng đã báo cáo “xung đột phím tắt với Emmet” (Vấn đề số 47) khiến anh ta không thể nhận được đề xuất mã do Copilot tạo ra.


• VẤN ĐỀ TƯƠNG THÍCH KHUNG đề cập đến một loại vấn đề tương thích giữa Copilot và framework mà nó vận hành. Một ví dụ phổ biến là vấn đề tương thích giữa Copilot.vim [16], phiên bản chính thức của Copilot được thiết kế dành riêng cho Vim và Node.js.


• VẤN ĐỀ TƯƠNG THÍCH BÀN PHÍM đề cập đến tình huống không thể sử dụng chức năng của Copilot trong một số bố cục bàn phím không phổ biến. Ví dụ: người dùng có bố cục bàn phím tiếng Đức không thể sử dụng hầu hết các tính năng liên quan đến tạo mã của Copilot. (Thảo luận #7094).


Phân tích: Vấn đề tương thích phát sinh từ môi trường hoạt động phức tạp trong đó người dùng sử dụng Copilot, cũng như khả năng tương thích mạnh mẽ của chính Copilot. Trong trường hợp VẤN ĐỀ TƯƠNG THÍCH CỦA EDITOR/IDE (132), VSCode, nền tảng được chính thức khuyến nghị cho việc sử dụng Copilot, đã thu được số lượng vấn đề tương thích được báo cáo cao hơn. Chúng tôi cũng đã tìm thấy các vấn đề tương tự trong các IDE được sử dụng rộng rãi khác, như Visual Studio, IDEA và PyCharm. Sự xuất hiện của VẤN ĐỀ TƯƠNG THÍCH PLUG-IN (72) khó dự đoán hơn, với các sự cố điển hình liên quan đến xung đột với các công cụ hoàn thiện mã khác.


4) Vấn đề về nội dung đề xuất (4,9%): Loại vấn đề này đề cập đến các vấn đề liên quan đến nội dung mã do Copilot tạo ra. Việc tạo đề xuất mã là tính năng cốt lõi của các công cụ tạo mã AI như Copilot và chất lượng của các đề xuất sẽ trực tiếp xác định liệu người dùng có chấp nhận chúng hay không. Do đó, nội dung của mã được tạo đương nhiên là một lĩnh vực được người dùng, nhà nghiên cứu và nhóm Copilot quan tâm. Những vấn đề này còn được chia thành bảy tình huống cụ thể, được trình bày chi tiết dưới đây.


• ĐỀ XUẤT CHẤT LƯỢNG THẤP đề cập đến các tình huống trong đó Copilot không thể hiểu đầy đủ ngữ cảnh để tạo ra mã hữu ích. Những đề xuất mã như vậy có thể không có bất kỳ lỗi cú pháp nào, nhưng do chất lượng kém nên khó có khả năng được người dùng chấp nhận. Ví dụ: Copilot đã từng tạo một phương thức trống chỉ chứa câu lệnh trả về mà không đáp ứng các yêu cầu được chỉ định trong mã của người dùng (Thảo luận #6631).


• ĐỀ XUẤT KHÔNG NGHĨA đề cập đến các đề xuất mã do Copilot cung cấp hoàn toàn không liên quan đến nhu cầu của người dùng hoặc tạo ra kết quả lạ. Những đề xuất như vậy được coi là hầu như không thể sử dụng được và cung cấp rất ít hỗ trợ về mặt kinh nghiệm cho người dùng. Ví dụ: một người dùng đã nhận được một URL giả không thể truy cập được do Copilot tạo ra (Thảo luận #14212).


• ĐỀ XUẤT CÓ LỖI đề cập đến tình huống Copilot có thể tạo mã có liên quan dựa trên ngữ cảnh, nhưng mã được đề xuất có một số lỗi. Điều này có thể dẫn đến việc chương trình có thể chạy nhưng không theo cách mà nhà phát triển mong muốn hoặc trong một số trường hợp, gây ra lỗi hoặc treo máy. Ví dụ: một người dùng đã báo cáo rằng Copilot đã đề xuất sử dụng “setState(!state)” thay vì “setState(true)” (Vấn đề #43), điều này gây ra lỗi logic trong mã.


• ĐỀ XUẤT KHÔNG THỂ HIỂU được đề cập đến tình huống Copilot cung cấp các đề xuất mã, nhưng do tính phức tạp của logic mã hoặc thiếu kinh nghiệm, người dùng cảm thấy khó hiểu mã được đề xuất và yêu cầu nguồn bổ sung để xác minh tính chính xác của nó. Ví dụ: một người dùng cho biết “Github Copilot của tôi vừa tự động hoàn thành nó cho tôi, sau đó tôi lùng sục trên Internet để cố gắng tìm thông tin liên quan đến nó nhưng không thể”. (SO #73075410)


• ĐỀ XUẤT VỚI CỔ PHIẾU KHÔNG HỢP LỆ đề cập đến tình huống trong đó các đề xuất do Copilot tạo ra có thể chứa lỗi cú pháp khiến chương trình không thể chạy bình thường. Một ví dụ là khi mã được đề xuất thiếu dấu ngoặc đóng, khiến trình soạn thảo hiển thị lỗi cú pháp (Thảo luận #38941).


• ĐỀ XUẤT KÉM HIỆU QUẢ đề cập đến các đề xuất mã do Copilot tạo ra có chức năng chính xác và đáp ứng yêu cầu của người dùng, nhưng có thể có hiệu quả thực thi dưới mức tối ưu hoặc logic phức tạp, có khả năng ảnh hưởng đến chất lượng tổng thể của mã.


• ĐỀ XUẤT KHÔNG AN TOÀN đề cập đến các đề xuất mã do Copilot tạo ra nhằm đưa ra các lỗ hổng bảo mật. Ví dụ: một người dùng đã chỉ ra rằng đề xuất mã dành cho anh ta thiếu trách nhiệm đối với kích thước được đọc (Thảo luận #6636).


Phân tích: Chất lượng của các đề xuất mã là yếu tố then chốt quyết định khả năng phát triển mã thực tế của Copilot. Chúng tôi đã xác định được một lượng tương đối nhỏ Vấn đề về Nội dung Đề xuất, có thể cho thấy rằng người dùng ít có xu hướng báo cáo các vấn đề liên quan đến mã được đề xuất hơn so với các vấn đề liên quan đến việc sử dụng. Trong số các vấn đề này, ĐỀ XUẤT CHẤT LƯỢNG THẤP, ĐỀ XUẤT KHÔNG HIỆU QUẢ và ĐỀ XUẤT CÓ LỖI là ba loại được báo cáo thường xuyên nhất, trong khi ĐỀ XUẤT KHÔNG AN TOÀN và ĐỀ XUẤT KÉM HIỆU QUẢ ít phổ biến hơn. Kết quả này cho thấy chất lượng mã được tạo ra là mối quan tâm lớn của người dùng, trong khi tính bảo mật và hiệu quả không được ưu tiên cao.


5) Vấn đề về trải nghiệm người dùng (4,2%): Danh mục này bao gồm phản hồi của người dùng về trải nghiệm sử dụng Copilot của họ. So với Vấn đề sử dụng, Copilot thường chạy và hoạt động như dự định nhưng trải nghiệm người dùng chưa tối ưu. Các vấn đề về trải nghiệm người dùng có thể xuất hiện do các tình huống sử dụng cụ thể hoặc phổ biến trong nhiều tình huống khác nhau, cung cấp thông tin chi tiết về các lĩnh vực mà Copilot có thể được cải thiện. Vấn đề về trải nghiệm người dùng có thể được phân loại thêm thành bốn loại, được trình bày chi tiết bên dưới.


• TRẢI NGHIỆM CHỨC NĂNG Kém đề cập đến một loại vấn đề về trải nghiệm người dùng trong đó việc sử dụng các chức năng liên quan đến tạo mã lõi của Copilot không đạt yêu cầu. Những vấn đề này thường có thể cản trở sự phối hợp giữa người dùng và Copilot, thậm chí làm giảm hiệu quả của công việc phát triển thực tế. Ví dụ: một người dùng phàn nàn rằng các đề xuất được tạo tự động do Copilot cung cấp rất gây mất tập trung, buộc anh ta phải kích hoạt chức năng tạo mã theo cách thủ công (Thảo luận #13007).


• KINH NGHIỆM ĐĂNG KÝ Kém đề cập đến những trở ngại mà người dùng gặp phải trong quá trình đăng ký dịch vụ của Copilot. Copilot cung cấp một số phương thức đăng ký (ví dụ: xác minh sinh viên, đăng ký trả phí), dẫn đến một số bất tiện cho người dùng trong quá trình đăng ký. Ví dụ: một người dùng không chắc chắn phải làm gì tiếp theo sau khi thiết lập thanh toán (Thảo luận #19119).


• HIỆU SUẤT Kém đề cập đến các vấn đề về hiệu suất xảy ra khi Copilot đang chạy, thường ảnh hưởng trực tiếp đến trải nghiệm người dùng. Những vấn đề này bao gồm mức sử dụng CPU cao, thời gian phản hồi lâu và truy cập máy chủ quá thường xuyên. • KINH NGHIỆM XÁC THỰC Kém đề cập đến sự bất tiện mà người dùng gặp phải khi xác thực danh tính của mình trước khi sử dụng Copilot. Tình huống phổ biến nhất là Copilot thường xuyên nhắc người dùng đăng nhập lại, điều này có thể gây ra sự thất vọng đáng kể.


Phân tích: Các vấn đề về trải nghiệm người dùng cung cấp những hiểu biết có giá trị về hướng cải thiện Copilot. Trong số các vấn đề về TRẢI NGHIỆM CHỨC NĂNG KÉM (25), các vấn đề được báo cáo phổ biến nhất liên quan đến đề xuất nội tuyến của Copilot gây gián đoạn quá trình mã hóa của người dùng (5) và sự bất tiện khi không thể chấp nhận một số phần nhất định của mã được đề xuất (2). Những mối lo ngại này phù hợp với một số nhu cầu được người dùng đề cập trong Yêu cầu tính năng, ví dụ: cài đặt thời điểm Copilot có thể tạo mã và độ dài của mã được đề xuất.


6) Vấn đề về bản quyền và chính sách (3,4%): Copilot được đào tạo về một kho mã nguồn mở lớn và tạo ra các đề xuất mã dựa trên ngữ cảnh mã của người dùng. Cách thức hoạt động của Copilot làm tăng mối lo ngại về các vấn đề tiềm ẩn về bản quyền và chính sách, như một số người dùng đã bày tỏ. Những vấn đề này được chia thành ba loại, như được hiển thị dưới đây.


• VẤN ĐỀ BẢN QUYỀN MÃ đề cập đến mối lo ngại của một số tác giả mã liên quan đến việc Copilot sử dụng trái phép mã nguồn mở của họ để đào tạo mô hình. GitHub hiện là một trong những nền tảng lưu trữ mã dựa trên web phổ biến nhất và kể từ khi phát hành Copilot, một số tác giả mã đã nghi ngờ rằng mã của họ được lưu trữ trên GitHub đã được sử dụng để đào tạo mà không được xem xét kỹ lưỡng về giấy phép của họ.


• VẤN ĐỀ ĐO LƯỜNG MÃ TỪ XA đề cập đến mối lo ngại của người dùng về cách tiếp cận của Copilot trong việc thu thập mã của họ để tạo ra các đề xuất, điều này có thể dẫn đến rò rỉ mã bí mật. Một số người dùng cũng có thể đơn giản là không muốn có mã của riêng họ, cũng như mã do Copilot tạo ra cho họ, được thu thập cho các mục đích khác.


• VI PHẠM CHÍNH SÁCH THỊ TRƯỜNG là trường hợp cụ thể khi người dùng báo cáo rằng Copilot vẫn có thể được xuất bản trên thị trường VSCode mặc dù sử dụng API được đề xuất, trong khi các plugin khác bị cấm. Người dùng nghi ngờ rằng hành vi này có thể vi phạm Chính sách của Marketplace (Vấn đề số 3).


Phân tích: Sự xuất hiện của các vấn đề về Bản quyền và Chính sách cho thấy mối lo ngại của người dùng về cách thức hoạt động của Copilot. Copilot được đào tạo về mã nguồn mở đa ngôn ngữ và cũng cần thu thập ngữ cảnh mã của người dùng trong quá trình hoạt động để đưa ra đề xuất. Hai thực tế này đã khiến mọi người chú ý hơn đến vấn đề bản quyền và sở hữu trí tuệ khi sử dụng Copilot, đặc biệt là trong quá trình phát triển nội bộ.


B. Loại nguyên nhân (RQ2)


  1. Kết quả: Chúng tôi đã xác định được tổng cộng 337 nguyên nhân, được thu thập từ 24,1% tổng số vấn đề và được phân thành 13 loại như trình bày trong Bảng II. Kết quả chỉ ra rằng các nguyên nhân thường gặp nhất của sự cố là Sự cố nội bộ của Copilot (21,4%) và Sự cố kết nối mạng (15,4%), cùng với Sự cố tương thích với Trình soạn thảo/IDE (11,1%) và Nền tảng không được hỗ trợ (9,2%) cũng thường được báo cáo. Các trường hợp cụ thể, số lần xuất hiện và tỷ lệ của từng loại nguyên nhân được trình bày trong Bảng II. Do giới hạn về không gian, chúng tôi phân tích năm nguyên nhân thường gặp nhất. Điều đáng lưu ý là một số loại vấn đề nhất định có thể là nguyên nhân của các vấn đề khác.


2) Phân tích: Sự cố nội bộ của Copilot, có thể dẫn đến nhiều loại vấn đề sử dụng khác nhau, là loại nguyên nhân phổ biến nhất. Vì Copilot là một dự án nguồn đóng nên các chi tiết nội bộ của nó không được người dùng biết công khai. Do đó, chúng tôi coi các vấn đề ngược dòng liên quan đến Copilot là Vấn đề nội bộ của Copilot, bao gồm mô hình ngôn ngữ, thiết kế chức năng và các vấn đề phía máy chủ do các yếu tố nội bộ gây ra. Thông thường, việc xác định Sự cố nội bộ của Copilot dựa trên phản hồi của người dùng về trải nghiệm sử dụng bất thường mà nhóm Copilot sẽ cần điều tra thêm để xác định các nguyên nhân cơ bản cụ thể. Ngoài ra, việc xảy ra Sự cố nội bộ của Copilot thường dẫn đến việc một nhóm người dùng báo cáo các sự cố tương tự trong một khoảng thời gian nhất định. Ví dụ: việc triển khai không tốt ở phía máy chủ có thể khiến một nhóm người dùng gặp phải LỖI XÁC THỰC.


Sự cố kết nối mạng là loại nguyên nhân phổ biến có thể dẫn đến lỗi xác thực, ngoại lệ thời gian chạy, lỗi truy cập, v.v. Hầu hết các sự cố liên quan đến mạng đều do môi trường mạng của người dùng. Một tình huống phổ biến là người dùng truy cập Copilot thông qua proxy HTTP hoặc VPN, điều này có thể gây nhiễu SSL và ngăn họ sử dụng dịch vụ. Tuy nhiên, một tin tốt là Copilot hiện hỗ trợ truy cập thông qua proxy HTTP, do đó giải quyết được những lo ngại như vậy [17].


Sự cố tương thích với Trình chỉnh sửa/IDE có thể dẫn đến phát sinh nhiều vấn đề sử dụng khác nhau, chủ yếu bao gồm việc sử dụng chức năng bất thường và các sự cố vận hành của Copilot, v.v.


Nền tảng không được hỗ trợ đề cập đến lý do tại sao một số người dùng không thể sử dụng Copilot một cách hiệu quả trong một số IDE hoặc trình soạn thảo văn bản nhất định, điều này chủ yếu dẫn đến một số vấn đề liên quan đến việc sử dụng và khả năng tương thích. Vì Copilot không phải là nguồn mở nên nhiều nền tảng không thể tích hợp nó ngay khi phát hành, điều này dẫn đến một số người dùng gặp phải nhiều trở ngại khác nhau khi cố gắng sử dụng nó. Do đó, chúng tôi khuyên người dùng nên thử sử dụng các IDE mà Copilot chính thức hỗ trợ, vì điều này sẽ cung cấp cho họ dịch vụ tạo mã ổn định và thuận tiện hơn cũng như quyền truy cập vào cộng đồng thảo luận trưởng thành có thể giúp giải quyết hầu hết các vấn đề phổ biến.


Cấu hình/Cài đặt không đúng là một trong những nguyên nhân chính gây ra các vấn đề về sử dụng chức năng và tương thích. Ví dụ: sau khi cài đặt Copilot, cấu hình và cài đặt mặc định của nó có thể khiến nó gặp trục trặc trong một IDE cụ thể hoặc xung đột với các plugin khác. Phần lớn những vấn đề này có thể được giải quyết thông qua việc điều chỉnh cấu hình.



C. Loại giải pháp (RQ3)


  1. Kết quả: Chúng tôi đã xác định được tổng cộng 497 giải pháp được sử dụng để giải quyết 35,5% tổng số vấn đề và được phân thành 11 loại như trong Bảng III. Kết quả cho thấy hầu hết các lỗi sử dụng đã được giải quyết bằng các bản sửa lỗi chính thức (Lỗi được Copilot sửa 27,0%) sau phản hồi của người dùng và khi người dùng cố gắng tự giải quyết vấn đề, Sửa đổi cấu hình/Cài đặt (22,1%), Sử dụng phiên bản phù hợp (17,1% ) và Cài đặt lại/Khởi động lại/Ủy quyền lại Copilot (12,3%) thường được sử dụng như những giải pháp hiệu quả. Các trường hợp cụ thể, số lần xuất hiện và tỷ lệ của từng loại giải pháp được trình bày trong Bảng III. Do hạn chế về không gian, chúng tôi sẽ tập trung vào việc diễn giải kết quả của 5 giải pháp hàng đầu cũng như một số phân tích quan trọng. Cần lưu ý rằng Khác (4,2%) là tập hợp các giải pháp chuyên dụng thường dành riêng cho các môi trường và vấn đề cụ thể.


Việc ánh xạ giữa các loại vấn đề và các loại giải pháp với sự phân bổ được thể hiện trong Bảng IV, sử dụng các chữ viết tắt để thể hiện từng loại giải pháp. Ví dụ: “BFC” đại diện cho Lỗi được sửa bởi Copilot. Việc ánh xạ cho thấy phần lớn các giải pháp đều hướng tới các vấn đề về sử dụng và vấn đề tương thích. Các giải pháp chính cho Yêu cầu tính năng chủ yếu là chờ triển khai tính năng chính thức (FIC) hoặc đạt được hiệu quả tương tự thông qua sửa đổi cấu hình hoặc cài đặt (MCS). Các vấn đề về trải nghiệm người dùng hầu hết được cải thiện bởi nhóm Copilot (BFC). Ngoài ra, việc sử dụng phiên bản Copilot và trình soạn thảo/IDE (USV) thích hợp có thể mang lại trải nghiệm tốt hơn. Việc giải quyết các vấn đề về nội dung đề xuất tương đối khó khăn vì chỉ một số vấn đề có thể được giải quyết thông qua sửa đổi cách nhập liệu (MIW), trong khi phần lớn thiếu các giải pháp hiệu quả. Các vấn đề về bản quyền và chính sách cũng có giải pháp tương đối hạn chế. Giải pháp chính là kiểm soát việc thu thập mã của người dùng bằng cách điều chỉnh cài đặt của Copilot.


2) Phân tích: Lỗi do Copilot sửa là giải pháp chính để giải quyết các vấn đề khác nhau, đặc biệt là một số vấn đề về sử dụng và tương thích. Điều này là hợp lý vì các Vấn đề nội bộ của Copilot là nguyên nhân thường gặp nhất, cho thấy nhiều vấn đề của Copilot, với tư cách là một công cụ mới, không thể giải quyết được bằng nỗ lực của chính người dùng. Do tính chất nguồn đóng của Copilot, người dùng chỉ có thể cung cấp phản hồi của mình và chờ phản hồi và giải pháp từ nhóm Copilot.


Sửa đổi Cấu hình/Cài đặt là một giải pháp phổ biến để giải quyết các vấn đề liên quan đến cấu hình hoặc cài đặt không đúng và có thể giải quyết các VẤN ĐỀ SỬ DỤNG CHỨC NĂNG, VẤN ĐỀ TƯƠNG THÍCH PLUGIN và LỖI XÁC THỰC bởi chính người dùng. Ngoài ra, đối với một số yêu cầu tính năng, người dùng có thể đạt được chức năng họ muốn chỉ bằng cách thực hiện một số thay đổi về cấu hình, chẳng hạn như thay đổi liên kết phím tắt để chấp nhận đề xuất mã. Tuy nhiên, chúng tôi nhận thấy rằng do tính phức tạp của môi trường chạy Copilot nên rất khó để cung cấp cấu hình khuyến nghị phù hợp cho mọi tình huống. Vì vậy, mỗi trường hợp phải được phân tích riêng lẻ.


Sử dụng Phiên bản phù hợp cung cấp một cách hiệu quả để giải quyết các VẤN ĐỀ THIẾT LẬP/VẬN HÀNH, VẤN ĐỀ SỬ DỤNG CHỨC NĂNG, VẤN ĐỀ CÀI ĐẶT và VẤN ĐỀ TƯƠNG THÍCH CỦA BIÊN TẬP/IDE. Copilot nhanh chóng được lặp lại trên nhiều phiên bản dựa trên phản hồi của người dùng và kế hoạch phát triển. Trong khi đó, một số IDE cũng đã phát hành phiên bản mới để tương thích với nó. Tuy nhiên, một số phiên bản cũ hơn có thể ổn định hơn so với phiên bản mới nhất và có thể chứa một số lỗi hoặc vấn đề tương thích. Vì vậy, sử dụng phiên bản phù hợp là giải pháp mang lại hiệu quả cao cho người dùng.


Cài đặt lại/Khởi động lại/Ủy quyền lại Copilot là một giải pháp khác để người dùng có thể tự mình giải quyết các LỖI XÁC THỰC, SỰ CỐ CÀI ĐẶT/VẬN HÀNH và CÁC VẤN ĐỀ SỬ DỤNG CHỨC NĂNG. Nguyên tắc của nó là đặt lại trạng thái hiện tại của Copilot, đưa mọi lỗi hoặc cài đặt trước đó có thể tồn tại trở lại trạng thái ban đầu.


Tính năng do Copilot triển khai hoạt động như một hành động chính thức chủ yếu giải quyết các Yêu cầu tính năng của người dùng. Tốc độ phát triển các tính năng mới của Copilot tương đối nhanh và nhóm Copilot hiện đang thử nghiệm một số tính năng mới nhất trong Copilot X [18].