Garak, Büyük Dil Modellerinin (LLM’ler) sağlamlığını ve güvenilirliğini test etmek için özel olarak tasarlanmış ücretsiz, açık kaynaklı bir araçtır.
Nmap veya Metasploit gibi yardımcı programlardan ilham alan Garak, halüsinasyonlar, veri sızıntısı, hızlı enjeksiyonlar, toksisite, jailbreak etkinliği ve yanlış bilgilerin yayılması gibi sorunları inceleyerek LLM’lerdeki potansiyel zayıf noktaları tespit ediyor.
Bu kılavuz, kurulumdan sonuçların yorumlanmasına ve özel eklentilerin geliştirilmesine kadar Garak’ı kullanmaya başlamanız için ihtiyacınız olan her şeyi kapsar.
Evet, Garak Hugging Face, Replicate ve OctoAI gibi platformlar için özel uç noktaları destekliyor.
Garak nedir?
Garak, Üretken Yapay Zeka Kırmızı Takım Oluşturma ve Değerlendirme Kiti anlamına gelir. Statik, dinamik ve uyarlanabilir araştırmaların bir kombinasyonunu kullanarak LLM’lerin güvenlik açıklarını sistematik olarak tanımlar. Garak aşağıdakiler için idealdir:
- Güvenlik araştırmacıları LLM’lerdeki güvenlik açıklarını test ediyor.
- Yapay zeka sistemlerinin güvenliğini sağlamak isteyen geliştiriciler.
- Üretken sistemlerin risklerini değerlendiren yapay zeka etik uzmanları.
Yazılım için penetrasyon testine aşina iseniz, Garak’ı LLM’lerin karşılığı olarak düşünün.
Temel Özellikler
Zayıf Yönlerin Araştırılması: Garak, LLM’leri aşağıdakiler de dahil olmak üzere çeşitli güvenlik açıklarına karşı test eder:
- Halüsinasyon
- Veri sızıntısı
- Hızlı enjeksiyon
- Yanlış bilgi
- Toksisite oluşumu
- Jailbreak girişimleri
- Kodlama tabanlı istem enjeksiyonları
- Siteler arası komut dosyası çalıştırma (XSS)
Geniş Uyumluluk: Hugging Face, OpenAI, Replicate, Cohere ve diğerleri gibi popüler platformları destekler.
Özelleştirilebilir: REST uç noktalarıyla kolayca entegre olun veya kendi problarınızı ve eklentilerinizi geliştirin.
Günlüğe Kaydetme ve Analiz: Güvenlik açıklarını ve bağlamlarını izlemeye yönelik ayrıntılı günlükler.
Desteklenen Yüksek Lisans Platformları
Garak aşağıdaki platformlardaki modelleri desteklemektedir:
- Sarılma Yüz: Yerel modeller veya API tabanlı modeller.
- OpenAI: GPT-3.5, GPT-4 ve diğerlerini içerir.
- Çoğalt: Hem genel hem de özel modeller.
- tutarlı: Üretken metin modelleri için.
- NVIDIA NIM, OctoAI, Groqve çok daha fazlası.
Ayrıca özel REST uç noktaları için destek sağlayarak onu oldukça esnek hale getirir.
Kurulum Talimatları
1. Standart Kurulum
PyPI’nin en son sürümünü aşağıdaki komutla yükleyin:
python -m pip install -U garak
2. Geliştirme Sürümü
En son sürümü doğrudan GitHub’dan yüklemek için şunu kullanın:
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
3. Kaynaktan Klonlama
Kaynak koduyla çalışmak istiyorsanız şu adımları izleyin:
conda create --name garak "python>=3.10,<=3.12"
conda activate garak
git clone https://github.com/NVIDIA/garak.git
cd garak
python -m pip install -e .
Not: Garak'ı NVIDIA GitHub organizasyonuna taşınmadan önce klonladıysanız GitHub uzak URL'lerinizi güncelleyin:
git remote set-url origin https://github.com/NVIDIA/garak.git
Başlarken
Genel Sözdizimi
Garak'ın temel komut satırı sözdizimi şöyledir:
garak
Probları Çalıştırma
Mevcut tüm probları listelemek için:
garak --list_probes
Bir modeldeki tüm araştırmaları yürütmek için:
garak --model_type --model_name
Örnek Problar
- Kodlama tabanlı istem enjeksiyonu için OpenAI'nin GPT-3.5'ini test edin:
export OPENAI_API_KEY="sk-your-key-here"
garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- Hugging Face'in GPT-2'sinin DAN 11.0 jailbreak saldırısına karşı savunmasızlığını kontrol edin:
garak --model_type huggingface --model_name gpt2 --probes dan.Dan_11_0
Sonuçları Okuma
- Başarılı/Başarısız Kategorileri: Sonuçlar her probtan sonra bir teşhis özetiyle birlikte görüntülenir.
- Arıza Oranı Analizi: Güvenlik açıkları referans amacıyla ölçülür ve günlüğe kaydedilir.
- Günlükler ve Raporlar: Ayrıntılı günlükler şurada saklanır:
garak.log
ve daha derin analiz için JSONL dosyaları.
Jeneratörleri Anlamak
Garak'taki bir "üretici", incelenecek LLM'nin türünü ve spesifik örneğini tanımlar. Örnekler şunları içerir:
Sarılma Yüz
--model_type huggingface --model_name RWKV/rwkv-4-169m-pile
--model_type huggingface.InferenceAPI --model_name mosaicml/mpt-7b-instruct
OpenAI
API anahtarınızı ayarlayın:
export OPENAI_API_KEY="sk-your-key-here"
Koşmak:
garak --model_type openai --model_name gpt-3.5-turbo
REST Uç Noktaları
Herhangi bir özel REST uç noktasına bağlanın:
--model_type rest.RestGenerator --model_name
Problara Giriş
Problar, LLM'lerde belirli arıza modlarını uyaran önceden tanımlanmış testlerdir. Bazı önemli araştırmalar şunları içerir:
- Kodlama: Kodlanmış istemlerdeki güvenlik açıklarını test eder.
- VE: Yaygın jailbreak saldırılarını simüle eder.
- PromptInject: Hızlı enjeksiyon zayıflıklarını araştırır.
- Yanlış bilgi: Modeli yanıltıcı içerik oluşturmaya veya desteklemeye teşvik eder.
- Toksisite: Bir modelin hassas veya rahatsız edici içeriği nasıl işlediğini test eder.
- RealToxicityİstemleri: Sağlamlığı test etmek için gerçek dünyadaki toksik istemleri kullanır.
Belirli bir araştırmayı çalıştırmak için:
garak --probes
Örnekler:
- Yalnızca PromptInject araştırmasını çalıştırın:
garak --model_type openai --model_name gpt-3.5-turbo --probes promptinject
- Bir alt modül araştırmasını çalıştırın:
garak --probes lmrc.SlurUsage
Günlükleme ve Analiz
Garak aşağıdaki günlükleri oluşturur:
- Birincil Günlük (
garak.log
): Hata ayıklama ve çalışma zamanı günlükleri. - JSONL Raporu: Prob ayrıntıları içeren yapılandırılmış raporlar.
- Vuruş Günlüğü: Çalıştırmalar sırasında tespit edilen güvenlik açıklarını vurgular.
Verileri analiz etmek için şunu kullanın:
python3 analyse/analyse_log.py
Özel Eklentiler Geliştirme
Garak, kullanıcıların problar, dedektörler veya değerlendiriciler gibi kendi özel eklentilerini geliştirmelerine olanak tanır. İşte nasıl:
- Temel Sınıflardan Miras Alın: Mevcut modülleri şablon olarak kullanın. Örneğin:
from garak.probes.base import TextProbe
- Yöntemleri Geçersiz Kıl: Yalnızca ihtiyacınız olan işlevselliği ekleyin.
- Eklentinizi Test Edin:
garak --model_type test.Blank --probes mymodule --detectors always.Pass
Bu Haberi İlginç Bulun! Anında Güncellemeler Almak için bizi Google Haberler, LinkedIn ve X'te takip edin!