บริษัท Span ได้เปิดตัวเครื่องมือตรวจจับโค้ด AI ที่อ้างว่ามีความแม่นยำ 95% ในการระบุโค้ดที่สร้างโดยเครื่องจักร เครื่องมือนี้ใช้โมเดลแมชชีนเลิร์นนิงที่ได้รับการฝึกฝนจากตัวอย่างโค้ดหลายล้านชิ้น เพื่อช่วยให้ทีมวิศวกรรมเข้าใจว่ามีโค้ดที่สร้างโดย AI อยู่เท่าไหร่ในโปรเจกต์ของพวกเขา อย่างไรก็ตาม การทดสอบโดยชุมชนได้เผยให้เห็นจุดอ่อนที่สำคัญซึ่งทำให้เกิดคำถามเกี่ยวกับประสิทธิภาพในการใช้งานจริง
เมตริกประสิทธิภาพ:
- ความแม่นยำโดยรวม: 95%
- อัตราการเรียกคืน: 91.5%
- คะแนน F1: 93.3%
- ข้อมูลการฝึกอบรม: ตัวอย่างโค้ดที่เขียนโดย AI และมนุษย์หลายล้านตัวอย่าง
เทคนิค Prompting ธรรมดาหลอกระบบได้
การค้นพบที่น่าประหลาดใจที่สุดมาจากการทดสอบของชุมชนที่แสดงให้เห็นว่าเครื่องมือตรวจจับนี้สามารถถูกจัดการได้ง่ายเพียงใด ผู้ใช้คนหนึ่งได้สาธิตโดยการขอให้ ChatGPT เขียนโค้ดในสองสไตล์ที่แตกต่างกัน - หนึ่งเป็นแบบสะอาดและเป็นมืออาชีพ อีกแบบหนึ่งเป็นแบบยุ่งเหยิงเหมือนนักศึกษาปริญญาตรี ผลลัพธ์ที่ได้แตกต่างกันอย่างมาก โค้ดที่สะอาดถูกตั้งธงว่าเป็นโค้ดที่สร้างโดย AI 100% ในขณะที่เวอร์ชันที่ยุ่งเหยิงซึ่งมีการจัดรูปแบบที่ไม่ดีและคอมเมนต์แบบสบายๆ ได้คะแนนเป็นโค้ดที่สร้างโดย AI 0%
การค้นพบนี้เน้นย้ำถึงปัญหาพื้นฐานของแนวทางการตรวจจับ โมเดลดูเหมือนจะพึ่งพาตัวบ่งชี้คุณภาพโค้ดอย่างมาก เช่น การจัดรูปแบบที่เหมาะสม คอมเมนต์ที่ครอบคลุม และโครงสร้างที่สะอาด ซึ่งเป็นลักษณะที่แสดงถึงแนวทางปฏิบัติการเขียนโค้ดที่ดีอย่างน่าขัน
ความขัดแย้งของ Clean Code
วิธีการตรวจจับนี้สร้างสถานการณ์ที่ผิดปกติที่การเขียนโค้ดคุณภาพสูงอาจทำงานในทางที่เป็นโทษต่อนักพัฒนา สมาชิกชุมชนได้แสดงความกังวลเกี่ยวกับว่าสิ่งนี้สร้างแรงจูงใจเชิงลบสำหรับแนวทางปฏิบัติการเขียนโค้ดด้วยมือหรือไม่
สิ่งนั้นให้แรงจูงใจกับคนที่เขียนด้วยมือให้เขียนโค้ดที่แย่กว่า มีโครงสร้างที่ไม่ดี เป็นหลักฐานว่าพวกเขาไม่ได้ใช้ AI ในการสร้างโค้ดหรือไม่?
ความขัดแย้งนี้กลายเป็นเรื่องซับซ้อนมากขึ้นเมื่อพิจารณาว่าโมเดล AI ได้รับการฝึกฝนจากโค้ดที่เขียนโดยมนุษย์เป็นหลัก แต่เครื่องมือตรวจจับกลับถือว่ามาตรฐานการเขียนโค้ดของมนุษย์บางอย่างสมบูรณ์เกินไปที่จะเป็นของมนุษย์
การรองรับภาษาที่จำกัดและข้อจำกัดทางเทคนิค
ปัจจุบันเครื่องมือตรวจจับรองรับเฉพาะ Python, TypeScript และ JavaScript เท่านั้น แม้ว่าบริษัทจะวางแผนที่จะเพิ่มการรองรับ Java, C# และ Ruby เครื่องมือนี้ทำงานในระดับชิ้นส่วนมากกว่าการวิเคราะห์ทีละบรรทัด และตรวจสอบทั้งโค้ดและคอมเมนต์ด้วยกัน ซึ่งอาจตั้งธงนักพัฒนาที่ใช้ AI เฉพาะสำหรับเอกสารประกอบในขณะที่เขียนโค้ดด้วยมือ
บริษัทได้แบ่งปันเมตริกประสิทธิภาพบางอย่างนอกเหนือจากตัวเลขความแม่นยำหลัก โดยรายงานอัตรา recall 91.5% และคะแนน F1 93.3% อย่างไรก็ตาม สมาชิกชุมชนได้ตั้งคำถามว่าเมตริกเหล่านี้แสดงถึงประสิทธิภาพในโลกแห่งความเป็นจริงอย่างเพียงพอหรือไม่ โดยเฉพาะอย่างยิ่งเมื่อพิจารณาจากความเปราะบางที่แสดงให้เห็นต่อเทคนิคการจัดการแบบง่ายๆ
การรองรับภาษาโปรแกรมในปัจจุบัน:
- Python ✓
- TypeScript ✓
- JavaScript ✓
- Java (อยู่ในแผน)
- C (อยู่ในแผน)
- Ruby (อยู่ในแผน)
การประยุกต์ใช้ในทางปฏิบัติแม้จะมีข้อจำกัด
แม้จะมีความกังวลเหล่านี้ เครื่องมือนี้ดูเหมือนจะได้รับการออกแบบมาสำหรับการใช้งานขององค์กรเป็นหลักมากกว่าการควบคุมโค้ดของบุคคล ทีมวิศวกรรมสามารถใช้มันเพื่อติดตามแนวโน้มการใช้งาน AI ตรวจสอบรูปแบบคุณภาพโค้ด และเข้าใจผลกระทบของผู้ช่วยเขียนโค้ด AI ต่อกระบวนการพัฒนาของพวกเขา
ความท้าทายในการตรวจจับสะท้อนถึงแนวโน้มที่กว้างขึ้นในการพัฒนา AI ที่เส้นแบ่งระหว่างเนื้อหาที่สร้างโดยมนุษย์และเครื่องจักรยังคงเบลอ เมื่อโมเดล AI ดีขึ้นและผลิตผลลัพธ์ที่เหมือนมนุษย์มากขึ้น การตรวจจับจึงกลายเป็นเรื่องยากขึ้นโดยพื้นฐาน ซึ่งเป็นข้อจำกัดที่อาจเป็นเรื่องทางคณิตศาสตร์มากกว่าเพียงแค่เทคนิค