ผู้ร่วมโปรแกรม AI อาจจะไม่วางไข่ข้อบกพร่องมากเท่าที่ PlatoBlockchain Data Intelligence กลัว ค้นหาแนวตั้ง AI.

โปรแกรมเมอร์ร่วม AI อาจจะไม่วางไข่แมลงมากเท่าที่กลัว

โมเดลแมชชีนเลิร์นนิงที่ขับเคลื่อนเครื่องมือสร้างโค้ดรุ่นถัดไป เช่น GitHub Copilot สามารถช่วยให้นักพัฒนาซอฟต์แวร์เขียนโค้ดที่ใช้งานได้จริงมากขึ้น โดยไม่ทำให้ปลอดภัยน้อยลง

นั่นเป็นผลลัพธ์เบื้องต้นจากการสำรวจผู้เข้าร่วม 58 คนกลุ่มเล็กๆ ที่ดำเนินการโดยกลุ่มนักวิทยาศาสตร์คอมพิวเตอร์ของมหาวิทยาลัยนิวยอร์ก

In กระดาษ เผยแพร่ผ่าน ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt และ Siddharth Garg เล่าถึงวิธีที่พวกเขานำความปลอดภัยของซอร์สโค้ดที่สร้างขึ้นด้วยความช่วยเหลือของแบบจำลองภาษาขนาดใหญ่ (LLM) มาทดสอบ

LLM เช่น OpenAI GPT family ได้รับการฝึกอบรมเกี่ยวกับข้อมูลข้อความสาธารณะจำนวนมาก หรือซอร์สโค้ดสาธารณะในกรณีของ Codex ของ OpenAI ซึ่งเป็นลูกหลานของ GPT และรากฐานของ Copilot ของ GitHub ด้วยเหตุนี้ พวกเขาอาจสร้างข้อผิดพลาดที่เกิดขึ้นในอดีตโดยโปรแกรมเมอร์ที่เป็นมนุษย์ โดยแสดงให้เห็นหลักคำสอนที่ว่า “ขยะเข้า ขยะออก” มีความกลัวว่าเครื่องมือเหล่านี้จะสำรอกออกมาและแนะนำโค้ดที่ไม่ดีให้กับนักพัฒนา ซึ่งจะแทรกข้อมูลลงในโปรเจ็กต์ของพวกเขา

ยิ่งไปกว่านั้น ความปลอดภัยของรหัสสามารถกำหนดบริบทได้: รหัสที่มีการรักษาความปลอดภัยแบบแยกส่วนอาจไม่ปลอดภัยเมื่อดำเนินการตามลำดับเฉพาะกับซอฟต์แวร์อื่น ดังนั้นเครื่องมือเติมข้อความอัตโนมัติเหล่านี้อาจเสนอคำแนะนำเกี่ยวกับโค้ดที่สามารถทำได้เอง แต่เชื่อมต่อกับโค้ดอื่น ตอนนี้มีความเสี่ยงที่จะถูกโจมตีหรือใช้งานไม่ได้ ที่กล่าวว่าเครื่องมือเหล่านี้อาจไม่ทำให้มนุษย์การเขียนโปรแกรมแย่ลง

ในแง่หนึ่ง นักวิจัยกำลังดับไฟของตัวเอง ประมาณหนึ่งปีที่แล้ว นักวิทยาศาสตร์คอมพิวเตอร์สองคนเดียวกันได้ร่วมเขียนบทความเรื่อง “Asleep at the Keyboard? การประเมินความปลอดภัยของการมีส่วนร่วมโค้ดของ GitHub Copilot” พบว่าผลงาน เกี่ยวกับร้อยละ 40 ของผลลัพธ์จาก Copilot รวมถึงจุดอ่อนที่อาจใช้ประโยชน์ได้ (CWE).

“ความแตกต่างระหว่างเอกสารทั้งสองฉบับคือ 'Asleep at the Keyboard' กำลังมองหาการสร้างโค้ดอัตโนมัติเต็มรูปแบบ (ไม่มีมนุษย์อยู่ในลูป) และเราไม่มีผู้ใช้ที่เป็นมนุษย์เพื่อเปรียบเทียบ ดังนั้นเราจึงไม่สามารถพูดอะไรเกี่ยวกับวิธี ความปลอดภัยของ Copilot เมื่อเทียบกับความปลอดภัยของรหัสที่มนุษย์เขียนขึ้น” Brendan Dolan-Gavitt ผู้ร่วมเขียนบทความและผู้ช่วยศาสตราจารย์ในแผนกวิทยาการคอมพิวเตอร์และวิศวกรรมของ NYU Tandon กล่าวในอีเมลถึง ลงทะเบียน.

“เอกสารการศึกษาผู้ใช้พยายามที่จะจัดการกับชิ้นส่วนที่หายไปเหล่านั้นโดยตรง โดยให้ผู้ใช้ครึ่งหนึ่งได้รับความช่วยเหลือจาก Codex (โมเดลที่ขับเคลื่อน Copilot) และให้อีกครึ่งหนึ่งเขียนโค้ดด้วยตนเอง อย่างไรก็ตาม มันยังแคบกว่า 'Asleep at the Keyboard' ด้วย: เราดูแค่งานเดียวและหนึ่งภาษา (เขียนรายการที่เชื่อมโยงใน C)”

ในรายงานล่าสุด "ผลกระทบด้านความปลอดภัยของผู้ช่วยโค้ดโมเดลภาษาขนาดใหญ่: การศึกษาผู้ใช้" นักวิจัยจาก NYU หลายคนยอมรับว่างานก่อนหน้านี้ล้มเหลวในการสร้างแบบจำลองการใช้เครื่องมือแบบ LLM เช่น Copilot อย่างสมจริง

“ประการแรก การศึกษาเหล่านี้สันนิษฐานว่า LLM สร้างรหัสทั้งหมดโดยอัตโนมัติ (เราจะเรียกโหมดนี้ว่าโหมดนักบินอัตโนมัติ)” โลงศพอธิบายในเอกสารของพวกเขา

“ในทางปฏิบัติ LLM ในการเติมโค้ดช่วยให้นักพัฒนามีคำแนะนำว่าจะเลือกยอมรับ แก้ไข หรือปฏิเสธ ซึ่งหมายความว่าในขณะที่โปรแกรมเมอร์มีแนวโน้มที่จะมีอคติแบบอัตโนมัติอาจยอมรับการเสร็จสิ้นของบั๊กกี้อย่างไร้เดียงสา แต่นักพัฒนารายอื่นอาจสร้างโค้ดบั๊กน้อยลงโดยใช้เวลาที่บันทึกไว้เพื่อแก้ไขข้อบกพร่อง”

ประการที่สอง พวกเขาสังเกตเห็นว่าในขณะที่ LLM แสดงให้เห็นว่าผลิตโค้ดแบบบั๊กกี้ มนุษย์ก็ทำเช่นกัน ข้อบกพร่องในข้อมูลการฝึกอบรม LLM มาจากผู้คน

ดังนั้น แทนที่จะประเมินข้อบกพร่องของโค้ดที่สร้าง LLM ด้วยตนเอง พวกเขาจึงเริ่มเปรียบเทียบว่าโค้ดที่สร้างโดยนักพัฒนาที่เป็นมนุษย์ซึ่งได้รับความช่วยเหลือจากโมเดลการเรียนรู้ด้วยเครื่องนั้นแตกต่างจากโค้ดที่สร้างโดยการเขียนโปรแกรมที่ทำงานด้วยตนเองอย่างไร

นักวิทยาศาสตร์คอมพิวเตอร์ของ NYU ได้คัดเลือกผู้เข้าร่วมการสำรวจ 58 คน – นักศึกษาระดับปริญญาตรีและบัณฑิตศึกษาในหลักสูตรการพัฒนาซอฟต์แวร์ – และแบ่งออกเป็นกลุ่มควบคุม ซึ่งจะทำงานโดยไม่มีข้อเสนอแนะ และกลุ่มที่ได้รับความช่วยเหลือซึ่งเข้าถึงระบบคำแนะนำที่กำหนดเองซึ่งสร้างขึ้นโดยใช้ OpenAI โคเดกซ์ API พวกเขายังใช้โมเดล Codex เพื่อสร้าง 30 วิธีแก้ปัญหาสำหรับปัญหาการเขียนโปรแกรมที่กำหนดเป็นจุดเปรียบเทียบ กลุ่ม Autopilot นี้ทำหน้าที่เป็นกลุ่มควบคุมที่สองเป็นหลัก

ทั้งกลุ่มที่ได้รับความช่วยเหลือและกลุ่มควบคุมได้รับอนุญาตให้ปรึกษาแหล่งข้อมูลบนเว็บ เช่น Google และ Stack Overflow แต่ไม่สามารถขอความช่วยเหลือจากผู้อื่นได้ งานเสร็จสิ้นใน Visual Studio Code ภายในคอนเทนเนอร์บนเว็บที่สร้างด้วยโอเพ่นซอร์ส สุสาน.

ผู้เข้าร่วมถูกขอให้กรอกโปรแกรมรายการซื้อของโดยใช้ภาษา C เพราะ “นักพัฒนาสามารถแสดงรูปแบบการออกแบบที่เปราะบางใน C ได้โดยไม่ได้ตั้งใจ” และเนื่องจากเครื่องมือคอมไพเลอร์ C ที่ใช้ไม่ได้ตรวจสอบข้อผิดพลาดในระดับเดียวกันสำหรับ toolchains ภาษาสมัยใหม่เช่น Go และ Rust ทำ

เมื่อนักวิจัยวิเคราะห์โค้ดที่ผลิตโดยกลุ่มควบคุมและผู้ช่วยด้วยตนเอง พวกเขาพบว่าคำแนะนำโค้ด AI ไม่ได้ทำให้ทุกอย่างแย่ลงโดยรวม ตรงกันข้ามกับงานก่อนหน้า

ดูใสแต่มีรายละเอียด

“[W]e ไม่พบหลักฐานที่บ่งชี้ว่าความช่วยเหลือจาก Codex เพิ่มอุบัติการณ์จุดบกพร่องด้านความปลอดภัย” รายงานระบุ ขณะที่สังเกตว่าขนาดกลุ่มตัวอย่างที่เล็กของการศึกษาหมายความว่าต้องมีการศึกษาเพิ่มเติม “ในทางตรงกันข้าม มีหลักฐานบางอย่างที่ชี้ให้เห็นว่า CWEs/LoC [lines of code] ลดลงด้วยความช่วยเหลือของ Codex”

“เป็นเรื่องยากที่จะสรุปสิ่งนี้ด้วยความมั่นใจทางสถิติมาก” Siddharth Garg นักวิจัยด้านความปลอดภัยทางไซเบอร์และรองศาสตราจารย์ในแผนกวิศวกรรมของ NYU Tandon กล่าวในการสัมภาษณ์ทางโทรศัพท์กับ ลงทะเบียน.

เป็นการยากที่จะสรุปด้วยความมั่นใจทางสถิติมาก

อย่างไรก็ตาม เขากล่าว "ข้อมูลแสดงให้เห็นว่าผู้ใช้ Copilot ไม่ได้แย่ไปกว่านี้มาก"

Dolan-Gavitt ระมัดระวังในการค้นพบเช่นเดียวกัน

“การวิเคราะห์ผลการศึกษาผู้ใช้ของเราในปัจจุบันไม่พบความแตกต่างที่มีนัยสำคัญทางสถิติ เรายังคงวิเคราะห์สิ่งนี้ รวมถึงในเชิงคุณภาพ ดังนั้นฉันจะไม่ได้ข้อสรุปที่ชัดเจนจากเรื่องนี้ โดยเฉพาะอย่างยิ่งเนื่องจากเป็นการศึกษาขนาดเล็ก (ผู้ใช้ทั้งหมด 58 ราย) และ ผู้ใช้ทั้งหมดเป็นนักเรียนมากกว่านักพัฒนามืออาชีพ” เขากล่าว

“ถึงกระนั้น เราสามารถพูดได้ว่ากับผู้ใช้เหล่านี้ ในงานนี้ ผลกระทบด้านความปลอดภัยของการได้รับความช่วยเหลือจาก AI อาจไม่ใหญ่มาก หากมีผลกระทบมาก เราจะสังเกตเห็นความแตกต่างที่มากขึ้นระหว่างทั้งสองกลุ่ม เรากำลังทำการวิเคราะห์ทางสถิติอีกเล็กน้อยเพื่อให้แม่นยำในตอนนี้”

นอกนั้นก็มีความเข้าใจอื่นๆ เกิดขึ้น หนึ่งคือผู้เข้าร่วมกลุ่มผู้ช่วยมีประสิทธิผลมากขึ้น สร้างบรรทัดของโค้ดได้มากขึ้น และทำงานในส่วนที่มากขึ้นในงานที่ได้รับมอบหมาย

“ผู้ใช้ในกลุ่ม Assisted ผ่านการทดสอบการทำงานมากขึ้นและผลิตโค้ดที่ใช้งานได้มากขึ้น” Garg กล่าว และเสริมว่าผลลัพธ์ประเภทนี้อาจช่วยให้บริษัทต่างๆ ที่มองหาเครื่องมือเข้ารหัสความช่วยเหลือตัดสินใจว่าจะปรับใช้หรือไม่

อีกประการหนึ่งคือนักวิจัยสามารถแยกแยะผลลัพธ์ที่ผลิตโดยกลุ่ม Control, Assisted และ Autopilot ซึ่งอาจบรรเทาได้ ความกังวล เกี่ยวกับการโกงพลังงาน AI ในการตั้งค่าการศึกษา

โลงศพยังพบว่าเครื่องมือ AI จำเป็นต้องได้รับการพิจารณาในบริบทของข้อผิดพลาดของผู้ใช้ “ผู้ใช้แจ้งข้อความที่อาจรวมถึงข้อบกพร่อง ยอมรับข้อความแจ้งของรถที่ลงเอยในโปรแกรมที่ 'เสร็จสมบูรณ์' รวมทั้งยอมรับข้อบกพร่องซึ่งจะถูกลบออกในภายหลัง” กระดาษกล่าว “ในบางกรณี ผู้ใช้ก็มีจุดบกพร่องมากกว่าที่โมเดลแนะนำ!”

คาดหวังการทำงานต่อไปตามแนวทางเหล่านี้ ®

ประทับเวลา:

เพิ่มเติมจาก ลงทะเบียน