न्यूरो-सिंबॉलिक प्रोग्रामिंग भाषा Scallop
(scallop-lang.org)- Scallop AI applications में logic rule-based symbolic reasoning जोड़ने के लिए एक declarative भाषा है, जो relational database query language Datalog पर आधारित है
- इसका solver discrete, probabilistic, और differentiable reasoning को support करता है, इसलिए application की ज़रूरत के अनुसार reasoning का तरीका चुना जा सकता है
- Python bindings के ज़रिए प्रोग्राम के भीतर logic reasoning modules जोड़े जा सकते हैं, और इन्हें मौजूदा PyTorch machine learning pipeline के साथ integrate किया जा सकता है
- यह vision और NLP कार्यों में CNN या Transformer द्वारा बने neural components को logic rule components के साथ मिलाकर संयोजित करने का तरीका है
- यह CLEVR visual reasoning, Pathfinder connectivity detection, और handwritten equation evaluation जैसे neural components और rules को साथ में सीखने वाले end-to-end उदाहरण प्रदान करता है
Scallop के मुख्य घटक
-
Language
- Scallop AI applications में symbolic reasoning को संभालने के लिए एक declarative भाषा है
- इसका आधार relational database के लिए logic rule-based query language Datalog है
-
Solver
- Scallop एक extensible Datalog solver है
- यह discrete reasoning, probabilistic reasoning, और differentiable reasoning modes को support करता है
- हर reasoning mode को अलग-अलग AI application requirements के अनुसार configure किया जा सकता है
-
Framework
- यह Python प्रोग्राम के भीतर logic reasoning modules के उपयोग के लिए bindings प्रदान करता है
- यह मौजूदा PyTorch machine learning pipelines के साथ गहराई से integrate हो सकता है
उदाहरण applications
- CLEVR एक visual reasoning कार्य है, जिसमें image के भीतर सरल 3D objects के बारे में “नीले रंग की कितनी objects हैं?” जैसे सवालों के जवाब दिए जाते हैं
- neural component image का scene graph और प्रश्न को दर्शाने वाली programmatic query बनाता है
- reasoning component निर्दिष्ट attributes के आधार पर objects को चुनने, तुलना करने, और गिनने वाले operations को logic rules के रूप में निर्दिष्ट करता है
- Scallop इन components को एक common framework में integrate करता है और end-to-end learning संभव बनाता है
- Pathfinder एक long-range connectivity reasoning कार्य है, जिसमें दो बिंदुओं और dashed lines वाली black-and-white image में यह तय किया जाता है कि क्या दोनों बिंदु dashed line से जुड़े हैं
- इसे points और dashes का पता लगाने वाली एक सरल neural architecture और Scallop logic rules की कुछ पंक्तियों से बनाया जा सकता है
- दिए गए rules
dash(x, y)को path मानते हैं, और recursive रूप सेpath(x, z), dash(z, y)को जोड़करis_connected()का निर्धारण करते हैं - यह संरचना आधुनिक Transformer की तुलना में बेहतर performance देती है
- handwritten equation evaluation एक ऐसा कार्य है, जिसमें 0 से 9 तक के अंक और सरल arithmetic operations से बनी handwritten symbol sequence को पहचानकर expression की गणना की जाती है
- उदाहरण में
1 + 3 / 5को input मानकर परिणाम1.6निकाला जाता है - Scallop के साथ probabilistic inputs को parse करने वाला पूरा context-free grammar parser बनाया जा सकता है
- parser और evaluator को Scallop code की 5 पंक्तियों में लिखा जा सकता है
- यह प्रोग्राम individual symbol recognition neural model के साथ end-to-end तरीके से train किया जा सकता है, और training के बाद सबसे अधिक संभावित expression खोजकर उसका evaluation result लौटाता है
- उदाहरण में
अभी कोई टिप्पणी नहीं है.