ทำได้ทุกอย่าง! Microsoft Research เผยงานวิจัยใช้ Deep Learning เขียนโปรแกรมตาม output ที่อยากได้

ทีมวิจัยจาก Microsoft Research ประสบความสำเร็จในการใช้ Deep Learning ในการสังเคราะห์โปรแกรม (Program Synthesis) ตามที่ผู้ใช้ต้องการจากคู่ input และ output ที่ผู้ใช้กำหนด โดยโค้ดที่ออกมาจะอยู่ในภาษา domain specific language (DSL)

Deep Learning ดังกล่าวทำการสังเคราะห์โปรแกรมตามความต้องการของผู้ใช้ (intent) ที่ถูกกำหนดโดยคู่ input และ output ยกตัวอย่างเช่นในกรณีที่ผู้ใช้ต้องการ format ข้อความในรูปแบบใดรูปแบบหนึ่ง ผู้ใช้สามารถป้อน input และ output ในลักษณะเดียวกับตารางข้างล่าง

Credit: Microsoft Research

Deep Learning นี้ก็จะเขียนโปรแกรมออกมาให้ดังนี้

Concat(
   ToCase(
       GetToken(
           input,
           Type=Word,
           Index=-1),
       Type=Proper),
   Const(", "),
   ToCase(
       SubString(
         GetToken(
             input,
             Type=Word,
             Index=1),
         Start=0,
         End=1),
       Type=Proper),
   Const("."))

ความท้าทาย 2 ข้อใหญ่ที่ทีมวิจัยต้องต่อกรในการพัฒนาระบบ deep learning นี้ คือ

  1. จาก input และ output หนึ่งคู่นั้นมีโปรแกรมที่เป็นไปได้มหาศาล และ
  2. input และ output จากมนุษย์นั้นมักจะมี noise เช่น การพิมพ์ผิด

ซึ่งสำหรับปัญหาในข้อ 2 นี้ ทางทีมได้คิดค้นเทคนิคที่ชื่อว่า RobustFill ซึ่งใช้ attentional sequence-to-sequence neural network ในการเรียนรู้ความสัมพันธ์ระหว่างคู่ input/output โดยไม่ต้องมีการตั้งกฎเกณฑ์ที่ตายตัว ทำให้ระบบสามารถผลิต output ที่ถูกต้องได้จากข้อมูลที่มี noise

ทีมวิจัยทำการเทรนด์ระบบดังกล่าวด้วยการสร้างข้อมูล input และ output แบบสุ่มหลายล้านชุด และเมื่อทำการทดสอบกับข้อมูลจริงระบบประสบความสำเร็จในการสังเคราะห์โปรแกรมในอัตราร้อยละ 92 แม้ข้อมูลที่ใช้จะมี noise มากก็ตาม

ระบบนี้นอกจากจะเป็นก้าวที่สำคัญในการนำ Deep Learning มาประยุกต์ใช้ในการสังเคราะห์โปรแกรมแล้ว ยังเป็นการค้นพบวิธีการจัดการกับความท้าทายซึ่งเป็นปัญหาร่วมกับระบบ symbolic knowledge representation อีกด้วย ในอนาคต ทีมวิจัยมีแผนจะพัฒนาระบบให้สามารถเขียนโปรแกรมให้ได้ลึกซึ้งยิ่งขึ้นด้วยการจัดการกับปัญหาทางเทคนิคอื่นๆของการสังเคราะห์โปรแกรมและการอนุมานทั่วไป

งานวิจัยต้นฉบับ

 

ที่มา: https://www.microsoft.com/en-us/research/blog/deep-learning-program-synthesis/?wt.mc_id=MCR_378116_TW1


Check Also

NVIDIA ประกาศเดินหน้าผลิต GH200 Grace Hopper Superchip แล้ว

NVIDIA ประกาศเดินหน้าผลิต GH200 Grace Hopper Superchip แล้ว

เอเซอร์เปิดตัว Swift Edge 16 รุ่นใหม่ มาพร้อมโปรเซสเซอร์ AMD RyzenTM 7040 และ Wi-Fi 7 [Guest Post]

ไทเป (26 พฤษภาคม 2566) – บริษัท เอเซอร์ คอมพิวเตอร์ จำกัด เปิดตัวโน้ตบุ๊ก Acer Swift Edge 16 (SFE16-43) …