5 पॉइंट द्वारा GN⁺ 2025-05-29 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • software engineering में LLM पर अत्यधिक निर्भरता अयोग्यता को तेज़ी से बढ़ावा देती है
  • LLM में ऐसी सीमाएँ हैं कि वे critical thinking और समस्या-समाधान क्षमता की जगह नहीं ले सकते
  • LLM के उपयोग के साथ गलत output, input त्रुटियाँ, code quality में गिरावट, developer क्षमता में कमी, रचना के आनंद का खोना जैसी कई जोखिम जुड़ी हैं
  • LLM program theory और program entropy जैसी मूलभूत विकास क्षमताएँ प्रदान नहीं कर सकते
  • लंबी अवधि में तकनीकी कौशल और गहरी सोचने की क्षमता पहले से कहीं अधिक महत्वपूर्ण हैं

परिचय

2022 के अंत में AI और LLM को व्यापक जन-ध्यान मिलने के बाद, इस पर बहुत सी चर्चा जारी रही
एक अनुभवी software engineer के रूप में, लेखक LLM में देखी गई दो प्रमुख समस्याओं पर बात करता है

"LLM मेरा दोस्त है" वाला दृष्टिकोण

जो engineer LLM को सर्वोत्तम tool मानते हैं, वे speed को सर्वोच्च मूल्य बना लेते हैं
LLM से बहुत सा code तेज़ी से बनाया जा सकता है, लेकिन इसमें दीर्घकालिक जोखिम छिपे होते हैं

LLM उपयोग के जोखिम

  • गलत output का जोखिम: LLM स्पष्ट रूप से गलत code (compile न होने वाला) और सूक्ष्म त्रुटियों वाला code (जैसे logic bug) बना सकता है
    • जिन लोगों में मूल्यांकन क्षमता नहीं है, वे source code मांगते समय अनुपयुक्त उत्तर पाने की अधिक संभावना रखते हैं
  • गलत input का जोखिम: LLM त्रुटिपूर्ण मान्यताओं या संदर्भ-विहीन prompt की आलोचना नहीं करता
    • वह सही प्रश्न की पहचान नहीं कर पाता और XY समस्या (मूल कारण पहचानने में विफलता) के प्रति भी संवेदनशील नहीं होता
  • भविष्य की विकास गति में कमी: LLM अपनाने से technical debt तेज़ी से बढ़ता है और अंदरूनी तौर पर अव्यवस्थित तथा maintain करना कठिन codebase बन जाता है
  • उपयोगकर्ता के अपरिपक्व होने का जोखिम: समस्या-समाधान और सोच-विकास के अवसर समाप्त होने से developer प्रतिभा की क्षमता-क्षीणता तेज़ हो जाती है
    • senior developer को अधिक गहरे समस्या-समाधान का अनुभव नहीं मिलता, और junior developer तो कौशल बना ही नहीं पाता
  • रचना के आनंद का खोना: LLM-आधारित code लेखन flow state और सृजन की खुशी छीन लेता है, और AI द्वारा लिखे code को पढ़ना व बदलना अक्सर कष्टदायक होता है

"क्या AI की वजह से मैं अपनी नौकरी खो दूँगा?" वाली चिंता

ऐसा होने की संभावना बहुत कम है
दो ऐसी विकास क्षमताएँ हैं जिन्हें LLM प्रतिस्थापित नहीं कर सकते: program theory और program entropy

Program theory

  • Peter Naur के अनुसार, “programming design theory बनाने की गतिविधि है”
    • source code वास्तविक उत्पाद नहीं है; सामूहिक समझ (theory) अधिक महत्वपूर्ण है
    • यदि समान कौशल वाली दो teams को एक ही समस्या दी जाए और केवल code सौंपा जाए, तो जिस team ने उसे स्वयं बनाया है वह feature जोड़ने में कहीं अधिक प्रभावी होगी
    • अपरिचित codebase में productivity कम रहती है, लेकिन जैसे-जैसे आंतरिक design theory की समझ बढ़ती है, productivity भी बढ़ती जाती है

LLM और program theory

  • LLM के पास केवल context के भीतर की memory होती है, इसलिए वे वास्तविक program theory या गहरे design को आत्मसात नहीं कर सकते
    • वास्तव में coding का असली सार (design और theory का निर्माण) केवल मनुष्य ही अर्जित करता है

Program entropy

  • Fred Brooks ने complexity (entropy) को programming की मूलभूत कठिनाई कहा था
    • program maintenance complexity बढ़ाती है, और सर्वोत्तम execution भी अंततः system को अपरिवर्तनीय पुरानापन की ओर धकेल देता है

LLM और program entropy

  • LLM केवल text स्तर पर token prediction करते हैं; ideas, design blueprints, और requirements के स्तर पर semantic thinking नहीं कर सकते
    • लंबे संवाद या बड़े code chunks को संभालते हुए वे बार-बार अनावश्यक या विचित्र बदलाव करते हैं, जिससे complexity और बढ़ती है
    • complexity को कम करना या उसका प्रतिरोध करना केवल मनुष्य ही कर सकता है

निष्कर्ष

दो अग्रदूतों की अंतर्दृष्टि के आधार पर software design और complexity के सार को फिर से रेखांकित किया गया है
यदि आप उम्मीद करते हैं कि AI आपकी development career को बेहतर बनाएगा, तो सावधान रहें कि इससे उल्टा अयोग्यता तेज़ हो सकती है
समृद्ध अनुभव और पक्के कौशल वाले developer के रूप में, यह समझना चाहिए कि LLM मानव engineer का स्थान नहीं ले सकते
AI अपनाने का व्यावसायिक आकर्षण लागत घटाना है, लेकिन व्यवहार में यह नए जोखिम पैदा करता है, और अत्यधिक उपयोग करने पर लंबी अवधि की अतिरिक्त लागत और संगठनात्मक जोखिम जमा होते जाते हैं
तकनीकी कौशल और गहरी सोच की क्षमता का महत्व लंबी अवधि में नहीं बदलता; AI को tool की तरह उपयोग करें और उन मूलभूत क्षमताओं में निवेश जारी रखें जो 2019 में भी महत्वपूर्ण थीं

अगला लेख पूर्वावलोकन

आगे की post में प्रत्येक जोखिम के लिए ठोस समाधान पर चर्चा की जाएगी

संदर्भ

1 टिप्पणियां

 
GN⁺ 2025-05-29
Hacker News की राय
  • कभी-कभी ऐसा लगता है कि AI coding पर होने वाली चर्चा software engineer और data scientist/machine learning engineer के बीच के अंतर को दिखाती है
    software engineer से हमेशा ऐसे software बनाने की अपेक्षा होती है जो predictable हो और tests पास करे, और tooling भी कहीं ज़्यादा विकसित है
    दूसरी ओर, machine learning engineer के लिए probabilistic model के साथ काम करना रोज़मर्रा की बात है, और testing भी अक्सर किसी खास output के बजाय metrics-केंद्रित evaluation पर आधारित होती है
    इसलिए वे इस बात के ज़्यादा अभ्यस्त हैं कि AI हमेशा भरोसेमंद नहीं होता
    coding assistant को भी इसी सोच के साथ लिया जाता है कि अगर वह 80% सही जवाब दे, तो बाकी 20% मैं पकड़ लूंगा
  • मेरे अनुभव में भी लगभग आधा हिस्सा ऐसा ही लगा
    Amazon में काम करते समय, जिन समस्याओं के लिए कोई classical approach नहीं थी, वहाँ ML-आधारित solution बहुत उपयोगी था
    लेकिन एक startup में, basic filtering या mapping की समझ के बिना सिर्फ learning-based approach पर अड़े रहने से, रुके हुए aircraft की attitude estimation में बार-बार बेतुके नतीजे आए
    ML और SW engineer के बीच यह gap साफ़ दिखता है, और अच्छा होता अगर hiring process में इसे बेहतर तरीके से सामने लाया जा सके
  • अभी के माहौल में ऐसा लगता है कि MLE mindset को दूसरे groups पर भी ज़बरदस्ती लागू किया जा रहा है
    ऐसे product बेचने वाली company में जहाँ accuracy और correctness बहुत महत्वपूर्ण हैं, ML टीम 80~90% को पर्याप्त मानती है, और इस पर architect की नाराज़गी देखी गई
    pandemic में 1% fatality rate की चर्चाओं की तरह, यह याद रखना चाहिए कि छोटा percentage भी बड़ा असर डाल सकता है
  • deterministic behavior बनाम probabilistic behavior के अंतर का ज़िक्र
    यह लेख AI और software engineering के meta सवाल पर केंद्रित है, यानी program entropy का management
    entropy management software product बनाने का बहुत बड़ा हिस्सा है, और AI कभी भविष्य में इसे आसान बना सकता है, लेकिन अभी तो कई बार entropy को और खराब कर देता है
  • अभी AI (खासकर ML) में master's कर रहा/रही हूँ और SWE के रूप में नई skills विकसित कर रहा/रही हूँ
    MLE को SWE के बड़े perspective से देखते हुए, robust pipeline बनाना, model integration, deployment आदि का पूरा समझना ज़रूरी है
    लेकिन ज़्यादातर pure MLE majors में SWE नज़रिया कम होता है, और अक्सर computer systems की instinct के बिना सिर्फ ML समझा जाता है
    सचमुच full-stack बनने के लिए low-level systems, architecture, deployment और MLE सब समझना ज़रूरी है
    लेकिन market hiring ज़्यादातर SWE या MLE PhD ही खोजती है; जो यह सब जानता/जानती है, उसके लिए बेहतर reward की इच्छा स्वाभाविक है
  • software engineers भी वास्तव में probabilistic thinking का काफ़ी इस्तेमाल करते हैं
    जैसे race condition को redesign करना, DB calls के p99 का अनुमान लगाना, A/B tests आदि
  • लेख की बातों से कुल मिलाकर सहमत हूँ, लेकिन LLM इस्तेमाल करते हुए कुछ सकारात्मक बदलाव भी देखे
    30 साल के अनुभव वाले senior developer के रूप में, AI-generated code पढ़ने की ज़रूरत का मतलब है कि development code review-केंद्रित flow की ओर जा रहा है
    इससे individual developer को भी team-level accountability और code पढ़ने के अनुभव से सीखने में मदद मिलती है
    साथ ही, LLM का सही उपयोग करने के लिए problem की hierarchical structure को समझना अनिवार्य है
    sections के हिसाब से विस्तार से design करके implement करना, स्वाभाविक रूप से interfaces और boundaries को define करने में मदद करता है
    LLM वह catalyst है जो junior को senior बनने की गति बढ़ाता है और experienced developers की learning को महसूस करने में मदद करता है
    AI developers को replace नहीं करेगा, बल्कि अंततः एक tool की तरह घुल-मिल जाएगा
    • मेरा मानना है कि हमेशा लिखे जाने वाले code से ज़्यादा पढ़ा जाने वाला code होना चाहिए
      LLM-generated code monotonous हो सकता है, लेकिन वह भी learning opportunity है
      LLM-generated code से कई नए idioms/library calls आदि के बारे में पता चलता है
      जितने senior होंगे, उतने बेहतर prompts दे पाएँगे, इसलिए LLM और ज़्यादा शक्तिशाली catalyst बनता है
    • AI code को शुरुआती prototype स्तर पर copy-paste करने के लिए बहुत अच्छा है, लेकिन review और commit उसके भरोसे नहीं छोड़े जा सकते
    • company के नज़रिए से, AI juniors की मदद के लिए नहीं बल्कि junior hiring खत्म करने और seniors से AI के साथ 10x productivity माँगने का बहाना बन सकता है
      big tech, mid tech, small tech—सब जगह layoffs जारी हैं
  • AI बहस की तुलना उस पुराने विचार से की गई कि क्या 3D printing सारी manufacturing को replace कर देगी
    तर्क यह है कि AI singularity से ज़्यादा ऐसी ही व्यावहारिक बदलावों के करीब है
    • 3D printing वाकई शानदार और innovative technology है, लेकिन injection molding आज भी मौजूद है
    • 3D printing singularity नहीं लाती, लेकिन university education जैसे knowledge work के क्षेत्रों में AI पहले ही बड़ा असर डाल रहा है
      lecture/assignment/class के वे तरीके जो पहले स्वाभाविक लगते थे, LLM आने के बाद दुनिया भर में तेज़ी से बदल रहे हैं
    • 3D printing aerospace, space आदि कई industries में बड़े बदलाव और innovation लाने का उदाहरण है
      SpaceX न होता तो कई चीज़ें वास्तव में संभव नहीं होतीं
    • यह उस उम्मीद जैसा भी है कि Bitcoin banks को replace कर देगा
      अंत में banks ने ही Bitcoin-आधारित financial products बेचने शुरू कर दिए
    • 3D printing और AI की growth curves पूरी तरह अलग हैं
      3D printing को existing manufacturing replacement नहीं माना जाता, और वह ज़्यादातर prototype/mockup/PoC तक सीमित है
  • LLM code लिखने में शानदार है, लेकिन 'जिम्मेदारी' का subject नहीं बन सकता
    जो code बिना समझे स्वीकार किया जाता है, उसकी maintenance बाद में बहुत महँगी पड़ती है, यानी technical debt
    यह मानो free speed का भ्रम हो, जबकि असल में करीब 40% annual interest rate से technical debt जमा हो रहा हो
    AI typing को automate कर सकता है, लेकिन सोचना इंसान को ही करना होगा
    • LLM ने सच में 'समझा' नहीं है; असली comprehension तभी होती है जब इंसान codebase के context और system को समझता है
    • testing, isolated subsystem structuring (tdd, microservices आदि) से interest rate (technical debt) कम करने का सुझाव
      कुछ लोगों के अनुसार, tdd और microservices जैसी चीज़ें जो पारंपरिक development में अनावश्यक लगती थीं, LLM युग में और अधिक मूल्यवान हो सकती हैं
    • task के अनुसार, AI कई बार code लिखने में भी बहुत खराब साबित होता है
  • input risk सबसे बड़ा pain point था, ऐसा अनुभव साझा किया गया
    prompt की छोटी-सी ambiguity भी परिणाम को पूरी तरह पटरी से उतार सकती है, और जब तक यह पता चलता है, तब तक संभालना मुश्किल हो जाता है
    मानवीय भाषा की ambiguity की वजह से ही अंततः स्पष्ट formal languages पैदा हुईं
    व्यक्तिगत रूप से AI tooling इस्तेमाल करते हुए लगा कि skill तेज़ी से गिर रही है; कई बार समय और ऊर्जा उल्टा ज़्यादा खर्च हुई
    AI उपयोगी है, लेकिन एक पक्ष वह है जहाँ complex problems में छोटी गलतियाँ जमा होती जाती हैं, और दूसरा पक्ष managers/non-technical लोग हैं जो सिर्फ result देखकर 'role replacement' की बात करते हैं
    [विस्तृत अनुभव: पिछली टिप्पणी]
    • AI को अपना assistant मानें, लेकिन quality/maintenance की ज़िम्मेदारी खुद लें
      जैसे calculator ने लोगों की mental math कमज़ोर की, वैसे ही AI writing, communication, problem-solving क्षमता को भी कम कर सकता है
    • अस्पष्ट शब्दों वाला input LLM से illogical परिणाम दिला सकता है
      इसलिए छोटे और स्पष्ट tasks, या StackOverflow पर मिलने वाली समस्याओं तक ही LLM इस्तेमाल करने का तरीका अपनाया गया
      जवाब को absolute truth नहीं, बल्कि guide की तरह लें
    • AI कुछ समस्याएँ जल्दी हल करा देता है, लेकिन जिन समस्याओं को वह ज़रूरत से ज़्यादा जटिल बना देता है, उन्हें हल नहीं कर पाता
      पूरे blueprint को समझने की मानव क्षमता ही entropy के खिलाफ़ मुख्य रक्षा है
    • एक अक्सर इस्तेमाल किया जाने वाला तरीका: पहले LLM से कहना, "3 rounds, 5-5 स्पष्ट सवाल पूछो"
      इससे topic/context को और साफ़ किया जा सकता है
      उम्मीद है यह छोटा टिप दूसरों के भी काम आएगा
    • इस hype युग के बाद, अंततः quality control का महत्व फिर से खोजा जाएगा, ऐसा आभास है
      उदाहरण: पुराना Coke vs Pepsi युद्ध
  • इस दावे से सहमत होना कठिन है कि LLM ideas, diagrams, specifications को conceptual स्तर पर नहीं संभालता
    अगर LLM से design intent के संदर्भ में पूछा जाए, जैसे 'simplified code दो', तो उससे अच्छा second opinion मिल सकता है
    अगर पूछा ही न जाए तो जवाब मिलेगा ही नहीं, और default settings भी हमारी ही पसंद हैं, इसलिए इसे underlying technology के स्वभाव से जोड़ना सही नहीं लगता
    • LLM के conceptual work के कई empirical उदाहरण पहले ही सामने आ चुके हैं
      वास्तविक दुनिया में कोई भी व्यक्ति किसी बहुत बड़े program को पूरी तरह दिमाग में नहीं रख सकता; tools और languages अधिकतर partial understanding पर ही विकसित हुए हैं
      LLM भी उसी सीमा को साझा करता है, इसलिए इस ढाँचे में इंसान और LLM दोनों की सीमाएँ कुछ हद तक मिलती-जुलती हैं
    • junior code review करते समय, code quality से ज़्यादा direction की समस्या दिखती है
      अफ़सोस यह है कि LLM के लिए उस direction पर 'ऐसा क्यों कर रहे हो?' जैसा सवाल पूछना कठिन है
    • क्या कोई code→diagram conversion automation tool इस्तेमाल करता है, या खुद बनाता है—यह सवाल पूछा गया
  • Google/Apple Maps जैसे map software से इंसानों की रास्ता खोजने की क्षमता कमज़ोर पड़ने वाली दलील से समानता का ज़िक्र
    इसमें कुछ सच्चाई है, लेकिन ज़्यादातर लोग पहले से ही direction में अच्छे नहीं थे, और maps की वजह से A→B जाने की औसत क्षमता शायद बढ़ी है
    जो थोड़े लोग पहले से कुशल थे, उनके लिए भी technology उनकी क्षमता को replace करने के बजाय assist करती है
    AI भी बड़े पैमाने पर ऐसा ही बदलाव लाएगा; कुछ skills घटेंगी और कुछ नुकसान होंगे, लेकिन काफ़ी लाभ भी मिलेंगे
    • reliability के मामले में maps की तुलना LLM से नहीं की जा सकती
      maps लगभग हमेशा expected value देते हैं, लेकिन LLM एक ही prompt पर अलग परिणाम दे सकता है, इसलिए उस पर भरोसा करना मुश्किल है
      जैसे maps पर अंधा भरोसा करके लोग झील में जा गिरते हैं, वैसे ही LLM पर अंधा भरोसा और बड़ा नुकसान करा सकता है
    • व्यक्तिगत रूप से map software का उपयोग spatial memory में मददगार लगा
      खुलकर भटकने और ज़रूरत पर route पकड़ लेने की सुविधा से अनुभव और बढ़ जाता है
    • Google Maps taxi driver से 90% से भी ज़्यादा accurate है
      AI कई बार उस आम इंसान से भी बदतर है जिसने उस क्षेत्र में बस कुछ दिन ही काम किया हो
    • 'औसत skill में सुधार' वाले दावे के समर्थन में सबूत है भी या नहीं, इस पर सवाल
  • लेखक के इस दावे से सहमति नहीं कि '[AI] conceptual level पर काम नहीं कर सकता'
    हाल के LLM स्पष्ट रूप से conceptual level पर काम कर सकते हैं, जैसे concept translation/application
    यह भी दावा है कि वे ऐसे concepts को समझते हैं जिन्हें इंसान ने व्यक्तिगत रूप से अनुभव न किया हो
    • LLM token clusters के ज़रिए concepts को model करता है
      उदाहरण: 'dog' के आसपास उससे जुड़े शब्द इकट्ठे होते हैं
      लेकिन combinations, intention, counterfactual logic आदि को model नहीं कर पाता
      training data से मिलते-जुलते सवालों में यह काफ़ी अच्छा चलता है
      software engineering जैसे क्षेत्रों में, जहाँ conceptualization अच्छी तरह defined है, यह उपयोगी हो सकता है
    • इंसान भी ऐसे concepts समझ सकते हैं जिन्हें उन्होंने सीधे अनुभव नहीं किया, इसका अतिरिक्त उदाहरण दिया गया
  • व्यावहारिक रूप से 70% कर्मचारी काम को बस जैसे-तैसे करते हैं, और कई बार AI उनसे बेहतर भी हो सकता है
    आख़िरकार जो लोग मेहनत से काम नहीं करते, वे AI के साथ भी नहीं बदलेंगे; सीखने वाले लोग ही AI के साथ बढ़ेंगे
    • खुद को 30% में मान लेने वाली self-centered narrative की सीमा की ओर इशारा
    • जो लोग AI से बस काम टालना चाहते हैं, वे उल्टा अपनी नौकरी जाने का जोखिम बढ़ाते हैं
      अगर AI काम बेहतर कर दे, तो वही उन्हें replace करने का justification बन सकता है
    • बड़े enterprises के संदर्भ में यह तर्क सबसे यथार्थवादी लगा, ऐसी सहमति
      FSD (self-driving) भी experts की तुलना में नहीं, बल्कि आम drivers की तुलना में कहीं बेहतर है
  • हाल में 90s.dev को non-AI community, software craftsmanship की जगह के रूप में फिर से बनाने की ज़रूरत महसूस हुई
    forum, mailing list, multi-blog format आदि पर विचार चल रहा है
    अस्थायी mailing list
    • पूरी तरह open signup के बजाय, invite-based और trusted referrer tree वाला ढाँचा ज़्यादा टिकाऊ community के लिए बेहतर हो सकता है
      कुछ communities में ऐसे सफल उदाहरण पहले से हैं
    • उस दौर के classic forum software को retro design के साथ इस्तेमाल करना भी एक अच्छा विचार है