منصوبے کے بارے میں

garak (Generative AI Red-teaming & Assessment Kit) ایک کمانڈ لائن ٹول ہے جو بڑے لینگویج ماڈلز اور ڈائیلاگ سسٹمز میں ناکامیوں کی جانچ کرتا ہے۔ یہ NVIDIA نے تیار کیا ہے اور Apache 2.0 لائسنس کے تحت جاری کیا گیا ہے۔ یہ کیا کرتا ہے - یہ چیک کرتا ہے کہ آیا LLM کو ناپسندیدہ طریقوں سے ناکام بنایا جا سکتا ہے، بشمول ہیلوسینیشن، ڈیٹا لیک، پرامپٹ انجیکشن، غلط معلومات، زہریلے مواد کی تخلیق، جیل بریک اور دیگر کمزوریاں۔ - یہ ان ناکامیوں کو دریافت کرنے کے لیے جامد، متحرک اور انکولی پروبس کو یکجا کرتا ہے۔ - README اس کے کردار کا موازنہ nmap یا Metasploit Framework سے کرتا ہے، لیکن LLMs پر لاگو۔ معاون اہداف - Hugging Face Hub جنریٹو ماڈلز، بشمول مقامی transformers پائپ لائنز، Inference API اور نجی Inference Endpoints۔ - OpenAI چیٹ اور کمپلیشن ماڈلز۔ - Replicate ٹیکسٹ ماڈلز اور نجی Replicate endpoints۔ - AWS Bedrock فاؤنڈیشن ماڈلز Converse API کے ذریعے، جن میں Anthropic Claude، Meta Llama، Amazon Titan، AI21 Labs، Cohere اور Mistral AI شامل ہیں۔ - Cohere، Groq، litellm، NVIDIA NIM endpoints، ggml/llama.cpp ماڈلز، اور بنیادی طور پر ہر وہ چیز جو REST endpoint کے ذریعے قابل رسائی ہے۔ - پلگ ان ڈیولپمنٹ کے لیے بلٹ ان ٹیسٹ جنریٹرز (test.Blank، test.Repeat)۔ انسٹالیشن اور استعمال - PyPI سے pip کے ذریعے، GitHub مین برانچ سے، یا سورس سے Conda ماحول میں کلون کر کے انسٹال کیا جاتا ہے (Python 3.11 سے 3.13)۔ - عمومی نحو `garak <options>` ہے؛ ٹول کو ایک ٹارگٹ ماڈل کی ضرورت ہوتی ہے اور ڈیفالٹ طور پر تمام معلوم پروبس کو ہر پروب کے تجویز کردہ ڈیٹیکٹرز کے ساتھ چلاتا ہے۔ - `--list_probes` دستیاب پروبس کی فہرست دیتا ہے؛ `--target_type` اور `--target_name` ماڈل منتخب کرتے ہیں؛ `--spec` رن کو پروب فیملی یا ایک پلگ ان تک محدود کرتا ہے۔ - ہوسٹڈ فراہم کنندگان کے API کلیدز ماحولیاتی متغیرات جیسے OPENAI_API_KEY، HF_INFERENCE_TOKEN، REPLICATE_API_TOKEN، COHERE_API_KEY، GROQ_API_KEY، NIM_API_KEY اور BEDROCK_API_KEY کے ذریعے فراہم کی جاتی ہیں۔ README میں بیان کردہ پروب مثالیں - blank، atkgen (خودکار حملہ جنریشن)، badchars (ناقابل ادراک Unicode تبدیلیاں)، av_spam_scanning، continuation، dan (DAN اور DAN جیسے حملے)، donotanswer، encoding (ٹیکسٹ انکوڈنگ کے ذریعے پرامپٹ انجیکشن)، gcg (مخالف لاحقہ)، glitch (glitch ٹوکنز)، grandma، goodside، leakreplay (ٹریننگ ڈیٹا ری پلے)، lmrc (Language Model Risk Cards)، malwaregen، misleading، packagehallucination، promptinject، realtoxicityprompts، snowball (snowballed hallucination)، اور xss۔ نتائج اور لاگنگ - ہر پروب کے لیے، garak ایک پروگریس بار پرنٹ کرتا ہے اور پھر ہر ڈیٹیکٹر کے نتائج کا جائزہ لینے والی ایک قطار دکھاتا ہے، ناپسندیدہ رویے پر FAIL نشان لگاتا ہے اور ناکامی کی شرح دیتا ہے۔ - لاگز میں ڈیبگنگ کے لیے garak.log، ہر رن کے لیے ایک JSONL رپورٹ جس میں ہر پروبنگ کوشش کا اندراج ہوتا ہے، اور ایک ہٹ لاگ شامل ہے جو کمزوری پیدا کرنے والی کوششوں کی تفصیل دیتا ہے۔ - analyse/analyse_log.py پر ایک بنیادی تجزیہ اسکرپٹ ان پروبس اور پرامپٹس کو ظاہر کرتا ہے جنہوں نے سب سے زیادہ ہٹس پیدا کیں۔ آرکیٹیکچر اور توسیع پذیری - کوڈ کو پروبس، ڈیٹیکٹرز، ایویلیویٹرز، جنریٹرز اور ہارنیسز میں منظم کیا گیا ہے، ہر ایک میں base.py پلگ ان بیس کلاسز کی وضاحت کرتا ہے۔ - ڈیفالٹ آپریٹنگ موڈ probewise harness استعمال کرتا ہے، جو ہر پروب کو انسٹنشی ایٹ کرتا ہے اور اس کے primary_detector اور extended_detectors خصوصیات کو پڑھ کر فیصلہ کرتا ہے کہ کون سے ڈیٹیکٹر چلائے جائیں۔ - ڈیولپرز garak.probes.base.TextProbe جیسی بیس کلاسز سے وراثت حاصل کر کے نئے پلگ ان لکھ سکتے ہیں، انہیں انٹرایکٹو طور پر یا ٹیسٹ جنریٹرز اور ڈیٹیکٹرز کے ساتھ جانچ سکتے ہیں، اور --list_probes، --list_detectors یا --list_generators کے ذریعے فہرست بنا سکتے ہیں۔ پروجیکٹ وسائل - docs.garak.ai اور reference.garak.io/readthedocs پر دستاویزات، ایک Discord کمیونٹی، garak.ai پروجیکٹ ہوم، ایک arXiv preprint (2406.11036) اور تعلیمی استعمال کے لیے ایک حوالہ اندراج۔