2025-11-17T18:07:13.560068

A Matter of Representation: Towards Graph-Based Abstract Code Generation

Iskandar, Bedri, Tsen
Most large language models (LLMs) today excel at generating raw, sequential code with minimal abstractions and custom structures. However, there has been little work on graph-based abstract code generation, where significant logic is encapsulated in predefined nodes and execution flow is determined by edges. This is relevant for visual programming languages, and in cases where raw source code is inaccessible to users and LLM training sets. In this work, we propose and evaluate JSON representations for graphs to enable high accuracy graph-based abstract code generation. We evaluate these representations on ScratchTest, a mini-benchmark based on our custom Python re-implementation of Scratch, which tests the LLM in code graph space. Our findings demonstrate that LLMs can indeed perform the aforementioned generation task in a single pass without relying on specialized or complex pipelines, given the correct graph representations. We also show that different representations induce significantly different accuracies, highlighting the instrumental role of representations in this generation task. All in all, this work establishes the first steps towards representation learning for graph-based abstract code generation.
academic

प्रतिनिधित्व का मामला: ग्राफ-आधारित अमूर्त कोड जनरेशन की ओर

मूल जानकारी

  • पेपर ID: 2510.13163
  • शीर्षक: A Matter of Representation: Towards Graph-Based Abstract Code Generation
  • लेखक: Nyx Iskandar (UC Berkeley), Hisham Bedri (Ramen VR), Andy Tsen (Ramen VR)
  • वर्गीकरण: cs.CL (कम्प्यूटेशनल भाषाविज्ञान)
  • प्रकाशन सम्मेलन: 39th Conference on Neural Information Processing Systems (NeurIPS 2025) Workshop: Deep Learning for Code
  • पेपर लिंक: https://arxiv.org/abs/2510.13163v1

सारांश

वर्तमान में अधिकांश बड़े भाषा मॉडल (LLMs) कच्चे, अनुक्रमिक कोड जनरेशन में उत्कृष्ट प्रदर्शन करते हैं, लेकिन ग्राफ-आधारित अमूर्त कोड जनरेशन पर अनुसंधान बहुत सीमित है। ग्राफ-आधारित अमूर्त कोड महत्वपूर्ण तर्क को पूर्वनिर्धारित नोड्स में समाहित करता है, जिसमें किनारे (edges) निष्पादन प्रवाह निर्धारित करते हैं। यह कोड रूप दृश्य प्रोग्रामिंग भाषाओं में सामान्य है और उन परिस्थितियों में महत्वपूर्ण है जहां कच्चा स्रोत कोड उपयोगकर्ताओं और LLM प्रशिक्षण सेट के लिए सुलभ नहीं है। यह पेपर ग्राफ के JSON प्रतिनिधित्व के तरीकों का प्रस्ताव देता है और मूल्यांकन करता है, जो उच्च सटीकता के साथ ग्राफ-आधारित अमूर्त कोड जनरेशन को सक्षम बनाता है। लेखकों ने ScratchTest पर इन प्रतिनिधित्व विधियों का मूल्यांकन किया है, जो Scratch के आधार पर Python पुनः कार्यान्वयन का एक छोटा बेंचमार्क है। अनुसंधान से पता चलता है कि सही ग्राफ प्रतिनिधित्व के तहत, LLMs वास्तव में विशेष या जटिल पाइपलाइन पर निर्भर किए बिना एकल पास में यह कार्य पूरा कर सकते हैं। विभिन्न प्रतिनिधित्व विधियां काफी भिन्न सटीकता दरों की ओर ले जाती हैं, जो इस जनरेशन कार्य में प्रतिनिधित्व की महत्वपूर्ण भूमिका को उजागर करती हैं।

अनुसंधान पृष्ठभूमि और प्रेरणा

समस्या परिभाषा

वर्तमान LLMs कोड जनरेशन क्षेत्र में मुख्य रूप से कच्चे, अनुक्रमिक कोड जनरेशन पर केंद्रित हैं, जहां कोड को पंक्तियों की इकाइयों में रैखिक तरीके से व्यवस्थित किया जाता है। हालांकि, कई व्यावहारिक अनुप्रयोग परिदृश्यों को ग्राफ-आधारित अमूर्त कोड जनरेशन की आवश्यकता होती है, जैसे:

  • दृश्य प्रोग्रामिंग भाषाएं: Scratch, Unreal Engine Blueprints, n8n आदि
  • उच्च अमूर्तता वाली लाइब्रेरी और फ्रेमवर्क: कार्यान्वयन विवरण समाहित होते हैं, उपयोगकर्ता केवल पूर्वनिर्धारित इंटरफेस के माध्यम से संचालन कर सकते हैं

महत्व विश्लेषण

  1. व्यापक अनुप्रयोग: ग्राफ-आधारित प्रोग्रामिंग भाषाओं का व्यापक रूप से शुरुआती लोगों, गेम डेवलपर्स और सॉफ्टवेयर इंजीनियरों द्वारा उपयोग किया जाता है
  2. प्रशिक्षण डेटा की कमी: नई लाइब्रेरी और फ्रेमवर्क में पर्याप्त प्रशिक्षण डेटा की कमी है, जो ग्राफ-आधारित कोड के समान अमूर्तता चुनौतियों का सामना करते हैं
  3. गैर-रैखिक संबंध: ग्राफ-आधारित भाषाएं नोड्स के बीच जटिल गैर-रैखिक संबंध पेश करती हैं, जिन्हें पारंपरिक संदर्भ सीखना मुश्किल से हल कर सकता है

मौजूदा विधियों की सीमाएं

  • ग्राफ जनरेशन विधियां: GraphRNN, GraphGAN आदि सामान्य ग्राफ जनरेशन पर केंद्रित हैं, कार्यात्मक कोड ग्राफ के लिए उपयुक्त नहीं हैं
  • ग्राफ फाउंडेशन मॉडल (GFMs): GNN-आधारित विधियां खराब स्केलेबिलिटी रखती हैं, LLM-आधारित विधियां कमजोर प्राकृतिक भाषा पर अत्यधिक निर्भर हैं
  • कोड जनरेशन मॉडल: मुख्य रूप से अनुक्रमिक कोड के लिए डिज़ाइन किए गए हैं, विभिन्न भाषाओं/फ्रेमवर्क के लिए समर्थन क्षमता में बड़ा अंतर है

मुख्य योगदान

  1. नोड्स के लिए JSON प्रतिनिधित्व विधि का प्रस्ताव: वर्तमान LLMs को सबसे सटीक वाक्य रचना और तर्क के साथ कोड ग्राफ जनरेट करने में सक्षम बनाता है
  2. कोड ग्राफ के लिए JSON प्रतिनिधित्व विधि का प्रस्ताव: LLMs आउटपुट ग्राफ प्रतिनिधित्व की सटीकता को और बढ़ाता है
  3. ScratchTest बेंचमार्क का निर्माण: Scratch के आधार पर Python पुनः कार्यान्वयन, विशेष रूप से ग्राफ-आधारित अमूर्त कोड जनरेशन क्षमता का मूल्यांकन करने के लिए
  4. प्रतिनिधित्व के महत्व का सत्यापन: सिंगल-एजेंट LLM फ्रेमवर्क के तहत, सही प्रतिनिधित्व जनरेशन सटीकता को काफी हद तक बढ़ा सकता है

विधि विवरण

कार्य परिभाषा

  • इनपुट: प्राकृतिक भाषा में वर्णित कार्यात्मक आवश्यकताएं
  • आउटपुट: आवश्यकताओं को पूरा करने वाला जुड़ा हुआ ग्राफ, जिसमें पूर्वनिर्धारित नोड्स और किनारों के कनेक्शन संबंध हैं
  • बाधाएं: ग्राफ को निर्देशित अचक्रीय ग्राफ (DAG) होना चाहिए, जो वैध निष्पादन अनुक्रम सुनिश्चित करता है

ScratchTest बेंचमार्क डिज़ाइन

बेंचमार्क विशेषताएं

  • नोड्स की संख्या: 53 अंतर्निहित Scratch ब्लॉक्स (कुल 107 में से CLI में कार्यान्वयन योग्य भाग)
  • नोड प्रकार: गति, उपस्थिति, ध्वनि, घटना, नियंत्रण, संवेदन, ऑपरेटर, चर आदि 8 श्रेणियां
  • सरलीकृत कार्यान्वयन: स्प्राइट्स को सीधे संचालित नहीं करता, कार्यात्मक मूल्यांकन के लिए व्यवहार लॉग का उपयोग करता है
  • स्थिति स्थिरता: स्प्राइट विशेषताओं का शब्दकोश बनाए रखता है (स्थिति, दिशा आदि)

मूल्यांकन विधि

  • परीक्षण सेट: 20 अद्वितीय कार्यात्मक विवरण प्रॉम्प्ट्स
  • मूल्यांकन पुनरावृत्तियां: प्रत्येक प्रॉम्प्ट को स्वतंत्र रूप से 5 बार चलाया जाता है
  • मूल्यांकन मानदंड: व्यवहार लॉग और Python फ़ाइल की तार्किक सटीकता का मैनुअल मूल्यांकन

प्रतिनिधित्व विधि डिज़ाइन

संदर्भ नोड प्रतिनिधित्व

[NODENAME]: {
    inPorts: [{id: string, type: string}],
    fields: [{id: string, type: string}],
    outPorts: [{id: string, type: string}]
}

मुख्य घटक:

  • NODENAME: Scratch ब्लॉक नाम के अनुरूप
  • inPorts: इनपुट पोर्ट्स, जिनमें पैरामीटर और EXEC पोर्ट्स (निष्पादन प्रवाह) शामिल हैं
  • fields: पूर्वनिर्धारित विकल्पों के पैरामीटर
  • outPorts: आउटपुट पोर्ट्स, जिनमें रिटर्न मान, THEN पोर्ट्स (अगला निष्पादन), SUBSTACK पोर्ट्स (लूप/नियंत्रण) शामिल हैं
  • type: पोर्ट प्रकार, असंगत कनेक्शन को रोकता है

आउटपुट ग्राफ प्रतिनिधित्व

{
    nodes: {
        [key: string]: {
            name: string,
            value: any | null
        }
    },
    edges: [{
        outNodeID: string,
        outPortID: string,
        inNodeID: string,
        inPortID: string
    }]
}

डिज़ाइन लाभ:

  • चिंताओं का पृथक्करण: नोड्स और किनारों को अलग से परिभाषित किया जाता है, त्रुटियों को कम करता है
  • रैखिक जनरेशन: पहले नोड्स को परिभाषित करें, फिर कनेक्शन संबंध परिभाषित करें
  • दोहराव से बचना: प्रत्येक किनारे को केवल एक बार परिभाषित करने की आवश्यकता है

पोस्ट-प्रोसेसिंग प्रवाह

  1. टोपोलॉजिकल सॉर्टिंग: ग्राफ की निर्देशित अचक्रीय संपत्ति सुनिश्चित करता है
  2. Python रूपांतरण: ग्राफ प्रतिनिधित्व को Pythonic Scratch कार्यान्वयन में परिवर्तित करता है
  3. ऑब्जेक्ट इंस्टेंशिएशन: Scratch ब्लॉक ऑब्जेक्ट्स बनाता है और चर बांधता है
  4. कनेक्शन स्थापना: THEN और EXEC पोर्ट्स के आधार पर निष्पादन प्रवाह स्थापित करता है

प्रयोगात्मक सेटअप

डेटासेट

  • ScratchTest: 20 कार्यात्मक विवरण प्रॉम्प्ट्स
  • उदाहरण प्रॉम्प्ट्स:
    • "जब हरा झंडा क्लिक किया जाता है, तो उपयोगकर्ता स्पेस कुंजी दबाने तक लगातार वर्ग पैटर्न में चलते रहें"
    • "जब 's' कुंजी दबाई जाती है, तो दो यादृच्छिक अक्षरों और तीन यादृच्छिक संख्याओं से बना एक गुप्त पासवर्ड कहें"

मूल्यांकन मेट्रिक्स

  • सटीकता: कार्यात्मकता को सही तरीके से लागू करने का अनुपात
  • मूल्यांकन मानदंड:
    • उचित व्यवहार लॉग आउटपुट
    • तार्किक रूप से सही Python फ़ाइल
    • कोई पोस्ट-प्रोसेसिंग या निष्पादन त्रुटि नहीं

तुलनात्मक विधियां

संदर्भ नोड प्रतिनिधित्व एब्लेशन

  1. No Types: पोर्ट प्रकार जानकारी को हटाने वाली न्यूनतम बेसलाइन
  2. Extra Description: नोड्स और पोर्ट्स के प्राकृतिक भाषा विवरण जोड़ना
  3. Proposed: पूर्ण प्रस्तावित प्रतिनिधित्व

आउटपुट ग्राफ प्रतिनिधित्व एब्लेशन

  1. Alternative: नोड्स में किनारों की जानकारी को एम्बेड करने वाली वैकल्पिक प्रतिनिधित्व
  2. Proposed: नोड्स और किनारों को अलग करने वाली प्रस्तावित प्रतिनिधित्व

कार्यान्वयन विवरण

  • मुख्य मॉडल: OpenAI gpt-oss-120b (Groq प्लेटफॉर्म)
  • अन्य मॉडल: qwen3-32b, deepseek-r1-distill-llama-70b, llama-3.3-70b-versatile
  • कॉन्फ़िगरेशन: Temperature=1, Max Tokens=8192, Top P=1
  • फ्रेमवर्क: सिंगल-एजेंट, कोई फाइन-ट्यूनिंग नहीं, कोई कॉन्टेक्स्ट लर्निंग नहीं, कोई मल्टी-टर्न इंटरैक्शन नहीं

प्रयोगात्मक परिणाम

मुख्य परिणाम

संदर्भ नोड प्रतिनिधित्व एब्लेशन परिणाम

विधिऔसत सटीकतामानक विचलन
No Types0.650.071
Extra Description0.740.082
Proposed0.750.050

सांख्यिकीय महत्व:

  • Proposed vs No Types: p=0.036 ≤ 0.05 (महत्वपूर्ण)
  • Proposed vs Extra Description: p=0.82 > 0.05 (महत्वपूर्ण नहीं)

आउटपुट ग्राफ प्रतिनिधित्व एब्लेशन परिणाम

विधिऔसत सटीकतामानक विचलन
Alternative0.490.042
Proposed0.750.050

सांख्यिकीय महत्व: p=0.000024 ≤ 0.05, Proposed ने Alternative की तुलना में 23-29% सुधार किया

मुख्य निष्कर्ष

  1. प्रकार जानकारी का महत्व: पोर्ट प्रकार जोड़ने से सटीकता में काफी सुधार होता है, असंगत कनेक्शन को रोकता है
  2. विवरण जानकारी का सीमित मूल्य: प्राकृतिक भाषा विवरण प्रदर्शन में काफी सुधार नहीं कर सकते, बल्कि टोकन खपत बढ़ाते हैं
  3. प्रतिनिधित्व संरचना की महत्वपूर्ण भूमिका: अलग-अलग ग्राफ प्रतिनिधित्व एम्बेडेड प्रतिनिधित्व से काफी बेहतर है
  4. सामंजस्य में सुधार: प्रस्तावित विधि कई रन में अधिक स्थिर प्रदर्शन करती है

सामान्य त्रुटि प्रकार

  1. अमान्य DAG: चक्र युक्त ग्राफ जनरेट करना
  2. अघोषित चर संदर्भ: अपरिभाषित चर का संदर्भ देना
  3. पोर्ट कनेक्शन त्रुटि: समान दिशा वाले पोर्ट्स को कनेक्ट करना या पोर्ट परिभाषा भूलना

अन्य मॉडल प्रदर्शन

अन्य तीन मॉडल (qwen3-32b, deepseek-r1-distill-llama-70b, llama-3.3-70b-versatile) का प्रदर्शन gpt-oss-120b से स्पष्ट रूप से कम है, अधिकांश मामलों में सटीकता कम और त्रुटि दर अधिक है।

संबंधित कार्य

ग्राफ समझ और जनरेशन

  • सामान्य ग्राफ जनरेशन: GraphRNN, GraphGAN ग्राफ वितरण सीखने पर केंद्रित हैं, कार्यात्मक कोड ग्राफ के लिए उपयुक्त नहीं हैं
  • ग्राफ फाउंडेशन मॉडल: GNN-आधारित विधियां खराब स्केलेबिलिटी रखती हैं, LLM-आधारित विधियां कमजोर प्राकृतिक भाषा पर निर्भर हैं
  • LLM ग्राफ समझ: मौजूदा कार्य मुख्य रूप से गणितीय ग्राफ समझ का मूल्यांकन करते हैं, तार्किक कोडिंग ग्राफ नहीं

LLM कोड एजेंट्स

  • कोड जनरेशन क्षमता: वर्तमान LLMs पारंपरिक कोड जनरेशन में उत्कृष्ट प्रदर्शन करते हैं
  • वर्धन विधियां: सुदृढीकरण सीखना, विचार श्रृंखला, भरण-रिक्त प्रशिक्षण, बाधा डिकोडिंग आदि
  • प्रदर्शन अंतर: विभिन्न भाषाओं/फ्रेमवर्क के लिए जनरेशन क्षमता में महत्वपूर्ण अंतर है, मुख्य रूप से प्रशिक्षण डेटा उपलब्धता द्वारा निर्धारित

निष्कर्ष और चर्चा

मुख्य निष्कर्ष

  1. व्यवहार्यता सत्यापन: LLMs एकल पास में ग्राफ-आधारित अमूर्त कोड जनरेशन पूरा कर सकते हैं
  2. प्रतिनिधित्व की महत्वपूर्ण भूमिका: सही JSON प्रतिनिधित्व जनरेशन सटीकता के लिए महत्वपूर्ण है
  3. डिज़ाइन सिद्धांत: प्रकार जानकारी, चिंताओं का पृथक्करण, रैखिक जनरेशन प्रवाह प्रभावी प्रतिनिधित्व के मुख्य तत्व हैं
  4. बेंचमार्क स्थापना: ScratchTest ग्राफ-आधारित कोड जनरेशन के लिए मूल्यांकन बेंचमार्क प्रदान करता है

सीमाएं

  1. सटीकता सीमा: सर्वोत्तम प्रतिनिधित्व का उपयोग करने के बाद भी, 100% सटीकता तक नहीं पहुंचता है
  2. मॉडल निर्भरता: प्रदर्शन विशिष्ट LLM क्षमताओं पर अत्यधिक निर्भर है
  3. स्केल सीमा: वर्तमान में केवल अपेक्षाकृत सरल Scratch डोमेन में सत्यापित है
  4. मूल्यांकन विधि: मैनुअल मूल्यांकन पर निर्भर है, स्वचालित मूल्यांकन मानदंड की कमी है

भविष्य की दिशाएं

  1. प्रतिनिधित्व अनुकूलन: गैर-JSON अधिक इष्टतम प्रतिनिधित्व विधियों की खोज करना
  2. विशेष मॉडल: कोड ग्राफ स्पेस के लिए विशेष रूप से डिज़ाइन किए गए जनरेशन मॉडल विकसित करना
  3. मल्टी-एजेंट फ्रेमवर्क: योजना और त्रुटि सुधार के साथ मल्टी-टर्न विधियों को संयोजित करना
  4. बड़े पैमाने पर सत्यापन: अधिक जटिल ग्राफ-आधारित प्रोग्रामिंग वातावरण में सत्यापन करना

गहन मूल्यांकन

शक्तियां

  1. समस्या की नवीनता: ग्राफ-आधारित अमूर्त कोड जनरेशन समस्या का पहली बार व्यवस्थित अध्ययन
  2. विधि सरलता: प्रस्तावित JSON प्रतिनिधित्व विधि सरल और प्रभावी है, कार्यान्वयन और विस्तार में आसान है
  3. प्रयोगात्मक कठोरता: कई रन और सांख्यिकीय परीक्षण के माध्यम से परिणाम विश्वसनीयता सुनिश्चित करता है
  4. व्यावहारिक मूल्य: दृश्य प्रोग्रामिंग भाषाओं के AI-सहायक विकास के लिए आधार प्रदान करता है

कमियां

  1. मूल्यांकन सीमा: मैनुअल मूल्यांकन विधि पर्याप्त उद्देश्यपूर्ण नहीं है, बड़े पैमाने पर अनुप्रयोग में कठिन है
  2. बेंचमार्क स्केल: 20 परीक्षण मामले अपेक्षाकृत कम हैं, पूर्ण कवरेज के लिए अपर्याप्त हो सकते हैं
  3. मॉडल कवरेज: मुख्य रूप से एक मॉडल के परिणामों पर आधारित है, अन्य मॉडल का प्रदर्शन कम है
  4. सैद्धांतिक विश्लेषण: कुछ प्रतिनिधित्व अधिक प्रभावी क्यों हैं इसके गहन सैद्धांतिक व्याख्या की कमी है

प्रभाव

  1. अग्रणी योगदान: ग्राफ-आधारित कोड जनरेशन के लिए अनुसंधान आधार स्थापित करता है
  2. व्यावहारिक अनुप्रयोग: Scratch जैसे दृश्य प्रोग्रामिंग उपकरणों में सीधे लागू किया जा सकता है
  3. विस्तारशीलता: विधि अन्य ग्राफ-आधारित प्रोग्रामिंग वातावरण में विस्तारित की जा सकती है
  4. प्रेरणा महत्व: कोड जनरेशन में प्रतिनिधित्व सीखने के महत्व को रेखांकित करता है

लागू परिदृश्य

  1. शिक्षा क्षेत्र: Scratch जैसे शिक्षण उपकरणों के कोड जनरेशन में सहायता
  2. तीव्र प्रोटोटाइपिंग: गेम विकास में ब्लूप्रिंट सिस्टम स्वचालन
  3. वर्कफ़्लो स्वचालन: n8n जैसे उपकरणों की बुद्धिमान कॉन्फ़िगरेशन
  4. नई लाइब्रेरी अनुकूलन: प्रशिक्षण डेटा की कमी वाली नई फ्रेमवर्क के लिए कोड जनरेशन

संदर्भ

पेपर में 54 संबंधित संदर्भ उद्धृत किए गए हैं, जो LLM कोड जनरेशन, ग्राफ न्यूरल नेटवर्क, दृश्य प्रोग्रामिंग भाषाएं आदि कई क्षेत्रों के महत्वपूर्ण कार्यों को कवर करते हैं, जो अनुसंधान के लिए एक मजबूत सैद्धांतिक आधार प्रदान करते हैं।


समग्र मूल्यांकन: यह एक अग्रणी कार्य है जो ग्राफ-आधारित अमूर्त कोड जनरेशन समस्या को पहली बार व्यवस्थित रूप से हल करता है। हालांकि मूल्यांकन विधि और सैद्धांतिक विश्लेषण में सुधार की गुंजाइश है, लेकिन इसके द्वारा प्रस्तावित प्रतिनिधित्व विधि सरल और प्रभावी है, जो इस नई अनुसंधान दिशा के लिए एक महत्वपूर्ण आधार स्थापित करती है। यह कार्य मजबूत व्यावहारिक मूल्य और प्रेरणा महत्व रखता है, और संबंधित क्षेत्र के आगे विकास को बढ़ावा देने की अपेक्षा की जाती है।