लेखक:
(1) केक्सुन झांग, यूसी सांता बारबरा और समान योगदान;
(2) हांगकियाओ चेन, नॉर्थवुड हाई स्कूल और समान योगदान;
(3) लेई ली, कार्नेगी मेलन विश्वविद्यालय;
(4) विलियम यांग वांग, यूसी सांता बारबरा।
वाक्यविन्यास की दृष्टि से सही टूल कॉल को किसी मौजूदा टूल नाम को संदर्भित करने और प्रकार-अनुरूप तर्कों को पास करने की आवश्यकता होती है। इस तथ्य से प्रेरित होकर कि एक परिमित-स्थिति मशीन (FSM) का उपयोग करके टूल कॉल के वाक्यविन्यास को सत्यापित करना सीधा है, हम TOOLDEC का प्रस्ताव करते हैं, जो एक FSM द्वारा निर्देशित एक विवश डिकोडिंग एल्गोरिदम है। प्रत्येक डिकोडिंग चरण के दौरान, मॉडल शब्दावली के एक उपसमूह से नमूना लेता है जिसमें केवल वाक्यविन्यास की दृष्टि से सही टोकन होते हैं। टोकन उपसमूहों को निर्दिष्ट करने वाले FSM का निर्माण टूल दस्तावेज़ से किया जा सकता है। उदाहरण के लिए, चित्र 2 में, फ़ंक्शन add, exp, square और sqrt के लिए एक FSM का निर्माण किया गया है। तालिका 2 दिखाती है कि TOOLDEC FSM का उपयोग करके "एक वर्ग की भुजा 5 है, इसका क्षेत्रफल क्या है?" प्रश्न का उत्तर कैसे देता है। FSM के मार्गदर्शन के साथ, TOOLDEC निम्नलिखित लक्ष्य प्राप्त करता है:
• मोड बदलना। जब मॉडल कोई भी टेक्स्ट जेनरेट करने के लिए स्वतंत्र हो तो "टेक्स्ट मोड" और जब मॉडल केवल वैध टूल कॉल जेनरेट कर सकता हो तो "टूल मोड" के बीच स्विच करें।
• टूल नाम जनरेट करना। टूल कॉल की शुरुआत में, टूल की पूर्व-निर्धारित सूची से केवल सही मौजूदा टूल नाम जनरेट करें।
• तर्क पास करना। टूल को केवल प्रकार-अनुरूप तर्क ही पास करें।
TOOLDEC एक परिमित-स्थिति मशीन (FSM) द्वारा निर्देशित है। FSM एक 5-टपल (S, V, g, s0, R) है, जिसमें एक परिमित अवस्था सेट S, एक वर्णमाला V, एक संक्रमण फ़ंक्शन g: S ×V → S, एक प्रारंभिक अवस्था s0 और स्वीकार करने वाली अवस्थाओं का एक सेट R शामिल है। हमारे मामले में, S और g का निर्माण टूल सिग्नेचर से किया जाता है। V भाषा मॉडल की टोकन शब्दावली है। R पूर्व-परिभाषित टोकन से मेल खाता है जो यह निर्धारित कर सकता है कि LM ने कार्य पूरा कर लिया है, जैसे ''।
प्रत्येक डिकोडिंग चरण t पर, TOOLDEC एक वर्तमान स्थिति s बनाए रखता है। यह केवल FSM द्वारा अनुमत टोकन उत्पन्न कर सकता है, अर्थात वे टोकन जिनके लिए g(s, ·) परिभाषित है। ये
ट्राई बनाने के लिए, हम इसमें एक-एक करके सभी स्ट्रिंग्स डालते हैं। ट्राई में स्ट्रिंग डालने का मतलब है स्ट्रिंग द्वारा बनाए गए पथ पर रूट से नीचे जाना और पथ में अगला चरण मौजूद न होने पर नए नोड बनाना। उदाहरण के लिए, हम दिखाते हैं कि चित्र 3 में ट्राई में दो और टूल नाम, exp10 और expand कैसे जोड़े जा सकते हैं।
ध्यान दें कि ट्राई का निर्माण एक धारणा पर निर्भर करता है: किसी भी दो टूल का नाम एक जैसा नहीं होता। हालाँकि यह एक उचित धारणा है, लेकिन वास्तविक अनुप्रयोगों में अपवाद हो सकते हैं। उस स्थिति में, हम टूल के नामों को फिर से लिख सकते हैं ताकि उन्हें स्पष्ट करने के लिए अधिक विवरण शामिल किए जा सकें। अमूर्त और समझने में कठिन टूल नामों को फिर से लिखने से भाषा मॉडल के लिए उन्हें नाम से चुनना भी आसान हो सकता है।
वाक्यविन्यास के अनुसार मान्य उपकरण तर्क उत्पन्न करना। उपकरण तर्कों के निर्दिष्ट प्रकार होते हैं। किसी प्रोग्राम में तर्कों की तरह, उन्हें कुछ व्याकरण नियमों का पालन करना होता है। इन नियमों को परिमित-स्थिति मशीनों द्वारा निर्दिष्ट किया जा सकता है। उदाहरण के लिए, चित्र 2 में "IntFSM" एक परिमित-स्थिति मशीन को दर्शाता है जो केवल पूर्णांक अक्षर स्वीकार करती है। किसी उपकरण के सभी तर्कों के लिए, हम उनके संगत FSM को एक साथ जोड़ते हैं और उपकरण नाम से संगत अंतिम स्थिति को इस FSM श्रृंखला की प्रारंभिक स्थिति के रूप में उपयोग करते हैं। ध्यान दें कि व्यवहार में, इस FSM को स्पष्ट रूप से बनाना आवश्यक नहीं है। कोई भी व्याकरण परीक्षक जो मान्य अगले टोकन के सेट को बताता है, पर्याप्त है।
यह पेपर CC 4.0 DEED लाइसेंस के अंतर्गत arxiv पर उपलब्ध है।