มุมมอง
DeepMind เปิดตัว AlphaCode ปัญญาประดิษฐ์เขียนโค้ด โดยอาศัยเพียงอินพุตเป็นโจทย์เหมือนการทดสอบเขียนโค้ดทั่วๆ ไปที่มีคำบรรยาย และตัวอย่างอินพุตกับเอาท์พุตของโปรแกรมให้เท่านั้น ผลทดสอบบนแพลตฟอร์ม Codeforces ปรากฎว่า AlphaCode มีความสามารถเขียนโปรแกรมในระดับปานกลาง (median) เมื่อเทียบกับผู้ร่วมแข่งขันอื่นๆ ที่เป็นมนุษย์
ตัว AlphaCode เองเป็นปัญญาประดิษฐ์ในกลุ่ม Transformer ที่ใช้ประมวลผลด้านภาษาเป็นหลัก แล้วฝึกปัญญาประดิษฐ์ด้วยโค้ดจำนวนมากถึง 715.1GB จาก GitHub โดยเลือกโค้ดภาษายอดนิยม ได้แก่ C++, C#, Go, Java, JavaScript, Lua, PHP, Python, Ruby, Rust, Scala, และ TypeScript ทีมงานพบว่าการใส่โค้ดเท่านี้ตรงๆ ก็ทำให้ปัญญาประดิษฐ์เขียนโปรแกรมง่ายๆ ได้แล้ว
แต่เพื่อพัฒนาปัญญาประดิษฐ์ต่อ ทีมงานดูดข้อมูลจากการแข่งขันต่างๆ ขึ้นมาเป็นชุดข้อมูล CodeContests โดยรวมจาก Codeforces, Description2Code, และ CodeNet โดยต้องระวังว่าจะไม่มีโจทย์ข้อใดที่ปัญญาประดิษฐ์เคยเห็น ด้วยการแบ่งชุด validation ให้เป็นโจทย์ที่ใหม่ที่สุด ข้อมูลการฝึกนี้ใส่ทั้งตัวโจทย์เอง, ข้อมูลอินพุตตัวอย่าง, ข้อมูลทดสอบที่ปกติจะไม่เห็นระหว่างการทดสอบ, คำตอบจากผู้เข้าแข่งขันทั้งที่ถูกและผิด ปัญหาสำคัญคือข้อมูลทดสอบไม่มากพอ ทำให้หลายครั้งการตรวจโค้ดมองว่าคำตอบถูกทั้งที่ตำตอบผิด หรือบางครั้งโค้ดก็ช้าเกินไป ทางแก้ของทีมงานคือการสร้างชุดตรวจคำตอบจากโปรแกรมที่ถูกต้องเพิ่มเติม
DeepMind สร้างโมเดลปัญญาประดิษฐ์ AlphaCode มาหลายตัว และแต่ละตัวเมื่อใส่อินพุตเป็นโจทย์เข้าไปแล้วก็สามารถสร้างโค้ดคำตอบออกมาได้นับพันรูปแบบ จากนั้นก็นำโค้ดคำตอบที่ได้มากรองด้วยตัวอย่างอินพุตในโจทย์เอง ก็จะกรองคำตอบที่ AlphaCode สร้างออกมาได้ถึง 99% (บางข้อก็ไม่มีคำตอบไหนผ่านเลย) ที่เหลือจะนำโค้ดคำตอบมาจับกลุ่มที่ด้วยการสร้างอินพุตเพิ่มเติม แล้วดูว่าโค้ดคำตอบกลุ่มใดให้เอาท์พุตเหมือนๆ กันบ้าง แล้วเลือกส่งโค้ดคำตอบจากกลุ่มที่ใหญ่ที่สุดก่อนเสมอ เนื่องจากโค้ดคำตอบที่ผิดสามารถผิดได้หลากหลายรูปแบบ จึงมักไม่จับกลุ่มกัน หากส่งตรวจแล้วพบว่าผิดก็เลือกโค้ดคำตอบจากกลุ่มที่เล็กลงเรื่อยๆ
ผลสุดท้ายของการทดสอบคือการส่ง AlphaCode เข้าร่วมทดสอบการแข่งขัน Codeforce ในช่วงสัปดาห์ที่ผ่านมาทั้งหมด 10 รอบ แล้วดูคะแนนที่ได้ ผลพบว่า AlpahCode ทำคะแนนได้ในกลุ่ม 54% แรกของผู้เข้าแข่งขันทั้งหมด นับว่าใกล้เคียงระดับผู้เข้าแข่งขันระดับกลางๆ แล้ว
AlphaCode ที่เข้าร่วมแข่งขันใช้ 3 บัญชี คือ SelectorUnlimited, WaggleCollide, และ AngularNumeric สามารถเข้าไปดูคำตอบที่ AlphaCode ส่งเข้าแข่งขันได้
ที่มา - DeepMind