Các nhà đồng lập trình AI có lẽ sẽ không tạo ra nhiều lỗi như PlatoBlockchain Data Intelligence lo ngại. Tìm kiếm dọc. Ái.

Các nhà đồng lập trình AI có lẽ sẽ không đẻ ra nhiều lỗi như lo ngại

Các mô hình học máy hỗ trợ các công cụ hoàn thành mã thế hệ tiếp theo như GitHub Copilot có thể giúp các nhà phát triển phần mềm viết nhiều mã chức năng hơn mà không làm cho nó kém an toàn hơn.

Đó là kết quả dự kiến ​​của một cuộc khảo sát nhỏ với 58 người được thực hiện bởi một nhóm các nhà khoa học máy tính của Đại học New York.

In một tờ giấy được phân phối qua ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt và Siddharth Garg kể lại cách họ đưa tính bảo mật của mã nguồn được tạo ra với sự trợ giúp của các mô hình ngôn ngữ lớn (LLM) vào thử nghiệm.

Các LLM như dòng OpenAI GPT đã được đào tạo về lượng lớn dữ liệu văn bản công khai hoặc mã nguồn công khai trong trường hợp của OpenAI's Codex, một hậu duệ của GPT và là nền tảng của GitHub's Copilot. Do đó, chúng có thể tái tạo các lỗi do con người lập trình trong quá khứ, minh họa cho câu châm ngôn “rác vào, rác ra ngoài”. Có một nỗi sợ rằng những công cụ này sẽ nổi dậy và gợi ý mã xấu cho các nhà phát triển, những người sẽ chèn nội dung vào dự án của họ.

Hơn nữa, bảo mật mã có thể theo ngữ cảnh: mã được bảo mật tách biệt có thể không an toàn khi được thực thi theo một trình tự cụ thể với phần mềm khác. Vì vậy, các công cụ tự động hoàn thành này có thể đưa ra các đề xuất mã mà bản thân chúng vẫn ổn, nhưng được kết nối với mã khác, hiện dễ bị tấn công hoặc chỉ đơn giản là bị hỏng. Điều đó nói rằng, hóa ra những công cụ này có thể không thực sự khiến con người trở nên tồi tệ hơn trong việc lập trình.

Theo một nghĩa nào đó, các nhà nghiên cứu đang tự dập lửa. Khoảng một năm trước, hai trong số cùng một nhà khoa học máy tính đã đóng góp vào một bài báo có tiêu đề “Ngủ quên 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. ” Tác phẩm đó được tìm thấy khoảng 40 phần trăm đầu ra từ Copilot bao gồm các điểm yếu tiềm ẩn có thể khai thác được (CWE).

“Sự khác biệt giữa hai bài báo là 'Asleep at the Keyboard' đang xem xét việc tạo mã hoàn toàn tự động (không có con người trong vòng lặp) và chúng tôi không có người dùng con người để so sánh, vì vậy chúng tôi không thể nói bất kỳ điều gì về cách Brendan Dolan-Gavitt, đồng tác giả trên cả hai bài báo và là trợ lý giáo sư tại khoa kỹ thuật và khoa học máy tính tại NYU Tandon, cho biết trong một email gửi tới Đăng ký.

“Bài báo nghiên cứu người dùng cố gắng giải quyết trực tiếp những phần còn thiếu đó, bằng cách yêu cầu một nửa số người dùng nhận được sự hỗ trợ từ Codex (mô hình cung cấp năng lượng cho Copilot) và nửa còn lại tự viết mã. Tuy nhiên, nó cũng hẹp hơn so với 'Asleep at the Keyboard': chúng tôi chỉ xem xét một nhiệm vụ và một ngôn ngữ (viết danh sách liên kết bằng C). "

Trong báo cáo mới nhất, “Ý nghĩa bảo mật của Trình hỗ trợ mã mô hình ngôn ngữ lớn: Nghiên cứu người dùng”, một nhóm các nhà nghiên cứu NYU hơi khác nhau thừa nhận rằng công trình trước đó không mô hình hóa việc sử dụng các công cụ dựa trên LLM như Copilot một cách thực tế.

“Đầu tiên, những nghiên cứu này giả định rằng toàn bộ mã được LLM tạo ra tự động (chúng tôi sẽ gọi đây là chế độ lái tự động),” các nhà nghiên cứu giải thích trong bài báo của họ.

“Trên thực tế, LLM hoàn thành mã hỗ trợ các nhà phát triển đưa ra các đề xuất mà họ sẽ chọn chấp nhận, chỉnh sửa hoặc từ chối. Điều này có nghĩa là trong khi các lập trình viên có khuynh hướng tự động hóa có thể chấp nhận một cách ngây thơ các bản hoàn thành lỗi, các nhà phát triển khác có thể tạo ra mã lỗi ít hơn bằng cách sử dụng thời gian tiết kiệm được để sửa lỗi. "

Thứ hai, họ quan sát thấy rằng mặc dù LLM đã được chứng minh là tạo ra mã lỗi, nhưng con người cũng làm như vậy. Lỗi trong dữ liệu đào tạo LLM đến từ con người.

Vì vậy, thay vì tự mình đánh giá mức độ hoạt động của mã do LLM tạo ra, họ bắt đầu so sánh mã được tạo ra bởi các nhà phát triển con người được hỗ trợ bởi các mô hình học máy khác với mã do lập trình tự làm việc như thế nào.

Các nhà khoa học máy tính của NYU đã tuyển 58 người tham gia khảo sát - sinh viên đại học và sau đại học trong các khóa học phát triển phần mềm - và chia họ thành một nhóm Kiểm soát, những người sẽ làm việc mà không có đề xuất và một nhóm được Hỗ trợ, những người có quyền truy cập vào hệ thống gợi ý tùy chỉnh được xây dựng bằng OpenAI API Codex. Họ cũng sử dụng mô hình Codex để tạo ra 30 giải pháp cho các vấn đề lập trình đã cho làm điểm so sánh. Nhóm Autopilot này hoạt động chủ yếu như một nhóm điều khiển thứ hai.

Cả nhóm Hỗ trợ và Kiểm soát đều được phép tham khảo các tài nguyên web, chẳng hạn như Google và Stack Overflow, nhưng không được phép yêu cầu người khác trợ giúp. Công việc được thực hiện trong Visual Studio Code trong một vùng chứa dựa trên web được xây dựng bằng nguồn mở Anubis.

Những người tham gia được yêu cầu hoàn thành chương trình danh sách mua sắm bằng ngôn ngữ lập trình C vì “các nhà phát triển dễ dàng vô tình thể hiện các mẫu thiết kế dễ bị tổn thương trong C” và vì chuỗi công cụ trình biên dịch C được sử dụng không kiểm tra lỗi ở cùng một mức độ công cụ đối với các ngôn ngữ hiện đại, chẳng hạn như Go và Rust, làm được.

Khi các nhà nghiên cứu phân tích thủ công mã do nhóm Kiểm soát và Trợ lý tạo ra, họ nhận thấy rằng trái ngược với công việc trước đó, các đề xuất mã AI không làm cho mọi thứ trở nên tồi tệ hơn về tổng thể.

Có vẻ rõ ràng, nhưng có chi tiết

“[W] e không tìm thấy bằng chứng nào cho thấy sự hỗ trợ của Codex làm tăng tỷ lệ lỗi bảo mật,” bài báo nêu rõ, đồng thời lưu ý rằng kích thước mẫu nhỏ của nghiên cứu có nghĩa là cần phải nghiên cứu thêm. “Ngược lại, có một số bằng chứng cho thấy rằng CWEs / LoC [dòng mã] giảm với sự hỗ trợ của Codex.”

Siddharth Garg, một nhà nghiên cứu an ninh mạng và phó giáo sư tại khoa kỹ thuật tại NYU Tandon, cho biết: “Thật khó để kết luận điều này với sự tự tin về mặt thống kê. Đăng ký.

Thật khó để kết luận điều này với nhiều sự tin cậy về mặt thống kê

Tuy nhiên, ông nói, "Dữ liệu cho thấy người dùng Copilot không bị thiệt thòi nhiều."

Dolan-Gavitt cũng thận trọng về những phát hiện này.

“Phân tích hiện tại về kết quả nghiên cứu người dùng của chúng tôi không tìm thấy bất kỳ sự khác biệt đáng kể nào về mặt thống kê - chúng tôi vẫn đang phân tích điều này, bao gồm cả định tính, vì vậy tôi sẽ không đưa ra kết luận mạnh mẽ từ điều này, đặc biệt vì nó là một nghiên cứu nhỏ (tổng số 58 người dùng) và người dùng đều là sinh viên chứ không phải là nhà phát triển chuyên nghiệp, ”ông nói.

“Tuy nhiên, chúng tôi có thể nói rằng với những người dùng này, trong nhiệm vụ này, tác động bảo mật của việc có sự hỗ trợ của AI có lẽ không lớn: nếu nó có tác động rất lớn, chúng tôi sẽ nhận thấy sự khác biệt lớn hơn giữa hai nhóm. Chúng tôi đang thực hiện phân tích thống kê nhiều hơn một chút để làm cho điều đó chính xác ngay bây giờ. "

Ngoài ra, một số hiểu biết khác đã xuất hiện. Một là những người tham gia nhóm Trợ lý làm việc năng suất hơn, tạo ra nhiều dòng mã hơn và hoàn thành một phần lớn các chức năng trong nhiệm vụ.

Garg nói: “Người dùng trong nhóm được hỗ trợ đã vượt qua nhiều bài kiểm tra chức năng hơn và tạo ra nhiều mã chức năng hơn.

Một điều khác là các nhà nghiên cứu có thể phân biệt đầu ra được tạo ra bởi các nhóm Điều khiển, Hỗ trợ và Lái xe tự động, có thể phân biệt mối quan tâm về gian lận sức mạnh AI trong các cơ sở giáo dục.

Các nhà nghiên cứu cũng nhận thấy rằng các công cụ AI cần được xem xét trong bối cảnh lỗi của người dùng. “Người dùng cung cấp các lời nhắc có thể bao gồm lỗi, chấp nhận các lời nhắc có lỗi kết thúc trong chương trình 'đã hoàn thành' cũng như chấp nhận các lỗi sau đó được loại bỏ," bài báo cho biết. "Trong một số trường hợp, người dùng cũng gặp phải nhiều lỗi hơn so với mô hình đề xuất!"

Mong đợi công việc tiếp theo dọc theo những dòng này. ®

Dấu thời gian:

Thêm từ Đăng ký