Program of Thoughts Prompting (UR)

From Systems analysis Wiki
Jump to navigation Jump to search

Program of Thoughts Prompting (PoT، انگریزی: «پروگرام آف تھاٹس») — یہ بڑے لسانی ماڈلز (LLM) کے لیے prompt engineering کا ایک طریقہ ہے، جس میں ماڈل مسئلے کے حل کے درمیانی مراحل کے طور پر متنی وضاحت کی بجائے پروگرامی کوڈ تیار کرتا ہے[1]۔ یہ طریقہ منطقی استدلال کو ریاضیاتی حسابات سے الگ کرنے کی اجازت دیتا ہے: لسانی ماڈل حل کا منصوبہ ایک پروگرام (مثلاً Python) کی صورت میں بناتا ہے، جبکہ حسابات ایک بیرونی، deterministic کوڈ interpreter کے ذریعے انجام پاتے ہیں۔

یہ طریقہ 2022 میں وِنہو چن (Wenhu Chen) کی قیادت میں محققین کے ایک گروپ نے پیش کیا اور بنیادی طور پر عددی یا منطقی نوعیت کے مسائل (ریاضیاتی سوالات، مالیاتی حسابات) کے لیے بنایا گیا، جہاں Chain-of-Thought جیسے روایتی استدلال کے طریقوں کو حسابات کی درستگی میں مشکلات کا سامنا تھا[1]۔

پس منظر اور تصور

Chain-of-Thought کی حدود

PoT کا طریقہ Chain-of-Thought (CoT) (سلسلۂ استدلال) کے تصور کی توسیع ہے، جو پہلے LLM کے منطقی استنتاج کو بہتر بنانے کا بنیادی طریقہ تھا[2]۔ CoT طریقے میں ماڈل قدرتی زبان میں درمیانی مراحل کی ایک ترتیب پیدا کرتا ہے۔ استدلال کے معیار میں نمایاں بہتری کے باوجود، اس طریقے کی ایک بنیادی حد ہے: ماڈل منطق اور خود حسابات دونوں کو متنی شکل میں انجام دیتا ہے۔ اس کے نتیجے میں اکثر غلط حسابی عمل، تقریب کی غلطیاں اور دیگر خامیاں پیدا ہوتی ہیں، کیونکہ لسانی ماڈل اپنی فطرت کے اعتبار سے درست کیلکولیٹر نہیں ہوتے۔

Program of Thoughts کا بنیادی خیال

PoT کا بنیادی خیال یہ ہے کہ حسابات کو ایک بیرونی نظام (کوڈ interpreter) کو سونپا جائے، اور لسانی ماڈل سے صرف یہ مطالبہ کیا جائے کہ وہ حل کے منصوبے کو ایک قابلِ عمل پروگرام کی شکل میں رسمی بنائے[1]۔ ماڈل «حساب لگانے والے» کی بجائے «پروگرامر» کا کردار ادا کرتا ہے۔

عمل کا طریقہ کار درج ذیل ہے:

  1. ماڈل کو ایک مسئلہ بطور input ملتا ہے (مثلاً متنی ریاضیاتی سوال)۔
  2. متنی استدلال کی بجائے وہ ایک پروگرامنگ زبان (مثلاً Python) میں ایک script تیار کرتا ہے جو اس مسئلے کو حل کرتی ہے۔
  3. تیار کردہ کوڈ ایک بیرونی interpreter کو بھیجا جاتا ہے جو اسے چلاتا ہے۔
  4. کوڈ کے چلنے کا نتیجہ حتمی جواب ہوتا ہے۔

اس طرح پیچیدہ اور درست حسابات (بڑی تعداد کے ساتھ آپریشنز، مخصوص libraries کا استعمال) خود ماڈل کے بجائے پروگرام انجام دیتا ہے، جو determinism اور اعلیٰ درستگی کو یقینی بناتا ہے[3]۔

نفاذ اور Libraries کا استعمال

PoT کے نفاذ میں LLM کی درست اور مؤثر کوڈ تیار کرنے کی صلاحیت کلیدی اہمیت رکھتی ہے۔ اس طریقے کے مصنفین نے پروگرامنگ کے کاموں پر خصوصی طور پر تربیت یافتہ ماڈل OpenAI Codex استعمال کیا۔ PoT طریقہ ماڈل کو بیرونی libraries استعمال کرنے کی اجازت دیتا ہے، جو حل کیے جانے والے مسائل کے دائرے کو نمایاں طور پر وسیع کرتا ہے۔ مثلاً علامتی ریاضیات کے مسائل حل کرتے وقت ماڈل ایسا کوڈ تیار کر سکتا ہے جو مساوات کے تجزیاتی حل کے لیے SymPy library استعمال کرے، جو خالص لسانی طریقوں کی صلاحیتوں سے باہر ہے[1]۔

PoT کے لیے prompt دو طریقوں میں فراہم کی جا سکتی ہے:

  • Few-shot: prompt میں «سوال — پروگرام-حل» کے کئی جوڑوں کی مثالیں شامل ہوتی ہیں۔
  • Zero-shot: prompt میں صرف مسئلے کی وضاحت کرنے والی ہدایت ہوتی ہے، بغیر کسی مثال کے۔

zero-shot موڈ میں بھی PoT اس واضح ڈھانچے کی وجہ سے اعلیٰ کارکردگی دکھاتا ہے جو ماڈل کو تیار کرنی ہوتی ہے[4]۔

نتائج اور کارکردگی

PoT طریقے نے کثیر مرحلاتی عددی استدلال کی ضرورت والے مسائل میں حل کے معیار میں نمایاں بہتری ظاہر کی۔ اصل تحقیقی مقالے میں اسے ریاضیاتی اور مالیاتی مسائل کے آٹھ مجموعوں پر آزمایا گیا، جن میں GSM8K، AQUA، SVAMP، FinQA وغیرہ شامل ہیں۔

  • درستگی میں اضافہ: تمام صورتوں میں PoT نے بنیادی CoT طریقے کو پیچھے چھوڑ دیا۔ اوسطاً درست حل کے تناسب میں ~12% کا نسبتی فائدہ حاصل ہوا۔
    • مشہور ریاضیاتی مجموعے GSM8K پر PoT کے ساتھ ماڈل کی درستگی 71.6% تک پہنچی، جبکہ CoT کے ساتھ یہ 63.1% تھی۔
    • مالیاتی مسائل میں فائدہ اور بھی نمایاں تھا: dataset FinQA پر درستگی 40.4% (CoT) سے بڑھ کر 64.5% (PoT) ہو گئی[1]۔
  • Self-Consistency کے ساتھ امتزاج: PoT کی کارکردگی کو خود-ہماہنگی (self-consistency) کے طریقے کے ساتھ مل کر مزید بہتر کیا جا سکتا ہے۔ اس صورت میں ماڈل کئی آزاد پروگرام-حل تیار کرتا ہے، اور حتمی جواب ان کے نتائج سے «اکثریتی اصول» کی بنیاد پر منتخب کیا جاتا ہے۔ self-consistency کے ساتھ مل کر PoT نے اشاعت کے وقت تمام آزمائے گئے ریاضیاتی اور مالیاتی benchmarks پر نئی state-of-the-art قائم کی[1]۔

فوائد اور حدود

فوائد

  • حسابات کی درستگی: سب سے بڑا فائدہ۔ بیرونی interpreter کے ذریعے حسابی آپریشنز کی انجام دہی LLM میں موجود تقریب کی غلطیوں اور خامیوں کو ختم کرتی ہے۔
  • Libraries کے استعمال کا امکان: ماڈل طاقتور بیرونی libraries (مثلاً علامتی حسابات، شماریاتی تجزیہ، تاریخوں کے ساتھ کام کے لیے) استعمال کر سکتا ہے اور ایسے مسائل حل کر سکتا ہے جو پہلے ناممکن تھے۔
  • تشریح پذیری اور debugging: پروگرامی کوڈ حل کی منطق کی ایک رسمی اور منظم نمائندگی ہے، جو قدرتی زبان کے استدلال کے مقابلے میں اس کی جانچ اور debugging کو آسان بناتی ہے۔
  • آفاقیت: یہ طریقہ few-shot اور zero-shot دونوں موڈ میں مؤثر ہے اور مختلف شعبوں (ریاضیات، مالیات، سائنس) میں قابلِ اطلاق ہے۔

حدود

  • حفاظت: بیرونی interpreter پر تیار کردہ کوڈ کی چلانا حفاظتی خطرات پیدا کرتی ہے۔ ماڈل نظریاتی طور پر نقصان دہ کوڈ (مثلاً فائلیں حذف کرنے کے لیے) تیار کر سکتا ہے۔ اس لیے PoT کے عملی استعمال کے لیے عملی ماحول کی تنہائی (sandbox) اور کوڈ کی محتاط فلٹرنگ ضروری ہے[4]۔
  • اطلاق کا محدود دائرہ: یہ طریقہ ان مسائل کے لیے سب سے زیادہ مؤثر ہے جنہیں کسی الگورتھم کی شکل میں واضح طور پر رسمی بنایا جا سکتا ہو۔ ایسے مسائل کے لیے جن میں زبان کی باریکیوں کی سمجھ، عقلِ عام یا تخلیقی سوچ درکار ہو، PoT کا براہِ راست اطلاق مشکل ہے۔
  • کوڈ کے معیار پر انحصار: طریقے کی کارکردگی براہِ راست LLM کی نحوی طور پر درست اور منطقی طور پر صحیح کوڈ تیار کرنے کی صلاحیت پر منحصر ہے۔

متعلقہ طریقے

LLM کے استدلال کو بہتر بنانے کے لیے کوڈ کے استعمال کا خیال دیگر ملتے جلتے طریقوں میں بھی آگے بڑھا۔

  • Program-Aided Language Models (PAL): PoT کے تقریباً ہم وقت پیش کیا گیا طریقہ، جو مسائل کے حل کے لیے Python کوڈ کی تیاری بھی استعمال کرتا ہے[5]۔ تصوراتی طور پر PAL اور PoT بہت قریب ہیں اور «کوڈ کے ذریعے استدلال» کی حکمتِ عملی کی افادیت کی تصدیق کرتے ہیں۔
  • Tree of Thoughts (ToT): ایک زیادہ پیچیدہ طریقہ جو حل کے ممکنہ مراحل کا ایک «درخت» تیار کرنے اور تلاش کرنے کی تجویز دیتا ہے، جو خطی «سلسلے» کے خیال کی توسیع ہے۔ PoT کو اس درخت کے nodes کے اندر مفروضوں کی جانچ کے لیے استعمال کیا جا سکتا ہے۔

روابط

  • Program of Thoughts Prompting کے بارے میں اصل تحقیقی مقالہ
  • Learn Prompting پورٹل پر PoT کی رہنمائی

کتابیات

  • Chen, W. et al. (2023). Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks. arXiv:2211.12588.
  • Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Gao, L. et al. (2022). PAL: Program-Aided Language Models. arXiv:2211.10435.
  • Cobbe, K. et al. (2021). Training Verifiers to Solve Math Word Problems. arXiv:2110.14168.
  • Chen, Z. et al. (2021). FinQA: A Dataset of Numerical Reasoning over Financial Data. arXiv:2109.00122.
  • Zhu, F. et al. (2021). TAT-QA: A Question Answering Benchmark on a Hybrid of Tabular and Textual Content in Finance. arXiv:2105.07624.
  • Patel, A. et al. (2021). Are NLP Models Really Able to Solve Simple Math Word Problems? (Introducing SVAMP). arXiv:2103.07191.
  • Xu, F. et al. (2023). RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation. arXiv:2310.04408.
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.

حواشی

  1. 1.0 1.1 1.2 1.3 1.4 1.5 Chen, W. et al. «Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks». arXiv:2211.12588, 2023. [1]
  2. Wei, J. et al. «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models». arXiv:2201.11903, 2022. [2]
  3. «Program of Thoughts: Everything You Need to Know». The Ministry of AI. [3]
  4. 4.0 4.1 «Program of Thoughts Prompting: Enhancing Accuracy in Reasoning and Computation». Learn Prompting. [4]
  5. «PAL (Program-Aided Language Models)». Prompt Engineering Guide. [5]