แนวทางการใช้เครื่องมือช่วยด้วย AI เมื่อมีส่วนร่วมกับเคอร์เนลลินุกซ์
(github.com/torvalds)- เป็นเอกสารทางการของ Linux kernel จาก Linus Torvalds โดยระบุว่าเมื่อมีส่วนร่วมด้วยเครื่องมือเขียนโค้ด AI จะต้อง ปฏิบัติตามกระบวนการพัฒนาและสไตล์การเขียนโค้ดของเคอร์เนลที่มีอยู่เดิมอย่างเคร่งครัด
- AI ไม่สามารถเพิ่มแท็ก Signed-off-by ได้ — ตามกฎหมายมีเพียงมนุษย์เท่านั้นที่รับรองได้ และ นักพัฒนามนุษย์ต้องรับผิดชอบทั้งหมดต่อการตรวจทานโค้ดที่ AI สร้าง การปฏิบัติตามไลเซนส์ และความรับผิดทางกฎหมาย
- โค้ดที่มี AI ช่วยในการมีส่วนร่วมต้องระบุ ชื่อโมเดล:เวอร์ชัน และเครื่องมือวิเคราะห์ ในรูปแบบเช่น
Assisted-by: Claude:claude-3-opus coccinelle sparse- เครื่องมือพัฒนาพื้นฐานอย่าง git, gcc, make ไม่ต้องระบุ
- การมีส่วนร่วมทั้งหมดต้องเข้ากันได้กับ GPL-2.0-only และต้องมี SPDX license identifier
1 ความคิดเห็น
ความเห็นจาก Hacker News
กฎพื้นฐานคือใช้ AI ได้ แต่ ความรับผิดชอบต่อคอมมิตเป็นของมนุษย์ทั้งหมด
ฟังดูเป็นเรื่องสามัญสำนึกที่โค้ดต้องเป็นไปตามเงื่อนไขไลเซนส์ เนื้อหาแบบนี้น่าจะเป็นสิ่งที่นักพัฒนาส่วนใหญ่เห็นด้วย
แต่ก็น่าตกใจที่ยังต้องเขียนระบุเรื่องแบบนี้ออกมา
ทุกวันนี้มีคนเอาโค้ดที่ AI สร้างมาใส่ในโอเพนซอร์สทั้งที่ตัวเองยังไม่เข้าใจมัน แล้วพอมีปัญหาทีหลังก็เลี่ยงความรับผิดชอบด้วยการบอกว่า “AI ทำมาแบบนั้น”
ในสถานการณ์แบบนี้จึงไม่แปลกที่ผู้ดูแลโครงการจะไม่ค่อยไว้ใจโค้ดจาก AI
บางคนมองว่านโยบายครั้งนี้ของ Torvalds เป็นการทรยศ และมีคนถึงขั้นบอกว่าถ้ามีการ merge โค้ดที่ AI สร้างเข้ามา พวกเขาจะไม่ร่วมพัฒนาอีกต่อไป
เพิ่งเห็น Greg KH เอา Sashiko AI reviewer มาใช้กับทุกแพตช์เมื่อไม่นานนี้ เลยรู้สึกว่านโยบายรอบนี้ดูตัดกันพอสมควร
AI reviewer ช่วยได้จริง แต่การถกเถียงก็ยังวนอยู่กับเรื่อง “ความรับผิดชอบต่อโค้ดจาก AI”
จุดที่อันตรายจริงคือปัญหา race condition หรือปัญหา lock ที่ AI มักตอบผิดอย่างมั่นใจ
เลยสงสัยว่านโยบายแบบนี้เป็นทางออกระยะยาว หรือเป็นเพียงมาตรการชั่วคราวก่อนที่ระบบอย่าง Sashiko จะช่วยให้ฝั่งผู้ดูแลกรองได้เข้มขึ้น
นโยบายที่ Torvalds ประกาศระบุชัดว่ามนุษย์ต้องเป็นผู้ ตรวจทาน ลงนาม และรับผิดชอบ ต่อโค้ดจาก AI
ดูเหมือนผ่านการตรวจจากฝ่ายกฎหมายมาแล้ว และอาจกลายเป็นมาตรฐานสำหรับการพัฒนาที่มี AI ช่วยในอนาคต
เคยมีครั้งที่แพตช์ของฉันถูกรวมเข้าไปในงานรีแฟกเตอร์ของคนอื่นแล้วชื่อฉันถูกใส่เข้ามาอัตโนมัติ
ในทางปฏิบัติใคร ๆ ก็เพิ่ม “Co-developed-by” หรือ “Signed-off-by” ได้ และ แทบไม่มีผลผูกพันทางกฎหมาย
LLM ไม่สามารถระบุที่มาได้ แล้วจะรับประกัน การปฏิบัติตามไลเซนส์ ได้อย่างไร นี่เป็นเรื่องที่น่าสงสัย
ผู้สร้างงานอาจเป็นผู้ใช้ AI หรืออาจเป็นผู้พัฒนาโมเดลก็ได้ ทำให้มีความไม่แน่นอนทางกฎหมายสูง
ถ้าเป็นแบบนี้ ในระยะยาวไลเซนส์ของเคอร์เนลเองก็อาจหมดความหมายไปได้
มีการพูดถึงประเด็นนี้ไว้ใน บทความ AI and copyright ของ KPMG Law
การเอาแท็ก “Assisted-by:” มาใช้ซ้ำเพื่อระบุโมเดล AI ดูแปลก ๆ
เดิมทีมันเป็นแท็กที่ใช้ระบุความช่วยเหลือจากคน แต่ตอนนี้กลับมี ความหมายสองแบบ จนชวนสับสน
ปกติแล้วการใช้แท็กแยกต่างหากอย่าง “AI-assistant:” จะพบได้ทั่วไปกว่า
ทิศทางที่ถูกต้องของโอเพนซอร์สคือ ทำให้ความเชื่อมโยงระหว่างมนุษย์กับเอเจนต์ชัดเจน และให้มนุษย์เป็นผู้รับผิดชอบการตรวจสอบขั้นสุดท้าย
ขอบคุณ Linus
เป็นเรื่องดีที่ได้เห็นหลักการสามัญสำนึกว่า ถึงจะเป็นโค้ดที่ AI สร้าง มนุษย์ก็ยังต้องรับผิดชอบ
มันเหมือนเป็นการกลับด้านของสุภาษิตเก่าว่า “ช่างที่ไม่ดีโทษเครื่องมือ”
สุดท้ายแล้ว ความรับผิดชอบในการเลือกและใช้เครื่องมือ ก็ยังเป็นของคนอยู่ดี
นโยบายนี้ไม่ได้ปกป้อง Linux จาก ความรับผิดเรื่องการละเมิดลิขสิทธิ์
มันคล้ายกับร้านค้าปลีกบอกว่า “เราเชื่อว่าซัพพลายเออร์คงเอา THC ออกแล้ว”
การประกาศว่าตัวเองไม่มีความผิดไม่ได้ทำให้ความรับผิดทางกฎหมายหายไป
ต่อให้มีโค้ดละเมิดรวมอยู่จริง คนหรือบริษัทที่ใช้ Linux ต่างหากที่จะเป็นเป้าของการฟ้องร้อง
ในทางปฏิบัติก็มีโอกาสน้อยมากที่คดีแบบนี้จะเกิดขึ้น
การเปรียบเทียบแบบนั้นจึงไม่ค่อยตรงนัก
ถ้ามนุษย์ตั้งใจจะทำ ก็สามารถ คัดลอกวางโค้ดปิดซอร์ส แล้วเซ็นรับรองได้เหมือนกัน
สุดท้ายปัญหาก็คือมนุษย์ที่โกหก
มีข้อกำหนดว่า “โค้ดทั้งหมดต้องเข้ากันได้กับ GPL-2.0-only”
แต่เมื่อ AI ถูกฝึกมาจากโค้ดหลายไลเซนส์ ก็ยังน่าสงสัยว่าจะรับประกันเรื่องนั้นได้อย่างไร
ถ้า AI ทำพลาด ความรับผิดนั้นก็เป็นของมนุษย์อยู่ดี ถ้าไม่มั่นใจก็ไม่ควรใช้ AI
อย่างไรก็ดี ถ้า AI ไปอ้างอิงโค้ดเบสอื่นระหว่างรันจริง ๆ ก็อาจเสี่ยงกว่าเดิม
แต่แนวทางแบบนี้กลับอาจ ทำให้ความหมายของไลเซนส์เจือจางลง
แค่มีหมายเหตุว่า “AI เขียน 100% แต่ฉันตรวจแล้ว” ก็อาจมีน้ำหนักทางกฎหมายไม่มากนัก
ยังมีข้อเสนอให้เปิดประเด็นขอ relicense เป็น public domain กับโปรเจกต์ “100% vibecoded” เพื่อให้คนตระหนักถึงปัญหานี้