การศึกษาพบว่า โค้ดที่เขียนโดย AI ซึ่งผ่านการทดสอบมาตรฐานอุตสาหกรรมครึ่งหนึ่ง จะถูกนักพัฒนามืออาชีพปฏิเสธ
การศึกษาล่าสุดจากบริษัท Pragmatic Coders เผยให้เห็นถึงความท้าทายสำคัญในการใช้ปัญญาประดิษฐ์ (AI) ในการพัฒนาซอฟต์แวร์ โดยพบว่าโค้ดที่สร้างโดย AI ซึ่งผ่านการทดสอบมาตรฐานของอุตสาหกรรมถึงครึ่งหนึ่ง จะถูกนักพัฒนามืออาชีพปฏิเสธหากนำมาใช้งานจริง การศึกษานี้ชี้ให้เห็นถึงช่องว่างระหว่างประสิทธิภาพในการแก้ปัญหาทางเทคนิคของ AI กับมาตรฐานคุณภาพที่ยอมรับได้ในสภาพแวดล้อมการผลิตซอฟต์แวร์
วิธีการศึกษาของ Pragmatic Coders
ทีมวิจัยจาก Pragmatic Coders ซึ่งเป็นบริษัทพัฒนาซอฟต์แวร์ในโปแลนด์ ได้ทำการทดลองโดยเลือกโจทย์ปัญหาการเขียนโปรแกรม 50 โจทย์จากแพลตฟอร์มยอดนิยมสองแห่ง ได้แก่ CodinGame และ Codewars แพลตฟอร์มเหล่านี้ใช้กันอย่างแพร่หลายในการฝึกฝนและทดสอบทักษะการเขียนโค้ด โดยมีผู้ใช้งานหลายล้านคนทั่วโลก
ต่อมา ทีมวิจัยใช้โมเดล AI ชั้นนำสองตัว ได้แก่ GPT-4 จาก OpenAI และ Claude 3 Opus จาก Anthropic เพื่อสร้างโค้ดแก้โจทย์เหล่านี้ โค้ดที่ได้จะถูกทดสอบให้ผ่านเกณฑ์ของแพลตฟอร์มต้นทางก่อน จากนั้นจึงนำมาทดสอบเพิ่มเติมด้วย SonarQube ซึ่งเป็นเครื่องมือวิเคราะห์คุณภาพโค้ดมาตรฐานอุตสาหกรรม SonarQube ตรวจสอบประเด็นต่างๆ เช่น ความปลอดภัย ช่องโหว่ ความซับซ้อนของโค้ด และแนวปฏิบัติที่ดี (best practices) เฉพาะโค้ดที่ผ่านการทดสอบทั้งสองขั้นตอนนี้เท่านั้นจึงเข้าสู่ขั้นตอนถัดไป
ในขั้นตอนสุดท้าย Pragmatic Coders ส่งโค้ดทั้ง 50 ชิ้นให้กับนักพัฒนาซอฟต์แวร์ที่มีประสบการณ์เฉลี่ย 12 ปี จำนวน 45 คน จาก 18 ประเทศ โดยนักพัฒนาเหล่านี้มาจากบริษัทชั้นนำ เช่น Google, Microsoft, Uber และ IBM แต่ละคนต้องตรวจสอบโค้ด 5-6 ชิ้น โดยให้คะแนนคุณภาพตั้งแต่ 1 ถึง 5 (1 = ไม่ยอมรับ 5 = ยอดเยี่ยม) และให้เหตุผลในการตัดสิน
ผลการศึกษาที่น่าตกใจ
ผลปรากฏว่า นักพัฒนามืออาชีพปฏิเสธโค้ดที่สร้างโดย AI ถึง 49% โดยให้คะแนนต่ำกว่า 3 คะแนน โค้ดเหล่านี้แม้จะแก้โจทย์ได้ถูกต้องและผ่าน SonarQube แต่กลับไม่ผ่านด่านสุดท้ายคือการตรวจสอบจากมนุษย์ คะแนนเฉลี่ยของโค้ดอยู่ที่ 2.9 จาก 5 ซึ่งถือว่าต่ำกว่ามาตรฐานที่ยอมรับได้
เหตุผลหลักที่นักพัฒนาปฏิเสธโค้ดมีดังนี้:
- การทำซ้ำโค้ด (Duplication): 21% ของกรณีปฏิเสธ เนื่องจาก AI มักคัดลอกโค้ดส่วนที่คล้ายกันแทนการสร้างฟังก์ชันที่ใช้ซ้ำได้
- ความซับซ้อนของโค้ด (Complexity): 19% AI สร้างโค้ดที่ยาวและซับซ้อนเกินจำเป็น แทนที่จะใช้โครงสร้างที่เรียบง่ายและอ่านง่าย
- ช่องโหว่ด้านความปลอดภัย (Security Vulnerabilities): 17% พบปัญหาเช่น การใช้ฟังก์ชันที่ไม่ปลอดภัยหรือการจัดการข้อมูลที่เสี่ยงต่อการโจมตี
- แนวปฏิบัติที่ไม่ดี (Bad Practices): 15% รวมถึงการตั้งชื่อตัวแปรที่ไม่ชัดเจน การขาดการจัดการข้อผิดพลาด (error handling) และการใช้ไลบรารีที่ไม่เหมาะสม
- ปัญหาอื่นๆ: เช่น ประสิทธิภาพต่ำและการขาดเอกสารประกอบโค้ด
แม้แต่โมเดล AI ชั้นนำอย่าง Claude 3 Opus ก็ยังมีโค้ดที่ถูกปฏิเสธ 47% ในขณะที่ GPT-4 ถูกปฏิเสธ 51% นอกจากนี้ SonarQube ตรวจพบปัญหา 287 รายการในโค้ดทั้งหมด ซึ่งส่วนใหญ่เป็นปัญหาความซับซ้อนและการทำซ้ำ
มุมมองจากผู้เชี่ยวชาญ
Wojciech Bogucki ผู้ร่วมก่อตั้ง Pragmatic Coders กล่าวว่า “AI สามารถแก้โจทย์ได้ดีเยี่ยม แต่โค้ดที่ได้มักไม่เหมาะสำหรับการใช้งานจริงในโปรเจกต์ใหญ่ มันขาดความเข้าใจบริบทและมาตรฐานอุตสาหกรรม” นักพัฒนาที่เข้าร่วมตรวจสอบคนหนึ่งแสดงความเห็นว่า “โค้ดจาก AI ดูเหมือนถูกเขียนโดยมือใหม่ที่รีบร้อน มันทำงานได้แต่ไม่น่าเชื่อถือในระยะยาว”
การศึกษายังเปรียบเทียบกับโค้ดจากนักพัฒนามนุษย์ โดยพบว่าโค้ดจากมนุษย์มีคะแนนเฉลี่ยสูงกว่าอย่างชัดเจน Pragmatic Coders เน้นย้ำว่า AI เหมาะสำหรับการช่วยเหลือเบื้องต้น เช่น การสร้างโครงร่างโค้ดหรือไอเดีย แต่ไม่ควรใช้แทนมนุษย์โดยตรง โดยเฉพาะในโปรเจกต์ที่ต้องการความน่าเชื่อถือสูง
ข้อเสนอแนะสำหรับอุตสาหกรรม
การศึกษานี้ชี้ให้เห็นความจำเป็นในการปรับปรุงเครื่องมือ AI ให้เข้าใจมาตรฐานคุณภาพโค้ดมากขึ้น Pragmatic Coders แนะนำให้บริษัทต่างๆ ใช้กระบวนการตรวจสอบหลายชั้น (multi-stage review) เมื่อนำ AI มาใช้ในการพัฒนา รวมถึงการฝึกอบรมโมเดลให้คำนึงถึง best practices และการทดสอบในสภาพแวดล้อมจริงมากขึ้น
นอกจากนี้ ยังมีการเผยแพร่รายงานฉบับเต็มพร้อมตัวอย่างโค้ดและผลตรวจสอบที่ https://pragmaticcoders.com/blog/ai-generated-code ซึ่งนักพัฒนาสามารถนำไปศึกษาต่อได้ การศึกษานี้ตีพิมพ์เมื่อวันที่ 20 พฤษภาคม 2024 และได้รับความสนใจอย่างกว้างขวางในชุมชนนักพัฒนา
สรุปแล้ว แม้ AI จะปฏิวัติวงการพัฒนาซอฟต์แวร์ แต่การศึกษานี้ยืนยันว่ามันยังห่างไกลจากความสมบูรณ์แบบ โค้ดจาก AI ต้องผ่านการตรวจสอบจากมนุษย์เพื่อให้มั่นใจในคุณภาพและความปลอดภัย ซึ่งเป็นบทเรียนสำคัญสำหรับองค์กรที่กำลังนำเทคโนโลยีนี้มาใช้ในกระบวนการธุรกิจ
(จำนวนคำประมาณ 728 คำ)
This Article is sponsored by Gnoppix AI (https://www.gnoppix.org)