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

Sonar เข้าซื้อกิจการ Gitar สตาร์ตอัป AI Code Review ยกระดับระบบตรวจสอบโค้ดด้วย Agentic Reasoning

Sonar ผู้ให้บริการแพลตฟอร์มตรวจสอบคุณภาพและความมั่นคงปลอดภัยของโค้ด ประกาศเข้าซื้อกิจการ Gitar สตาร์ตอัปผู้เชี่ยวชาญด้านระบบ AI-native Code Review การเข้าซื้อกิจการครั้งนี้มีเป้าหมายเพื่อผสานความสามารถด้านการคิดวิเคราะห์ของ Gitar เข้ากับเอนจินตรวจสอบโค้ดของ Sonar เพื่อสร้างความมั่นคงปลอดภัยที่รัดกุมยิ่งขึ้นสำหรับทีม DevOps ในยุคที่ …

Stripe ยกระดับระบบชำระเงินสู่โครงสร้างพื้นฐานสำหรับ Machine-to-Machine รับยุค Agentic AI

Stripe เปิดตัวผลิตภัณฑ์ใหม่ 288 รายการ พร้อมส่งแผนพลิกโฉมระบบชำระเงินจากเดิมที่เป็นโครงสร้างพื้นฐานในการทำธุรกรรมสำหรับมนุษย์ ให้กลายเป็นโครงสร้างพื้นฐานที่สามารถตั้งโปรแกรมได้และทำงานอย่างต่อเนื่องเพื่อรองรับธุรกกรรมแบบ Machine-to-Machine ถือเป็นการปูทางเข้าสู่ระบบเศรษฐกิจแบบ Agentic AI อย่างเต็มรูปแบบ