นักพัฒนา Kernel ถกเถียงปัญหาคุณภาพโค้ดจาก LLM ขณะที่แพตช์ที่สร้างด้วย AI เพิ่มขึ้น

ทีมชุมชน BigGo
นักพัฒนา Kernel ถกเถียงปัญหาคุณภาพโค้ดจาก LLM ขณะที่แพตช์ที่สร้างด้วย AI เพิ่มขึ้น

ชุมชนนักพัฒนา Linux kernel กำลังเผชิญกับความท้าทายที่เพิ่มขึ้น คือการจัดการกับการใช้ Large Language Models ( LLMs ) ในการมีส่วนร่วมพัฒนาโค้ดที่เพิ่มมากขึ้น โดยไม่ให้ส่งผลกระทบต่อคุณภาพและความปลอดภัยของโปรเจกต์ซอฟต์แวร์ที่สำคัญที่สุดแห่งหนึ่งของโลก เมื่อเครื่องมือ AI กลายเป็นที่แพร่หลายมากขึ้นในการพัฒนาซอฟต์แวร์ ผู้ดูแล kernel พบว่าตนเองติดอยู่ระหว่างการยอมรับผลประโยชน์ด้านประสิทธิภาพและการป้องกันความเสี่ยงที่อาจเกิดขึ้น

การอภิปรายได้รุนแรงขึ้นเมื่อนักพัฒนาแบ่งปันประสบการณ์ที่หลากหลายกับการเขียนโค้ดด้วยความช่วยเหลือของ AI บางคนรายงานถึงประโยชน์ที่แท้จริง โดยเฉพาะในงานการตรวจสอบโค้ดและการแก้ไขข้อผิดพลาด ในขณะที่คนอื่นๆ เตือนถึงข้อผิดพลาดที่ละเอียดแต่อันตรายที่อาจส่งผลกระทบต่อระบบหลายล้านระบบทั่วโลก

ความท้าทายด้านความไว้วางใจและชื่อเสียง

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

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

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

ความไม่แน่นอนด้านลิขสิทธิ์และกฎหมาย

นอกเหนือจากคุณภาพโค้ดแล้ว ความกังวลทางกฎหมายกำลังสร้างความวิตกกังวลอย่างมากภายในชุมชน kernel สถานะลิขสิทธิ์ของโค้ดที่สร้างโดย LLM ยังคงไม่ชัดเจน โดยนักพัฒนากังวลเกี่ยวกับคดีความที่อาจเกิดขึ้นในอนาคตคล้ายกับคดีความ SCO ที่มีชื่อเสียงซึ่งรบกวน Linux เมื่อหลายปีก่อน

ปัญหาเกิดจาก LLMs ที่ได้รับการฝึกฝนจากโค้ดจำนวนมหาศาล ซึ่งอาจรวมถึงวัสดุที่มีลิขสิทธิ์ภายใต้ใบอนุญาตต่างๆ เมื่อโมเดลเหล่านี้ทำซ้ำโค้ดสนิปเป็ต แม้เพียงบางส่วน ก็ทำให้เกิดคำถามว่าผลลัพธ์ละเมิดลิขสิทธิ์ที่มีอยู่หรือไม่ สิ่งนี้น่ากังวลเป็นพิเศษสำหรับโค้ดที่ได้รับใบอนุญาต GPL ซึ่งการละเมิดใบอนุญาตอาจมีผลกระทบแบบลูกโซ่

ไม่มีเหตุผลใดที่ฉันจะไม่สามารถฟ้องนักพัฒนาทุกคนที่เคยใช้ LLM และเผยแพร่และ/หรือแจกจ่ายโค้ดนั้นสำหรับการละเมิด AGPLv3 พวกเขาไม่สามารถพิสูจน์ต่อศาลได้ว่าโมเดลของพวกเขาไม่ได้ใช้โค้ด AGPLv3 เนื่องจากพวกเขาไม่ได้สร้างโมเดลนั้น

ความไม่แน่นอนทางกฎหมายทำให้แผนกกฎหมายของบริษัทหลายแห่งจำกัดหรือห้ามการใช้ LLM ทั้งหมด ทำให้เกิดนโยบายที่หลากหลายทั่วชุมชนนักพัฒนา

ประเด็นหลักที่นักพัฒนา Kernel หยิบยกขึ้นมา

  • การละเมิดลิขสิทธิ์: LLMs ที่ได้รับการฝึกฝนด้วยโค้ด GPL อาจทำซ้ำเนื้อหาที่มีลิขสิทธิ์
  • คุณภาพของโค้ด: การตอบสนองแบบทั่วไปที่มีคุณค่าต่ำและเป็นการเสียเวลาของผู้ตรวจสอบ
  • ความเสี่ยงด้านความปลอดภัย: ข้อบกพร่องที่ซ่อนเร้นในระบบย่อยหลักของ kernel อาจส่งผลกระทบต่อระบบนับล้าน
  • ภาระของผู้ดูแลโครงการ: ภาระงานที่เพิ่มขึ้นของผู้ดูแลโครงการในการตรวจสอบแพตช์ที่สร้างโดย AI
  • ปัญหาด้านความไว้วางใจ: นโยบาย "อย่าถามอย่าบอก" ที่ลดความโปร่งใส
  • ความไม่แน่นอนทางกฎหมาย: สถานะลิขสิทธิ์ที่ไม่ชัดเจนของการมีส่วนร่วมในโค้ดที่สร้างโดย AI

การประยุกต์ใช้จริงและข้อจำกัด

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

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

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

การประยุกต์ใช้ LLM ในการพัฒนา Kernel - การประเมินจากชุมชน

กรณีการใช้งาน ประสิทธิภาพ ระดับความเสี่ยง ความเห็นชอบจากชุมชน
การตรวจสอบโค้ด ปานกลาง-สูง ปานกลาง เห็นชอบอย่างระมัดระวัง
เอกสารประกอบ ปานกลาง ต่ำ-ปานกลาง ยอมรับได้โดยทั่วไป
การแปล ปานกลาง ปานกลาง มีประโยชน์แต่ต้องตรวจสอบ
การสร้างโค้ด ต่ำ-ปานกลาง สูง ไม่แนะนำอย่างยิ่ง
ความช่วยเหลือในการแก้ไขจุดบกพร่อง ปานกลาง-สูง ปานกลาง การประยุกต์ใช้ที่มีแนวโน้มดี
ข้อความ Commit สูง ต่ำ ได้รับการยอมรับอย่างกว้างขวาง

ภาวะที่กลืนไม่เข้าคายไม่ออกของโครงสร้างพื้นฐานที่สำคัญ

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

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

มองไปข้างหน้า

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

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

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

อ้างอิง: On the use of LLM assistants for kernel development