آئیے پچھلے باب سے کچھ سیکھنے کا خلاصہ کرتے ہیں:
پرامپٹ انجینئرنگ وہ عمل ہے جس کے ذریعے ہم ماڈل کو زیادہ متعلقہ جوابات کی طرف رہنمائی کرتے ہیں، زیادہ مفید ہدایات یا سیاق و سباق فراہم کرکے۔
پرامپٹس لکھنے کے دو مراحل بھی ہیں: پرامپٹ کی تشکیل، متعلقہ سیاق و سباق فراہم کرکے، اور آپٹیمائزیشن، یعنی پرامپٹ کو بتدریج بہتر بنانا۔
اس وقت، ہمیں پرامپٹس لکھنے کا بنیادی علم حاصل ہے، لیکن ہمیں مزید گہرائی میں جانے کی ضرورت ہے۔ اس باب میں، آپ مختلف پرامپٹس آزمانے سے لے کر یہ سمجھنے تک جائیں گے کہ ایک پرامپٹ دوسرے سے بہتر کیوں ہے۔ آپ سیکھیں گے کہ پرامپٹس کو کچھ بنیادی تکنیکوں کے مطابق کیسے تشکیل دیا جائے جو کسی بھی LLM پر لاگو کی جا سکتی ہیں۔
اس باب میں، ہم درج ذیل موضوعات کا احاطہ کریں گے:
- پرامپٹ انجینئرنگ کے علم کو مختلف تکنیکوں کو اپنے پرامپٹس پر لاگو کرکے بڑھائیں۔
- اپنے پرامپٹس کو مختلف آؤٹ پٹ کے لیے ترتیب دیں۔
اس سبق کو مکمل کرنے کے بعد، آپ قابل ہوں گے:
- پرامپٹ انجینئرنگ کی تکنیکوں کو لاگو کریں جو آپ کے پرامپٹس کے نتائج کو بہتر بنائیں۔
- پرامپٹنگ کریں جو یا تو مختلف ہو یا متعین۔
پرامپٹ انجینئرنگ وہ عمل ہے جس کے ذریعے پرامپٹس تخلیق کیے جاتے ہیں جو مطلوبہ نتیجہ پیدا کریں۔ پرامپٹ انجینئرنگ صرف ایک ٹیکسٹ پرامپٹ لکھنے سے زیادہ ہے۔ پرامپٹ انجینئرنگ کوئی انجینئرنگ ڈسپلن نہیں ہے، بلکہ یہ تکنیکوں کا ایک مجموعہ ہے جسے آپ مطلوبہ نتیجہ حاصل کرنے کے لیے لاگو کر سکتے ہیں۔
آئیے ایک بنیادی پرامپٹ لیں جیسے:
جغرافیہ پر 10 سوالات تیار کریں۔
اس پرامپٹ میں، آپ دراصل مختلف پرامپٹ تکنیکوں کا ایک مجموعہ لاگو کر رہے ہیں۔
آئیے اسے تفصیل سے دیکھتے ہیں۔
- سیاق و سباق، آپ نے وضاحت کی کہ یہ "جغرافیہ" کے بارے میں ہونا چاہیے۔
- آؤٹ پٹ کو محدود کرنا، آپ نے کہا کہ 10 سوالات سے زیادہ نہ ہوں۔
آپ کو مطلوبہ نتیجہ مل سکتا ہے یا نہیں۔ آپ کے سوالات تیار ہو جائیں گے، لیکن جغرافیہ ایک بڑا موضوع ہے اور آپ کو وہ نہیں مل سکتا جو آپ چاہتے ہیں، درج ذیل وجوہات کی بنا پر:
- بڑا موضوع، آپ کو معلوم نہیں کہ یہ ممالک، دارالحکومتوں، دریاؤں وغیرہ کے بارے میں ہوگا۔
- فارمیٹ، اگر آپ چاہتے تھے کہ سوالات کو کسی خاص انداز میں فارمیٹ کیا جائے تو کیا ہوگا؟
جیسا کہ آپ دیکھ سکتے ہیں، پرامپٹس بناتے وقت غور کرنے کے لیے بہت کچھ ہے۔
اب تک، ہم نے ایک سادہ پرامپٹ کی مثال دیکھی ہے، لیکن جنریٹو AI مختلف کرداروں اور صنعتوں میں لوگوں کی مدد کے لیے بہت کچھ کرنے کی صلاحیت رکھتا ہے۔ آئیے اگلی کچھ بنیادی تکنیکوں کو دریافت کریں۔
سب سے پہلے، ہمیں یہ سمجھنے کی ضرورت ہے کہ پرامپٹنگ ایک LLM کی ابھرتی ہوئی خصوصیت ہے، یعنی یہ ماڈل میں شامل کوئی فیچر نہیں ہے بلکہ کچھ ایسا ہے جو ہم ماڈل کو استعمال کرتے ہوئے دریافت کرتے ہیں۔
کچھ بنیادی تکنیکیں ہیں جنہیں ہم LLM کو پرامپٹ کرنے کے لیے استعمال کر سکتے ہیں۔ آئیے ان کو دریافت کرتے ہیں۔
- زیرو شاٹ پرامپٹنگ، یہ پرامپٹنگ کی سب سے بنیادی شکل ہے۔ یہ ایک واحد پرامپٹ ہے جو LLM سے اس کے تربیتی ڈیٹا کی بنیاد پر جواب طلب کرتا ہے۔
- فیوشاٹ پرامپٹنگ، اس قسم کی پرامپٹنگ LLM کو رہنمائی فراہم کرتی ہے، جس میں 1 یا زیادہ مثالیں دی جاتی ہیں جن پر وہ اپنے جواب کو تیار کرنے کے لیے انحصار کر سکتا ہے۔
- چین آف تھوٹ، اس قسم کی پرامپٹنگ LLM کو بتاتی ہے کہ مسئلے کو مراحل میں کیسے تقسیم کیا جائے۔
- جنریٹڈ نالج، پرامپٹ کے جواب کو بہتر بنانے کے لیے، آپ اپنے پرامپٹ کے ساتھ اضافی طور پر تیار کردہ حقائق یا معلومات فراہم کر سکتے ہیں۔
- لیسٹ ٹو موسٹ، چین آف تھوٹ کی طرح، یہ تکنیک مسئلے کو مراحل میں تقسیم کرنے اور پھر ان مراحل کو ترتیب وار انجام دینے کے لیے کہنے کے بارے میں ہے۔
- سیلف ریفائن، یہ تکنیک LLM کے آؤٹ پٹ پر تنقید کرنے اور پھر اسے بہتر بنانے کے لیے کہنے کے بارے میں ہے۔
- میوٹک پرامپٹنگ۔ یہاں آپ چاہتے ہیں کہ LLM کا جواب درست ہو اور آپ اس سے جواب کے مختلف حصوں کی وضاحت کرنے کو کہیں۔ یہ سیلف ریفائن کی ایک شکل ہے۔
پرامپٹنگ کا یہ انداز بہت آسان ہے، یہ ایک واحد پرامپٹ پر مشتمل ہوتا ہے۔ یہ تکنیک شاید وہی ہے جسے آپ LLMs کے بارے میں سیکھنا شروع کرتے وقت استعمال کر رہے ہیں۔ یہاں ایک مثال ہے:
- پرامپٹ: "الجبرہ کیا ہے؟"
- جواب: "الجبرہ ریاضی کی ایک شاخ ہے جو ریاضی کے علامتوں اور ان علامتوں کو جوڑنے کے اصولوں کا مطالعہ کرتی ہے۔"
پرامپٹنگ کا یہ انداز ماڈل کو کچھ مثالیں فراہم کرکے مدد کرتا ہے، ساتھ ہی درخواست بھی۔ یہ ایک واحد پرامپٹ پر مشتمل ہوتا ہے جس میں اضافی ٹاسک مخصوص ڈیٹا ہوتا ہے۔ یہاں ایک مثال ہے:
- پرامپٹ: "شیکسپیئر کے انداز میں ایک نظم لکھیں۔ یہاں شیکسپیئرین سونٹس کی چند مثالیں ہیں: سونٹ 18: 'کیا میں تمہیں گرمی کے دن سے تشبیہ دوں؟ تم زیادہ خوبصورت اور زیادہ معتدل ہو...' سونٹ 116: 'سچے ذہنوں کی شادی میں رکاوٹیں نہ ہونے دیں۔ محبت وہ نہیں ہے جو تبدیلی کے وقت بدل جائے...' سونٹ 132: 'تمہاری آنکھیں مجھے پسند ہیں، اور وہ، جیسے مجھ پر رحم کر رہی ہوں، میرے دل کو اذیت دے رہی ہیں،...' اب، چاند کی خوبصورتی کے بارے میں ایک سونٹ لکھیں۔"
- جواب: "آسمان پر، چاند نرم روشنی میں چمکتا ہے، چاندنی جو اپنی نرم خوبصورتی کو ظاہر کرتی ہے،..."
چین آف تھوٹ ایک بہت دلچسپ تکنیک ہے کیونکہ یہ LLM کو مراحل کے ذریعے لے جانے کے بارے میں ہے۔ خیال یہ ہے کہ LLM کو اس طرح ہدایت دی جائے کہ وہ سمجھ سکے کہ کچھ کیسے کرنا ہے۔ درج ذیل مثال پر غور کریں، چین آف تھوٹ کے ساتھ اور بغیر:
- پرامپٹ: "ایلس کے پاس 5 سیب ہیں، وہ 3 سیب پھینکتی ہے، 2 باب کو دیتی ہے اور باب ایک واپس دیتا ہے، ایلس کے پاس کتنے سیب ہیں؟"
- جواب: 5
LLM نے 5 کا جواب دیا، جو غلط ہے۔ صحیح جواب 1 سیب ہے، دی گئی حساب کے مطابق (5 -3 -2 + 1 = 1)۔
تو ہم LLM کو یہ صحیح طریقے سے کیسے سکھا سکتے ہیں؟
آئیے چین آف تھوٹ آزمائیں۔ چین آف تھوٹ کو لاگو کرنے کا مطلب ہے:
- LLM کو ایک مشابہ مثال دیں۔
- حساب دکھائیں، اور اسے صحیح طریقے سے حساب کرنے کا طریقہ بتائیں۔
- اصل پرامپٹ فراہم کریں۔
جیسا کہ آپ دیکھ سکتے ہیں، نتائج زیادہ مختلف نہیں ہو سکتے تھے۔
نوٹ کریں کہ اور بھی پیرامیٹرز ہیں جنہیں آپ آؤٹ پٹ کو مختلف کرنے کے لیے تبدیل کر سکتے ہیں، جیسے top-k، top-p، repetition penalty، length penalty اور diversity penalty، لیکن یہ اس نصاب کے دائرہ کار سے باہر ہیں۔
بہت سے طریقے ہیں جنہیں آپ استعمال کر سکتے ہیں تاکہ اپنی مطلوبہ چیز حاصل کر سکیں۔ جیسے جیسے آپ پرامپٹنگ کو زیادہ استعمال کریں گے، آپ اپنا انداز خود تلاش کر لیں گے۔
ان تکنیکوں کے علاوہ جن پر ہم نے بات کی ہے، کچھ بہترین طریقے ہیں جنہیں LLM کو پرامپٹ کرتے وقت مدنظر رکھنا چاہیے۔
یہاں کچھ بہترین طریقے ہیں جنہیں مدنظر رکھنا چاہیے:
- سیاق و سباق کی وضاحت کریں۔ سیاق و سباق اہم ہے، جتنا زیادہ آپ ڈومین، موضوع وغیرہ کی وضاحت کر سکتے ہیں، اتنا ہی بہتر ہے۔
- آؤٹ پٹ کو محدود کریں۔ اگر آپ کو مخصوص تعداد میں اشیاء یا مخصوص لمبائی چاہیے، تو اس کی وضاحت کریں۔
- کیا اور کیسے دونوں کی وضاحت کریں۔ یاد رکھیں کہ آپ کو یہ بتانا ہے کہ آپ کیا چاہتے ہیں اور کیسے چاہتے ہیں، مثال کے طور پر "ایک Python Web API بنائیں جس میں routes products اور customers ہوں، اسے 3 فائلوں میں تقسیم کریں"۔
- ٹیمپلیٹس استعمال کریں۔ اکثر، آپ اپنی کمپنی کے ڈیٹا کے ساتھ اپنے پرامپٹس کو بہتر بنانا چاہیں گے۔ ایسا کرنے کے لیے ٹیمپلیٹس استعمال کریں۔ ٹیمپلیٹس میں متغیرات ہو سکتے ہیں جنہیں آپ اصل ڈیٹا سے تبدیل کر سکتے ہیں۔
- صحیح ہجے کریں۔ LLMs آپ کو درست جواب دے سکتے ہیں، لیکن اگر آپ صحیح ہجے کریں گے تو آپ کو بہتر جواب ملے گا۔
یہاں Python میں کوڈ ہے جو Flask استعمال کرتے ہوئے ایک سادہ API بنانے کا طریقہ دکھاتا ہے:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello():
name = request.args.get('name', 'World')
return f'Hello, {name}!'
if __name__ == '__main__':
app.run()GitHub Copilot یا ChatGPT جیسے AI اسسٹنٹ کا استعمال کریں اور "self-refine" تکنیک کو کوڈ کو بہتر بنانے کے لیے اپلائی کریں۔
براہ کرم اسائنمنٹ کو حل کرنے کی کوشش کریں اور کوڈ میں مناسب پرامپٹس شامل کریں۔
Tip
پرامپٹ کو اس طرح ترتیب دیں کہ وہ بہتری کی درخواست کرے، یہ ایک اچھا خیال ہے کہ آپ بہتری کی تعداد کو محدود کریں۔ آپ یہ بھی کہہ سکتے ہیں کہ اسے کسی خاص طریقے سے بہتر بنائیں، جیسے کہ آرکیٹیکچر، کارکردگی، سیکیورٹی وغیرہ۔
میں chain-of-thought پرامپٹنگ کیوں استعمال کروں گا؟ مجھے 1 درست جواب اور 2 غلط جوابات دکھائیں۔
- LLM کو مسئلہ حل کرنے کا طریقہ سکھانے کے لیے۔
- B، LLM کو کوڈ میں غلطیاں تلاش کرنے کا طریقہ سکھانے کے لیے۔
- C، LLM کو مختلف حل پیش کرنے کی ہدایت دینے کے لیے۔
A: 1، کیونکہ chain-of-thought کا مطلب ہے کہ LLM کو مسئلہ حل کرنے کا طریقہ دکھایا جائے، ایک سلسلہ وار مراحل فراہم کر کے، اور اسی طرح کے مسائل اور ان کے حل کے طریقے۔
آپ نے ابھی اسائنمنٹ میں self-refine تکنیک استعمال کی۔ جو بھی پروگرام آپ نے بنایا ہو، اس پر غور کریں کہ آپ کون سی بہتری اپلائی کرنا چاہتے ہیں۔ اب self-refine تکنیک استعمال کریں اور تجویز کردہ تبدیلیاں اپلائی کریں۔ آپ کو نتیجہ کیسا لگا، بہتر یا بدتر؟
اس سبق کو مکمل کرنے کے بعد، ہماری Generative AI Learning collection کو دیکھیں تاکہ اپنی Generative AI کی معلومات کو مزید بہتر کریں!
سبق 6 کی طرف جائیں جہاں ہم پرامپٹ انجینئرنگ کے علم کو متن جنریشن ایپس بنانے کے ذریعے اپلائی کریں گے۔
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔
