• Scallop เป็นภาษาเชิงประกาศสำหรับใส่ การอนุมานเชิงสัญลักษณ์บนฐานกฎตรรกะ เข้าไปในแอปพลิเคชัน AI โดยอิงจาก Datalog ซึ่งเป็นภาษาคิวรีฐานข้อมูลเชิงสัมพันธ์
  • ตัว solver รองรับ การอนุมานแบบไม่ต่อเนื่อง·แบบความน่าจะเป็น·แบบที่หาอนุพันธ์ได้ ทำให้เลือกวิธีอนุมานให้เหมาะกับความต้องการของแอปพลิเคชันได้
  • สามารถใส่ โมดูลอนุมานเชิงตรรกะ เข้าไปในโปรแกรมผ่าน Python binding และผสานรวมกับไปป์ไลน์แมชชีนเลิร์นนิง PyTorch ที่มีอยู่ได้
  • ในงาน vision และ NLP เป็นแนวทางที่ประกอบคอมโพเนนต์เชิงประสาทที่สร้างโดย CNN หรือ Transformer เข้ากับ คอมโพเนนต์กฎตรรกะ
  • มีตัวอย่างแบบ end-to-end เช่น การอนุมานเชิงภาพ CLEVR, การตัดสินการเชื่อมต่อของ Pathfinder และการประเมินสมการลายมือ ซึ่ง เรียนรู้คอมโพเนนต์เชิงประสาทร่วมกับกฎ

องค์ประกอบหลักของ Scallop

  • Language

    • Scallop เป็นภาษาเชิงประกาศสำหรับจัดการ การอนุมานเชิงสัญลักษณ์ ในแอปพลิเคชัน AI
    • อิงจาก Datalog ซึ่งเป็นภาษาคิวรีบนฐานกฎตรรกะสำหรับฐานข้อมูลเชิงสัมพันธ์
  • Solver

    • Scallop เป็น Datalog solver ที่ขยายได้
    • รองรับโหมด การอนุมานแบบไม่ต่อเนื่อง, การอนุมานแบบความน่าจะเป็น, และ การอนุมานแบบที่หาอนุพันธ์ได้
    • แต่ละโหมดการอนุมานสามารถตั้งค่าให้เหมาะกับความต้องการของแอปพลิเคชัน AI ที่แตกต่างกันได้
  • Framework

    • มี binding ที่ทำให้ใช้โมดูลอนุมานเชิงตรรกะภายในโปรแกรม Python ได้
    • สามารถผสานรวมอย่างลึกซึ้งกับไปป์ไลน์แมชชีนเลิร์นนิง PyTorch ที่มีอยู่ได้

ตัวอย่างแอปพลิเคชัน

  • CLEVR เป็นงาน การอนุมานเชิงภาพ ที่ตอบคำถามเกี่ยวกับวัตถุ 3D แบบง่ายในภาพ เช่น “มีวัตถุสีน้ำเงินกี่ชิ้น?”
    • คอมโพเนนต์เชิงประสาทสร้าง กราฟฉาก (scene graph) ของภาพ และ คิวรีแบบโปรแกรม (programmatic query) ที่แทนคำถาม
    • คอมโพเนนต์อนุมานระบุการดำเนินการเลือก เปรียบเทียบ และนับวัตถุตามคุณสมบัติที่กำหนดไว้เป็นกฎตรรกะ
    • Scallop รวมคอมโพเนนต์เหล่านี้ไว้ในเฟรมเวิร์กร่วมกัน และทำให้ฝึกแบบ end-to-end ได้
  • Pathfinder เป็นงาน การอนุมานการเชื่อมต่อระยะไกล ที่ตัดสินว่าในภาพขาวดำที่มีจุดสองจุดและเส้นประ จุดทั้งสองเชื่อมต่อกันด้วยเส้นประหรือไม่
    • สามารถประกอบได้ด้วยสถาปัตยกรรมเชิงประสาทแบบง่ายที่ตรวจจับจุดและขีดประ ร่วมกับกฎตรรกะ Scallop เพียงไม่กี่บรรทัด
    • กฎที่นำเสนอถือ dash(x, y) เป็นเส้นทาง และเชื่อม path(x, z), dash(z, y) แบบเวียนเกิดเพื่อวินิจฉัย is_connected()
    • การจัดวางแบบนี้ให้ประสิทธิภาพสูงกว่า Transformer รุ่นล่าสุด
  • การประเมินสมการลายมือเป็นงานที่รู้จำ ลำดับสัญลักษณ์ลายมือ ซึ่งประกอบด้วยตัวเลข 0 ถึง 9 และการดำเนินการเลขคณิตแบบง่าย แล้วคำนวณนิพจน์
    • ตัวอย่างมอง 1 + 3 / 5 เป็นอินพุต และคำนวณผลลัพธ์ 1.6
    • สามารถสร้าง parser ไวยากรณ์ไร้บริบท ทั้งชุดที่ parse อินพุตแบบความน่าจะเป็นด้วย Scallop ได้
    • parser และ evaluator สามารถเขียนด้วยโค้ด Scallop 5 บรรทัด
    • โปรแกรมนี้สามารถฝึกร่วมกับโมเดลเชิงประสาทสำหรับรู้จำสัญลักษณ์แต่ละตัวแบบ end-to-end ได้ และหลังการฝึกจะค้นหาสูตรที่มีความเป็นไปได้สูงสุดแล้วส่งคืนผลการประเมิน

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น