Bahasa pemrograman neuro-simbolik Scallop
(scallop-lang.org)- Scallop adalah bahasa deklaratif untuk memasukkan penalaran simbolik berbasis aturan logika ke dalam aplikasi AI, dan berbasis pada Datalog, bahasa kueri basis data relasional
- Solver-nya mendukung penalaran diskret, probabilistik, dan terdiferensiasi, sehingga metode penalaran dapat dipilih sesuai kebutuhan aplikasi
- Melalui binding Python, modul penalaran logika dapat dimasukkan ke dalam program, dan dapat diintegrasikan dengan pipeline machine learning PyTorch yang sudah ada
- Dalam tugas visi dan NLP, pendekatannya adalah menyusun bersama komponen neural yang dibuat oleh CNN atau Transformer dengan komponen aturan logika
- Menyediakan contoh end-to-end yang mempelajari komponen neural dan aturan secara bersama, seperti penalaran visual CLEVR, penentuan konektivitas Pathfinder, dan evaluasi ekspresi matematika tulisan tangan
Komponen inti Scallop
-
Language
- Scallop adalah bahasa deklaratif untuk menangani penalaran simbolik dalam aplikasi AI
- Dasarnya adalah Datalog, bahasa kueri berbasis aturan logika untuk basis data relasional
-
Solver
- Scallop adalah solver Datalog yang dapat diperluas
- Mendukung mode penalaran diskret, penalaran probabilistik, dan penalaran terdiferensiasi
- Setiap mode penalaran dapat dikonfigurasi agar sesuai dengan kebutuhan berbagai aplikasi AI
-
Framework
- Menyediakan binding yang memungkinkan modul penalaran logika digunakan di dalam program Python
- Dapat terintegrasi secara mendalam dengan pipeline machine learning PyTorch yang sudah ada
Contoh aplikasi
- CLEVR adalah tugas penalaran visual yang menjawab pertanyaan seperti “ada berapa objek berwarna biru?” terhadap objek 3D sederhana di dalam gambar
- Komponen neural menghasilkan scene graph dari gambar dan programmatic query yang merepresentasikan pertanyaan
- Komponen penalaran menetapkan operasi seperti memilih, membandingkan, dan menghitung objek berdasarkan atribut tertentu sebagai aturan logika
- Scallop mengintegrasikan komponen-komponen ini dalam satu framework umum dan memungkinkan pembelajaran end-to-end
- Pathfinder adalah tugas penalaran konektivitas jarak jauh yang menentukan apakah dua titik terhubung oleh garis putus-putus dalam gambar hitam-putih berisi dua titik dan garis putus-putus
- Dapat dibangun dengan arsitektur neural sederhana untuk mendeteksi titik dan dash, serta beberapa baris aturan logika Scallop
- Aturan yang ditampilkan menjadikan
dash(x, y)sebagai jalur, lalu menghubungkanpath(x, z), dash(z, y)secara rekursif untuk menentukanis_connected() - Konfigurasi ini menghasilkan performa lebih tinggi daripada Transformer terbaru
- Evaluasi ekspresi matematika tulisan tangan adalah tugas mengenali urutan simbol tulisan tangan yang terdiri dari digit 0 sampai 9 dan operasi aritmetika sederhana, lalu menghitung ekspresinya
- Contohnya melihat
1 + 3 / 5sebagai input dan menghitung nilai hasil1.6 - Dengan Scallop, parser tata bahasa bebas konteks lengkap yang dapat mem-parse input probabilistik dapat dibuat
- Parser dan evaluator dapat ditulis dalam 5 baris kode Scallop
- Program ini dapat dilatih secara end-to-end bersama model neural pengenalan simbol individual, dan setelah dilatih akan menemukan ekspresi yang paling mungkin serta mengembalikan hasil evaluasinya
- Contohnya melihat
Belum ada komentar.