इस प्रोजेक्ट के बारे में
garak (Generative AI Red-teaming & Assessment Kit) बड़े भाषा मॉडलों और डायलॉग सिस्टमों में विफलता मोड की जांच करने के लिए एक कमांड-लाइन टूल है। इसे NVIDIA द्वारा विकसित किया गया है और Apache 2.0 लाइसेंस के तहत जारी किया गया है।
यह क्या करता है
- जांचता है कि क्या किसी LLM को अवांछनीय तरीकों से विफल कराया जा सकता है, जिसमें भ्रम, डेटा लीकेज, प्रॉम्प्ट इंजेक्शन, गलत सूचना, विषाक्तता उत्पादन, जेलब्रेक और अन्य कमजोरियां शामिल हैं।
- इन विफलता मोडों का पता लगाने के लिए स्थिर, गतिशील और अनुकूली प्रोब को जोड़ता है।
- README इसकी भूमिका की तुलना nmap या Metasploit Framework से करता है, लेकिन LLM पर लागू।
समर्थित लक्ष्य
- Hugging Face Hub जनरेटिव मॉडल, जिसमें स्थानीय transformers पाइपलाइन, Inference API और निजी Inference Endpoints शामिल हैं।
- OpenAI चैट और कम्प्लीशन मॉडल।
- Replicate टेक्स्ट मॉडल और निजी Replicate एंडपॉइंट।
- Converse API के माध्यम से AWS Bedrock फाउंडेशन मॉडल, जिसमें Anthropic Claude, Meta Llama, Amazon Titan, AI21 Labs, Cohere और Mistral AI जैसे परिवार शामिल हैं।
- Cohere, Groq, litellm, NVIDIA NIM एंडपॉइंट, ggml/llama.cpp मॉडल, और अनिवार्य रूप से REST एंडपॉइंट के माध्यम से पहुंचने योग्य कोई भी चीज़।
- प्लगइन विकास के लिए अंतर्निहित टेस्ट जनरेटर (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 (ग्लिच टोकन), grandma, goodside, leakreplay (प्रशिक्षण डेटा रीप्ले), lmrc (Language Model Risk Cards), malwaregen, misleading, packagehallucination, promptinject, realtoxicityprompts, snowball (स्नोबॉल्ड भ्रम), और xss।
परिणाम और लॉगिंग
- प्रत्येक प्रोब के लिए, garak एक प्रगति बार और फिर प्रत्येक डिटेक्टर के अनुसार परिणामों का मूल्यांकन करने वाली एक पंक्ति प्रिंट करता है, जब अवांछनीय व्यवहार होता है तो प्रतिक्रियाओं को विफलता दर के साथ FAIL के रूप में चिह्नित करता है।
- लॉग में डिबगिंग के लिए garak.log, प्रत्येक प्रोबिंग प्रयास के लिए एक प्रविष्टि के साथ प्रति-रन JSONL रिपोर्ट, और एक हिट लॉग शामिल है जो भेद्यता उत्पन्न करने वाले प्रयासों का विवरण देता है।
- analyse/analyse_log.py पर एक बुनियादी विश्लेषण स्क्रिप्ट उन प्रोब और प्रॉम्प्ट को आउटपुट करती है जिन्होंने सबसे अधिक हिट उत्पन्न किए।
आर्किटेक्चर और विस्तारशीलता
- कोड प्रोब, डिटेक्टर, मूल्यांकनकर्ता, जनरेटर और हार्नेस में व्यवस्थित है, प्रत्येक में प्लगइन बेस क्लास को परिभाषित करने वाली एक base.py है।
- डिफ़ॉल्ट ऑपरेटिंग मोड probewise हार्नेस का उपयोग करता है, जो प्रत्येक प्रोब को इंस्टैंशिएट करता है और यह तय करने के लिए उसकी 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 प्रीप्रिंट (2406.11036) और शैक्षणिक उपयोग के लिए एक उद्धरण प्रविष्टि।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.