تحقیقی نوٹ
تولیدی ماڈلز سے کوڈ کی مقامی ترمیم
پورے فنکشن کی غیر ضروری بازنویسی روکتے ہوئے، تولیدی ماڈل کو مطلوبہ تبدیلی کے لیے کافی آزادی کیسے دی جائے۔
براہِ راست جواب
ایک تولیدی ماڈل پورا فنکشن دوبارہ لکھے بغیر کوڈ میں ترمیم کیسے کر سکتا ہے؟
تولید سے پہلے محفوظ اور قابلِ تدوین خطے متعین کریں، محفوظ نمائندگی کو دوبارہ استعمال یا مقید کریں، صرف امکانی تبدیلیاں پیدا کریں، اور ایسے مخرجات رد کریں جو محفوظ کوڈ بدلیں یا کام سے مخصوص پڑتالوں میں ناکام ہوں۔ مقامیت اور کام کی کامیابی کو ساتھ ناپنا لازم ہے۔
یہ امتیاز کیوں اہم ہے
طریقے اور دعویٰ کردہ ضمانت کو ایک ہی قابلِ مشاہدہ حد چاہیے۔
مقامی کوڈ تبدیلی، ترمیم کا مسئلہ ہے؛ یہ محض کوڈ کی تولید کے لیے مختصر تر پرامپٹ نہیں۔ ان پٹ میں پہلے ہی ایک ایسی مصنوعہ موجود ہوتی ہے جسے محفوظ رکھنا اہم ہے، اس لیے طریقۂ کار کو قابلِ تبدیلی علاقے اور لازماً مستحکم رہنے والی خصوصیات کے درمیان واضح حدِ تحفظ درکار ہوتی ہے۔
حد source span، syntax node، API signature، test behavior، dependency contract یا learned latent position ہو سکتی ہے۔ یہ انتخاب باہم بدل نہیں سکتے: ہر ایک الگ قابلِ مشاہدہ خاصیت بچاتا اور موزوں توثیق چاہتا ہے۔
ایک عملی طریقۂ کار
معاہدۂ تحفظ بیان کریں
قابلِ ترمیم علاقے اور اس عین متن، ساخت، واسطے، یا رویّے کی نشان دہی کریں جسے بلا تبدیلی برقرار رہنا ہے۔
مفید ترین محدود سطحِ کنٹرول منتخب کریں
غیر تبدیل شدہ ماخذ حصے دوبارہ استعمال کریں، infilling یا ترمیم رُخ decoding اپنائیں، صوری قیود لاگو کریں، یا مطلوبہ خصوصیت کے مطابق منتخب نہاں مقامات مقفل کریں۔
صرف وہاں تولید کریں جہاں تبدیلی کی اجازت ہو
کام حل کرنے کے لیے قابلِ ترمیم علاقے کے اندر کافی آزادی برقرار رکھیں؛ پورے ان پٹ کی نقل مقامی تو ہے، مگر اس سے کوئی پیش رفت نہیں ہوتی۔
مقامیت اور کامیابی دونوں کی بیک وقت توثیق کریں
ان امیدواروں کو رد کریں جو محفوظ حصے بدلیں، parsing یا compilation میں ناکام ہوں، ساختی ثوابت کی خلاف ورزی کریں، یا مطلوبہ تبدیلی پوری نہ کریں۔
لازمی قرار دیے جانے والے شواہد
کوئی دعویٰ اتنا ہی مضبوط ہے جتنی وہ خاصیت جو تولید یا رمزکشائی کے بعد ناپی گئی ہو۔
- خطے سے باہر diff یا محفوظ خطے کے استحکام کا کوئی دوسرا براہِ راست پیمانہ۔
- قابلِ تدوین خطے میں کام کی کام یابی۔
- حسبِ اطلاق نحوی تجزیہ، تالیف، آزمائشیں، جامد جانچ، یا مسئلے سے مخصوص مستقلات۔
- قابلِ تدوین حصے میں تبدیلی کی شرح، تاکہ نقل کو کنٹرول نہ سمجھ لیا جائے۔
- امیدواروں کی انفرادیت اور مکرر اجرا میں تغیر پذیری، تاکہ مقامیت کو موڈ انہدام نہ سمجھ لیا جائے۔
مربوط مطالعہ کیا بیان کرتا ہے
- منسلک تجربہ 64-token Python فنکشنز کو درجہ بند منفصل مقامات میں سکیڑ کر جزوی قیود میں منتخب latent positions دوبارہ پیدا کرتا ہے۔
- چار بالائی سطحی کوڈ مقفل کرنے سے نحوی تجزیے کی شرح 0.453 سے بڑھ کر 0.591 ہوئی، جبکہ غیر مقفل مقامات 0.936 کی شرح سے تبدیل ہوئے اور مشروط نمونوں کی انفرادیت 0.998 برقرار رہی۔
- یہ پیمائشیں token سطح سے اوپر استحکام–آزادی کا تبادلہ آشکار کرتی ہیں؛ یہ عین source-span، AST، معنوی یا رویہ جاتی تحفظ ثابت نہیں کرتیں۔
دائرۂ کار کی حد
- مقفل نہاں code ازخود AST node، محفوظ source span، یا صوری invariant نہیں بن جاتا۔
- تجزیۂ نحوی کی شرح نحوی درست ساخت ثابت کرتی ہے، فعلی صحت یا کامیاب مرمت نہیں۔
- شواہد مختصر پہلے سے عمل شدہ Python فنکشنز سے ہیں اور repository-scale behavior قائم نہیں کرتے۔
بنیادی اور متعلقہ ماخذ
اصل طریقوں، پیمائشوں اور بیان شدہ حدود کے لیے مربوط مقالات سے رجوع کریں۔
- Inspectable Control for Structure-Preserving Software Regeneration
بنیادی مقالہ اور محدود درجہ بند فضائے نہاں کا تجربہ۔
- EfficientEdit: Accelerating Code Editing via Edit-Oriented Speculative Decoding
تدوین رُخ رمز کشائی، جو ماخذ کے غیر تبدیل شدہ حصوں کو دوبارہ استعمال کرتی ہے۔
- PAFT: Preservation Aware Fine-Tuning for Minimal-Edit Program Repair
پروگرام مرمت کی تربیت میں تحفظ اور کم سے کم تبدیلی کو واضح بناتا ہے۔