2 पॉइंट द्वारा GN⁺ 2025-04-04 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Natural Language Programming की मूर्खता पर आलोचना

  • स्वचालित कंप्यूटिंग के शुरुआती दौर से ही ऐसे लोग मौजूद थे जिन्हें औपचारिक प्रतीक-प्रणाली की मांग करने वाली प्रोग्रामिंग शैली से असंतोष था
  • मशीन दिए गए निर्देशों को ज्यों-का-त्यों निष्पादित करने वाली एक 'वफादार दास' की तरह होती है, और स्पष्ट त्रुटियों को भी वैसे ही चला देती है
  • कुछ लोगों को उम्मीद थी कि मशीन त्रुटियों को नज़रअंदाज़ कर उन्हें चलाने के बजाय, अधिक 'तार्किक' व्यवहार करेगी

उच्च-स्तरीय प्रोग्रामिंग भाषाओं का आगमन और विकास

  • मशीन भाषा को त्रुटि-पहचान या पुनरावृत्ति से लगभग रहित होने के कारण एक खतरनाक इंटरफ़ेस माना गया
  • इसी वजह से उच्च-स्तरीय प्रोग्रामिंग भाषाएँ सामने आईं, और error messages के ज़रिए गलत परिणामों को रोकने जैसी प्रगति हुई
  • फिर भी प्रोग्रामिंग अब भी औपचारिक प्रतीकों की मांग करती है, और अब भी सूक्ष्म स्तर की सटीकता की आवश्यकता होती है

प्राकृतिक भाषा में प्रोग्रामिंग के पक्ष में तर्क और उसके प्रतिवाद

  • यह तर्क दिया गया कि अगर मशीन को प्राकृतिक भाषा में नियंत्रित किया जाए तो उपयोगकर्ता अधिक सहज महसूस करेगा
  • ऐसा माना गया कि मशीनें अधिक जटिल होने के साथ यह उपयोगकर्ता के लिए सहायक हो सकता है
  • लेकिन इंटरफ़ेस में बदलाव काम के बँटवारे को समायोजित नहीं करता, बल्कि सहयोग और संचार का अतिरिक्त कार्यभार पैदा करता है
  • वास्तव में, इंटरफ़ेस जितना व्यापक होता है, दोनों पक्षों का कार्यभार उतना ही बढ़ता है और कई बार चीज़ें और जटिल हो जाती हैं

गणित और प्रतीक-प्रणाली के ऐतिहासिक उदाहरण

  • प्राचीन यूनानी गणित भाषा और चित्र-केंद्रित पद्धतियों तक सीमित रहा, जिससे उसका विकास ठहर गया
  • इस्लामी गणित भी प्रतीक-प्रणाली को अपनाने में असफल रहा और रुक गया
  • यूरोप ने Vieta, Descartes, Leibniz, Boole जैसे व्यक्तियों द्वारा औपचारिक प्रतीक-प्रणाली अपनाने के बाद असाधारण प्रगति की

औपचारिक भाषा के लाभ और प्राकृतिक भाषा की सीमाएँ

  • औपचारिक भाषा कुछ सरल नियमों के ज़रिए कई त्रुटियों को रोक सकती है
  • औपचारिक प्रतीकों ने उस तार्किक चिंतन को, जो पहले केवल प्रतिभाशाली लोगों के लिए संभव था, छात्रों के लिए भी संभव बना दिया
  • प्राकृतिक भाषा अस्पष्ट होती है और उसमें अर्थहीन कथन आसानी से मिल जाते हैं, इसलिए वह त्रुटिरहित तार्किक अभिव्यक्ति के लिए उपयुक्त नहीं है

अगर input/output का एकमात्र तरीका प्राकृतिक भाषा ही होता?

  • अगर शुरुआत से ही मशीन को केवल प्राकृतिक भाषा से नियंत्रित किया गया होता, तो अंततः हमें फिर से औपचारिक प्रणाली की ओर लौटने वाली एक 'bootstrap' प्रक्रिया की ज़रूरत पड़ती
  • इस प्रक्रिया में शायद हज़ारों साल लगते, और अंततः निष्कर्ष फिर औपचारिक भाषा ही होता

शैक्षिक पतन और 'नई निरक्षरता' की घटना

  • पिछले कुछ दशकों में बौद्धिक प्रशिक्षण के कमजोर होने से, बहुत से लोग अपनी मातृभाषा तक को ठीक से संभाल नहीं पाते
  • वैज्ञानिक शोधपत्रों, तकनीकी रिपोर्टों और सरकारी दस्तावेज़ों में अर्थहीन भाषा की भरमार इस बात का प्रमाण है
  • यह प्रवृत्ति प्राकृतिक भाषा प्रोग्रामिंग की विफलता का पूर्वाभास कराती है

निष्कर्षात्मक अंतर्ज्ञान

  • प्राकृतिक भाषा में प्रोग्रामिंग कर सकने वाली मशीन बनाना, उसे उपयोग करने जितना ही कठिन होगा

1 टिप्पणियां

 
GN⁺ 2025-04-04
Hacker News राय
  • कुछ लोगों का मानना है कि LLMs (large language models) का बचाव करना अच्छा लगता है

    • इसके उलट, यह सवाल उठता है कि मध्यम-जटिलता वाले प्रोजेक्ट्स को code से natural language में बदलने पर क्या होगा
    • यह संदेह है कि source code के behavior और requirements को क्या पर्याप्त रूप से समझाया जा सकता है, और क्या natural language में दिया गया विवरण वास्तव में अधिक समझने योग्य होगा
    • complexity और precision को संभालना कठिन होने की वजह से ज़्यादातर simple applications ही demo किए जाते हैं
    • एक वजह है कि legal terminology साधारण English नहीं होती
  • Hal Abelson का एक पुराना उद्धरण याद आता है

    • computer science कोई science नहीं है, और उसका computers से भी कम संबंध है
    • computer revolution, सोचने और अभिव्यक्त करने के तरीके की revolution है
    • mathematics, 'क्या' के बारे में precision देती है, और computation, 'कैसे' के बारे में precision देती है
  • natural language में मानव की मानसिक सीमाओं से आने वाली पाबंदियाँ होती हैं

    • programmer के रूप में, अक्सर समस्या या बेतुकापन code implement करने के बाद ही साफ़ होता है
    • natural language में किसी चीज़ को ठीक-ठीक समझाने में ज़्यादा समय लगता है
  • machine language को एक अनावश्यक रूप से खतरनाक interface के रूप में देखा जाता है

    • गलतियाँ कम करने के लिए high-level programming languages विकसित की गईं
    • Rust, गलतियों को बहुत स्पष्ट रूप से दिखाता है, जो developer के लिए फ़ायदेमंद है
    • LLMs, आधे-अधूरे intelligent guessing game जैसे लगते हैं
    • Rust का approach ज़्यादा पसंद किया जाता है
  • natural language में computer programs generate करने के बजाय, उन्हें सीधे execute करना चाहिए

    • graphic systems और tic-tac-toe programs के उदाहरण दिए गए हैं
    • file system और multitasking OS के लिए prompts भी चाहिए होंगे
    • अगले साल अप्रैल की शुरुआत तक ऐसे विकास की उम्मीद है
  • natural language, rules और commands देने के लिए उपयुक्त नहीं है

    • उदाहरण के तौर पर अमेरिका में laws की interpretation से जुड़ी समस्याएँ दी जाती हैं
    • computer languages की clarity और accountability एक संतुलन बनाती हैं
  • किसी specific domain के लिए बनी language, वह precision और clarity देती है जो natural language नहीं दे सकती

    • उल्टा करने की कोशिश में और ज़्यादा काम लगता है
  • Forth, PostScript, Assembly ऐसे 'natural' programming languages हैं जो code execution environment से अच्छी तरह मेल खाते हैं

    • सवाल यह है कि 'natural' किसके लिए है, इंसान के लिए या computer के लिए
    • AI, मानव भाषा को computer के लिए natural नहीं बनाता
    • AI, अपने environment के हिसाब से अपनी भाषाएँ ईजाद करेगा
  • advanced programming methods, natural language की बजाय programming languages जैसे दिखने लगेंगे

    • अगर आप खुद programming नहीं करना चाहते, तो आपको उस intelligence को निर्देश देने का तरीका चाहिए जो programming करेगी
    • उच्च-स्तरीय निर्देश देने का तरीका natural language से ज़्यादा teaching जैसा लगेगा
  • गलतियों का error messages के रूप में दिखना एक बड़ा सुधार है

    • कुछ लोगों को यह ज़्यादा परेशान करता है कि error messages को अनदेखा नहीं किया जा सकता
    • programming language की खूबियों का आकलन करते समय, कुछ लोग 'प्रोग्रामिंग की आसानी' को गलती करने की आसानी के बराबर मान लेते हैं