ADPT

ทำได้ทุกอย่าง! 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

เชิญร่วมงานเสวนาออนไลน์ Digital Transformation and Creativity [24 มิ.ย.​ 2021]

TechTalkThai ขอเชิญทุกท่านเข้าร่วมงานเสวนาออนไลน์ ในหัวข้อ Digital Transformation is Driving Thailand’s Unique Competitiveness EP #1 เรื่อง Digital Transformation and …

Google เปิดโอเพ่นซอร์สเครื่องสำหรับตรวจสอบ integrity ให้ Supply chain

Supply Chain attack นั้นมีความรุนแรงปรากฏชัดมากขึ้นในระยะเวลาไม่กี่เดือนที่ผ่านมา ซึ่งล่าสุด Google ก็ได้ออก Framework ที่ชื่อ ‘SLSA’