- นักพัฒนาจำนวนมากพยายามใช้ LLM เขียนโค้ดแล้ว เจออาการภาพหลอน (Hallucination) จนหมดความเชื่อมั่น
- เป็นเรื่องปกติที่ LLM จะสร้างเมธอดหรือไลบรารีที่ไม่มีอยู่จริงขึ้นมา
- แต่ภาพหลอนในโค้ดเป็น ภาพหลอนประเภทที่อันตรายน้อยที่สุด
- สิ่งที่อันตรายที่สุดคือกรณีที่ LLM สร้างข้อผิดพลาดขึ้นมา แต่คอมไพเลอร์หรืออินเทอร์พรีเตอร์ไม่สามารถตรวจจับได้ทันที
- เมธอดที่ถูกสร้างขึ้นมาหลอกๆ มักทำให้เกิดข้อผิดพลาดทันทีเมื่อรัน จึงตรวจพบได้ง่าย
- และยังสามารถนำข้อความ error ป้อนกลับเข้า LLM เพื่อให้แก้ไขอัตโนมัติได้
- ต่างจากภาพหลอนในข้อความทั่วไป โค้ดนั้น ตรวจสอบข้อเท็จจริงได้ด้วยการรันจริง
- LLM ที่มีความสามารถแก้ข้อผิดพลาดอัตโนมัติ
- เครื่องมืออย่าง ChatGPT Code Interpreter, Claude Code สามารถรันโค้ดที่ LLM เขียน ตรวจจับข้อผิดพลาด และแก้ไขด้วยตัวเองได้
- การประเมินโค้ดที่ LLM เขียนโดยไม่ลองรันก่อนเป็นเรื่องไม่มีประสิทธิภาพ
- นักพัฒนาบางคนพยายามปฏิเสธเทคโนโลยีนี้ไปเลย เพียงเพราะ LLM สร้างเมธอดหลอนขึ้นมา
- แต่หากต้องการใช้งานให้มีประสิทธิภาพ การเรียนรู้และการทดลองเป็นสิ่งจำเป็น
- ผู้เขียนศึกษาการเขียนโค้ดด้วย AI มานานกว่า 2 ปี และยังคงเรียนรู้เทคนิคใหม่ๆ อยู่เสมอ
- การทดสอบโค้ดด้วยตนเองยังจำเป็น
- แค่โค้ดรันได้ ไม่ได้แปลว่าจะทำงานตรงตามที่คาดหวัง
- การรีวิวโค้ดหรือการทดสอบอัตโนมัติเพียงอย่างเดียว ไม่สามารถยืนยันความถูกต้องของโค้ดได้ทั้งหมด
- กระบวนการรันและตรวจสอบด้วยตนเองเป็นสิ่งจำเป็น
- โค้ดที่ LLM สร้างมักอ่านง่ายมาก จนอาจทำให้เผลอไว้ใจเกินไป
- โค้ดที่มนุษย์เขียนก็เช่นกัน ไม่ควรเชื่อถือจนกว่าจะได้ลองรันด้วยตัวเอง
- วิธีลดภาพหลอน
- ใช้โมเดลอื่น: เลือกโมเดลที่มีข้อมูลฝึกเกี่ยวกับแพลตฟอร์มเฉพาะนั้นมากกว่า
- เช่น Claude 3.7 Sonnet (เปิด thinking mode), OpenAI o3-mini-high, GPT-4o (พร้อม Python Code Interpreter)
- ใช้บริบท (context): ถึง LLM จะไม่รู้จักไลบรารีบางตัว แต่หากให้โค้ดตัวอย่าง ก็สามารถเรียนรู้รูปแบบได้
- เลือกเทคโนโลยีที่เสถียร: หากเลือกใช้ไลบรารีเก่าและมั่นคง LLM มักมีแนวโน้มจะจัดการได้ดีกว่า
- ความสำคัญของการรีวิวโค้ด
- ผู้เขียนโต้แย้งคำกล่าวที่ว่า "ถ้าต้องรีวิวโค้ดที่ LLM เขียนทั้งหมด การเขียนเองยังเร็วกว่า"
- คำพูดนี้อาจสะท้อนถึงการขาดทักษะในการรีวิวโค้ด
- การรีวิวโค้ดที่ LLM สร้างอาจเป็นโอกาสที่ดีในการพัฒนาฝีมือ
- โบนัส: ฟีดแบ็กจาก Claude 3.7 Sonnet
- ผู้เขียนขอให้ Claude 3.7 Sonnet ใน "extended thinking mode" ช่วยตรวจร่างบทความบล็อก
- โดยขอให้ช่วยดูว่า "ตรรกะของบทความนี้น่าเชื่อถือหรือไม่ มีจุดไหนที่ควรปรับปรุง หรือมีอะไรตกหล่นหรือไม่"
- Claude ช่วยปรับโทนของร่างบทความให้นุ่มนวลขึ้น
- ลิงก์บทสนทนาฟีดแบ็กจาก Claude
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผู้เขียนเห็นด้วยกับบทความก่อนหน้า แต่ไม่เห็นด้วยกับบทความนี้
ต่อให้โค้ดที่ LLM สร้างจะทำงานได้ดี คนที่ไม่ได้เป็นผู้เขียนก็ยังหาบั๊กหรือข้อบกพร่องเชิงตรรกะได้ยาก
โค้ดที่ LLM สร้างดูสะอาด แต่กลับทำให้ต้องใช้เวลากับ QA และการเก็บงานมากขึ้น
The Primeagen และ Casey Muratori ตรวจดูผลลัพธ์จากเครื่องมือสร้างโค้ด LLM รุ่นล่าสุด
อีกหมวดของความผิดพลาดที่ Simon มองข้ามไป คืออาการหลอนที่ทำให้โมเดลลืมฟังก์ชันบางอย่าง
เมธอดที่ถูกหลอนขึ้นมาถือเป็นอุปสรรคเล็กน้อย และเมื่อมีคนบ่นเรื่องนี้ ก็มักถูกสมมติว่าแทบไม่ได้ใช้เวลาเรียนรู้วิธีใช้ระบบอย่างมีประสิทธิภาพเลย
อาการหลอนเองไม่ใช่ความเสี่ยงที่ใหญ่ที่สุดที่ LLM ก่อขึ้น
ถือว่าอันตรายน้อยกว่าเฉพาะในบริบทจำกัดของ error ตอนคอมไพล์เท่านั้น
การจะได้ผลลัพธ์ที่ดีจาก LLM ต้องใช้ความพยายามมาก
ประสบการณ์การเขียนโค้ดเพื่อหา 'คลินิกหลัก' ของผู้ป่วยในศูนย์การแพทย์