ہائپ کے بغیر AI: کام کرنے والے انجینئر کی گائیڈ
LLMs اور ML ٹولز کو اصل پروجیکٹس میں استعمال کرنے کا ایک عملی تعارف، بغیر بزورق الفاظ یا جادوئی سوچ کے۔
آن لائن زیادہ تر AI مواد دو گروپوں میں سے ہے: سپر انٹیلیجنس کے بارے میں خوف، یا دعویٰ کہ ایک چیٹ بوٹ بدھ کو تمہاری نوکری کی جگہ لے لے گا۔ کوئی بھی آپ کو کچھ بھی شپ کرنے میں مدد نہیں دیتا۔ یہ گائیڈ دونوں کو چھوڑ دیتا ہے اور اصل پروجیکٹس میں AI ٹولز کی موجودہ نسل کو کیسے استعمال کریں اس کے ذریعے چلتا ہے، حدود واضح کے ساتھ۔
ایک LLM اصل میں کیا کرتا ہے
ایک بڑا زبان کا ماڈل جیسے GPT-4 یا Llama 3 ایک سیکوئنس میں اگلے ٹوکن کی پیش گوئی کرتا ہے، بہت بڑی مقدار میں متن پر تربیت یافتہ۔ بس۔ کوئی اندرونی حقیقت چیکر نہیں ہے، سیشنوں کے درمیان کوئی مستقل میموری نہیں (جب تک آپ ایک نہ بنائیں)، اور کوئی سمجھ نہیں جیسے کوئی شخص سمجھتا ہے۔ جب آپ اس سے سوال پوچھتے ہو، تو یہ آپ کے پرامپٹ کا ایک شماریاتی طور پر معقول جاری رکھنا تیار کر رہا ہے۔
یہ عملی طور پر اہم ہے: ماڈل اعتماد کے ساتھ ایک Python فنکشن بنائے گا جو ایک لائبریری کے طریقہ کو کال کرتا ہے جو موجود نہیں ہے، کیونکہ یہ طریقہ ایسی چیز کی طرح لگتا ہے جو لائبریری کے پاس ہو سکتا ہے۔ ہمیشہ کوڈ چلائیں۔ ہمیشہ API حوالے کو چیک کریں۔ ماڈل آؤٹ پٹ کو ایک تیز، اچھی طریقے سے پڑھے ہوئے انٹرن کے پہلے ڈرافٹ کے طور پر سلوک کریں جو کبھی کبھی یہ جانے بغیر جھوٹ بولتے ہیں۔
ایک اصل کام کا بہاؤ: کوڈ کے لیے ایک LLM استعمال کرنا
یہاں ایک نمونہ ہے جو صرف ChatGPT سے "مجھے ایک ایپ بنائیں" کہنے کی بجائے کام کرتا ہے:
- فنکشن signature اور docstring خود لکھیں، اقسام اور edge cases کی تشریح کریں۔
- ماڈل سے کہیں کہ یہ اس صحیح specification کے خلاف implement کریں۔
- اپنے آپ کے ٹیسٹ الگ سے لکھیں — ماڈل سے ٹیسٹ لکھنے کو نہ کہیں کہ یہ ابھی کوڈ لکھا ہے، یہ ٹیسٹ لکھے گا جو بہت سادہ طور پر pass کریں۔
- ٹیسٹ چلائیں۔ ناکامیوں کو نئے prompts کے طور پر واپس فیڈ کریں، نہ کہ مبہم "یہ کام نہیں کر رہا" بیانات۔
def parse_duration(text: str) -> int:
"""
Parse strings like '1h30m', '45s', '2d' into total seconds.
Raise ValueError on invalid input.
"""
ماڈل کو یہ صحیح contract دینا ایک سست تفصیل سے کہیں بہتر آؤٹ پٹ پیدا کرتا ہے، اور یہ آپ کو ٹیسٹ کرنے کے لیے کچھ ٹھوس دیتا ہے۔
Retrieval-augmented generation، سادہ الفاظ میں
RAG ایک buzzword کے طور پر پھینکا جاتا ہے لیکن میکانزم سادہ ہے: تربیت کے دوران ماڈل نے جو یادکیا، اس پر منحصر ہونے کی بجائے، آپ query وقت میں متعلقہ دستاویزات حاصل کرتے ہیں اور انہیں prompt میں ڈالتے ہیں۔
ایک بنیادی setup:
- اپنی دستاویزات کو chunk کریں (500-1000 tokens ہر ایک ایک عام شروعات کا نقطہ ہے)۔
- ہر chunk کو
text-embedding-3-smallجیسے ماڈل یاbge-small-enجیسے open ماڈل کے ساتھ embed کریں۔ - vectors کو Postgres کے ساتھ
pgvectorمیں، یا Qdrant جیسے dedicate store میں ذخیرہ کریں۔ - query وقت میں، صارف کے سوال کو embed کریں، similarity search (cosine distance معیاری ہے) چلائیں، اور سوال کے ساتھ prompt میں top-k chunks کو کھینچیں۔
SELECT content FROM docs
ORDER BY embedding <=> '[0.012, -0.045, ...]'
LIMIT 5;
یہی وجہ ہے کہ ایک chatbot جو ایک cutoff تاریخ تک ڈیٹا پر تربیت یافتہ ہے پھر بھی آپ کے internal wiki سے گزشتہ ہفتہ کے سوالات کے جوابات دے سکتا ہے۔ یہ آپ کی کمپنی کے بارے میں استدلال نہیں کر رہا — یہ آپ کی دستاویزات پڑھ رہا ہے اور ان کا خلاصہ کر رہا ہے۔
جہاں کلاسک ML ابھی بھی جیتا ہے
ہر مسئلہ کو ایک transformer کی ضرورت نہیں ہے۔ اگر آپ structured tabular data سے churn کی پیش گوئی کر رہے ہیں — account age، usage frequency، support tickets — ایک gradient-boosted tree ماڈل جیسے XGBoost یا LightGBM عام طور پر ایک LLM-based approach سے بہتر کارکردگی کرے گا، منٹ میں تربیت یافتہ ہونے گا بجائے گھنٹوں کے، اور چلانے کے لیے کہیں کم رقم خرچ ہے۔ scikit-learn کے RandomForestClassifier یا XGBoost تک رسائی کریں API کال کرنے سے پہلے، خاص طور پر جب آپ کا ڈیٹا ایک spreadsheet میں فٹ بیٹھتا ہے اور آپ کا target variable ایک صاف نمبر یا category ہے۔
لاگت اور latency ڈیزائن کی شرائط ہیں، afterthoughts نہیں
ایک GPT-4-class کال فی token اصل رقم خرچ کرتا ہے اور واپسی میں اصل سیکنڈ لیتا ہے۔ اگر آپ ایک feature بنا رہے ہیں جو ہر صارف کے لیے ہر page load پر چلتا ہے، تو یہ تیزی سے شامل ہوتا ہے اور latency نظر آئے گی۔ aggressively cache کریں، کسی بھی چیز کے لیے ایک چھوٹا ماڈل جیسے GPT-4o-mini یا local Llama 3 8B استعمال کریں جس کو top-tier reasoning کی ضرورت نہیں ہے، اور مہنگے ماڈل کالز کو اپنے pipeline کے ان حصوں کے لیے محفوظ رکھیں جہاں معیت اصل میں اہم ہے۔
ناکامی کا طریقہ جس کی کوئی آپ کو انتباہ نہیں دیتا
ماڈلز جب آپ ان سے انہی چیزیں مانگتے ہیں جو ان کی تربیت کی تقسیم سے قدرے باہر ہیں تو زیادہ، کم نہیں، hallucinate کرتے ہیں — غیر واضح لائبریری ورژنز، internal company jargon، حالیہ CVE نمبرز۔ اگر جواب بالکل صحیح ہونا ضروری ہے (ایک security advisory، ایک legal citation، ایک medical dose)، تو نسل کو تنہا trust نہ کریں۔ ہر بار ایک بنیادی source کے خلاف تصدیق کریں، اور اس تصدیق کے قدم کو اپنے pipeline میں تعمیر کریں بجائے بعد میں انسانی review پر اس پر اعتماد کرنے کے۔
AI ٹولنگ سچی مچ مفید ہے جب آپ اس سے سوچنے کی توقع کرنا بند کریں اور اسے ایک تیز pattern-matcher کے طور پر سلوک کریں جس کو آپ کو چیک کرنا ہے۔ پہلے دن سے تصدیق کے قدم کو تعمیر کریں اور آپ اس سے اصل قیمت حاصل کریں گے بجائے اعتماد کے ساتھ بکواس کے بہاؤ کے۔
اگر آپ مزید جانا چاہتے ہیں، تو Korra Studio کے Python اور Data Science ٹریکس کو ان بنیادی چیزوں کے لیے چیک کریں جو ان ٹولز کے ساتھ کام کو اصل میں پروڈکٹو بناتی ہیں۔
AI کی مدد سے لکھا گیا، Michal Pilch (CISSP)، Korra Studio کے ذریعے جائزہ لیا گیا اور شائع کیا گیا۔
یہ Korra Studio کے علم کے ذخیرے کا ایک نوٹ ہے — یہ پلیٹ فارم ہر موضوع کو ایک سے ایک رہنمائی کے ساتھ جوڑتا ہے۔
مفت شروع کریںarrow_forward