ทำไม AI เขียน Code ให้แล้วรันผ่านแต่ Logic ผิด
เมื่อเดือนเมษายนปี 2026 ผมกำลังหัวเสียกับการพัฒนาระบบจัดการคลังสินค้าสำหรับบริษัท LogisticMax ซึ่งเป็นบริษัทขนส่งขนาดใหญ่ เราใช้ AI ช่วยเขียน Code ด้วยเครื่องมือใหม่ล่าสุดที่ชื่อว่า "Codex Pro" ของ Synapse Solutions Codex Pro ขึ้นชื่อเรื่องความเร็วในการสร้าง Code และความสามารถในการทำงานกับ Python 3.11 ได้ดี ผมมอบหมายให้ทีม junior developer 2 คน สร้าง module สำหรับคำนวณต้นทุนการขนส่ง โดยให้ Codex Pro สร้าง Code ที่คำนวณจากระยะทาง, น้ำหนัก, และประเภทสินค้า หลังจากรัน Code ผ่านแล้ว พบว่าผลลัพธ์ที่ได้ผิดเพี้ยนไปจากค่าที่ควรจะเป็นอย่างมาก บางครั้งคิดต้นทุนสูงเกินจริง บางครั้งก็ต่ำเกินไป ทำให้ระบบการจัดการคลังสินค้าทำงานผิดพลาดและส่งผลกระทบต่อการวางแผนการขนส่งทั้งหมด
ปัญหาหลักคือ Codex Pro สร้าง Code ที่ "รันผ่านได้" นั่นหมายความว่า Code นั้นถูกต้องตามไวยากรณ์ของ Python 3.11 และไม่เกิด error ใดๆ แต่ Logic ที่ใช้ในการคำนวณกลับไม่ถูกต้อง ซึ่งเป็นสิ่งที่คาดหวังน้อยมากในโลกของการพัฒนาซอฟต์แวร์ โดยเฉพาะอย่างยิ่งในระบบที่ต้องการความแม่นยำสูง การที่ AI สร้าง Code ที่รันผ่านแต่ Logic ผิดนั้น สะท้อนให้เห็นถึงข้อจำกัดของ AI ในการทำความเข้าใจความซับซ้อนของปัญหาทางธุรกิจ และความจำเป็นในการตรวจสอบและแก้ไข Code ที่สร้างโดย AI อย่างละเอียดถี่ถ้วน
ความเข้าใจผิดของ AI เกี่ยวกับ Context
Codex Pro พยายามสร้าง Code โดยอิงจากข้อมูลที่ให้มา แต่ไม่ได้เข้าใจบริบทโดยรวมของปัญหา การให้ข้อมูลที่เฉพาะเจาะจงเกินไป (เช่น "คำนวณต้นทุนการขนส่งสินค้าประเภท A, B, และ C") อาจทำให้ AI สร้าง Code ที่ไม่ครอบคลุมกรณีอื่นๆ ที่อาจเกิดขึ้นได้ จริงๆ ผมไม่ค่อยชอบวิธีนี้เพราะมันเหมือนสั่งให้ AI ทำตามคำสั่งอย่างเดียวโดยไม่คิดวิเคราะห์
# Codex Pro สร้าง Code นี้ (ตัวอย่าง)
def calculate_cost(product_type):
if product_type == "A":
cost_per_km = 10
elif product_type == "B":
cost_per_km = 15
else:
cost_per_km = 20
return cost_per_km * 100 # ไม่มีการคำนึงถึงน้ำหนักหรือระยะทาง
ตัวอย่างนี้แสดงให้เห็นว่า AI ไม่ได้คำนึงถึงปัจจัยอื่นๆ ที่อาจมีผลต่อต้นทุนการขนส่ง เช่น น้ำหนักของสินค้า หรือระยะทางที่เดินทาง
ปัญหาเรื่องการจัดการกับ Edge Cases
AI มักจะเน้นการสร้าง Code ที่ทำงานได้กับข้อมูลที่ใช้ในการ training หรือข้อมูลที่ให้มาใน prompt แต่ไม่สามารถจัดการกับ “edge cases” หรือกรณีพิเศษที่ไม่เคยเจอมาก่อนได้ ตอนที่ผมให้ Codex Pro สร้าง Code สำหรับคำนวณต้นทุนการขนส่งสินค้าที่ต้องผ่านพื้นที่พิเศษ เช่น เขตอุตสาหกรรม หรือเขตที่มีข้อจำกัดในการขนส่ง AI ไม่ได้สร้าง Code ที่สามารถคำนวณต้นทุนเพิ่มเติมที่เกี่ยวข้องกับพื้นที่เหล่านั้น
# Codex Pro สร้าง Code นี้ (ตัวอย่าง)
def calculate_cost(product_type, location):
if product_type == "A":
cost_per_km = 10
else:
cost_per_km = 15
return cost_per_km * 100
ข้อผิดพลาดนี้เกิดขึ้นเพราะ AI ไม่ได้พิจารณาถึงปัจจัยที่แตกต่างกันในแต่ละพื้นที่
การขาดการตรวจสอบและ Validation
การที่ Codex Pro สร้าง Code ที่ถูกต้องตามไวยากรณ์ แต่ Logic ผิดพลาด เป็นผลมาจากความบกพร่องในการตรวจสอบและ validation ของ Code ที่สร้างโดย AI เราควรมีกระบวนการตรวจสอบ Code ที่สร้างโดย AI อย่างละเอียดถี่ถ้วน โดยเฉพาะอย่างยิ่ง Code ที่เกี่ยวข้องกับระบบที่ต้องการความแม่นยำสูง การใช้ unit test และ integration test เป็นสิ่งสำคัญมากในการตรวจสอบ Code ที่สร้างโดย AI
ใน LogisticMax เราเริ่มต้นด้วยการใช้ Codex Pro สร้าง Code พื้นฐาน แต่เราไม่ได้ใช้ unit test หรือ integration test เพื่อตรวจสอบ Code ที่สร้าง ผลที่ตามมาคือ เราไม่สามารถตรวจพบข้อผิดพลาดใน Logic ของ Code ได้จนกระทั่งระบบทำงานผิดพลาด
สิ่งที่ควรระวัง / ข้อผิดพลาดที่เจอบ่อย
จากประสบการณ์ที่ผ่านมา ผมสรุปได้ว่ามีข้อผิดพลาดที่เจอบ่อยเมื่อใช้ AI ช่วยเขียน Code ดังนี้:
- การขาดความเข้าใจบริบท: AI ไม่เข้าใจบริบทของปัญหา ทำให้สร้าง Code ที่ไม่ครอบคลุมกรณีต่างๆ ที่อาจเกิดขึ้นได้
- การละเลย Edge Cases: AI ไม่สามารถจัดการกับ edge cases หรือกรณีพิเศษที่ไม่เคยเจอมาก่อนได้
- การขาดการตรวจสอบ: AI สร้าง Code ที่ถูกต้องตามไวยากรณ์ แต่ Logic ผิดพลาด การตรวจสอบ Code อย่างละเอียดถี่ถ้วนเป็นสิ่งสำคัญ
- การพึ่งพาข้อมูล Training: AI สร้าง Code โดยอิงจากข้อมูลที่ใช้ในการ training ซึ่งอาจไม่ครอบคลุมทุกกรณี
Codex Pro เป็นเครื่องมือที่มีประโยชน์ แต่ไม่ใช่เครื่องมือที่สามารถใช้แทนนักพัฒนาซอฟต์แวร์ได้อย่างสมบูรณ์ AI สามารถช่วยในการสร้าง Code พื้นฐานได้ แต่เรายังคงต้องใช้ความเชี่ยวชาญในการตรวจสอบและแก้ไข Code ที่สร้างโดย AI อย่างละเอียดถี่ถ้วน
Use Case: Codex Pro เหมาะสำหรับนักพัฒนาซอฟต์แวร์ที่มีประสบการณ์ในการเขียน Code ด้วย Python 3.11 และต้องการลดเวลาในการสร้าง Code พื้นฐาน อย่างไรก็ตาม ไม่เหมาะสำหรับโปรเจกต์ที่ต้องการความแม่นยำสูง หรือโปรเจกต์ที่ต้องการ Logic ที่ซับซ้อน
ตัวเลข: 85% ของ Code ที่สร้างโดย Codex Pro ต้องการการแก้ไขเพิ่มเติมเพื่อปรับปรุง Logic และเพิ่มความถูกต้อง
ข้อควรจำ: การใช้ AI ช่วยเขียน Code ไม่ได้หมายความว่าเราไม่ต้องใช้ความเชี่ยวชาญของเรา เรายังคงต้องเป็นผู้ตรวจสอบและแก้ไข Code ที่สร้างโดย AI อย่างละเอียดถี่ถ้วน
คำถาม
คำถาม 1: AI สามารถสร้าง Code ที่มีความซับซ้อนได้หรือไม่?
คำตอบ: ในปี 2026 AI สามารถสร้าง Code ที่มีความซับซ้อนระดับหนึ่งได้ แต่ Code ที่มีความซับซ้อนมากยังคงต้องได้รับการตรวจสอบและแก้ไขโดยนักพัฒนาซอฟต์แวร์
คำถาม 2: การใช้ AI ช่วยเขียน Code จะทำให้งานของนักพัฒนาซอฟต์แวร์ง่ายขึ้นหรือไม่?
คำตอบ: AI ช่วยลดเวลาในการสร้าง Code พื้นฐาน แต่ยังคงต้องใช้ความเชี่ยวชาญในการตรวจสอบและแก้ไข Code ที่สร้างโดย AI
คำถาม 3: AI จะสามารถแทนนักพัฒนาซอฟต์แวร์ได้อย่างสมบูรณ์ในอนาคตได้หรือไม่?
คำตอบ: แม้ว่า AI จะมีความสามารถในการพัฒนาซอฟต์แวร์มากขึ้น แต่ยังคงมีความท้าทายในการสร้าง Code ที่มีความซับซ้อนและต้องการ Logic ที่มีสไตล์ของมนุษย์