
बाह्य मान, प्रतिकूल और ड्रिफ्ट पहचान के लिए एल्गोरिदम
Alibi Detect एक स्रोत-उपलब्ध Python लाइब्रेरी है जो outlier, adversarial और drift डिटेक्शन पर केंद्रित है। पैकेज का उद्देश्य तालिकीय डेटा, पाठ, छवियों और समय श्रृंखला के लिए ऑनलाइन और ऑफ़लाइन दोनों डिटेक्टरों को शामिल करना है। Drift डिटेक्शन के लिए TensorFlow और PyTorch दोनों बैकएंड समर्थित हैं।
प्रोडक्शन सेटिंग में outliers और distributions की निगरानी के महत्व के बारे में अधिक जानकारी के लिए, ICML 2020 कार्यशाला के Challenges in Deploying and Monitoring Machine Learning Systems में दिया गया यह टॉक देखें, जो पेपर Monitoring and explainability of models in production पर आधारित है और Alibi Detect का उल्लेख करता है।
Drift डिटेक्शन के संपूर्ण परिचय के लिए, Protecting Your Machine Learning Against Drift: An Introduction देखें। यह टॉक बताता है कि drift क्या है और इसे पहचानना क्यों फायदेमंद है, drift के विभिन्न प्रकार, इसे सैद्धांतिक रूप से कैसे पहचाना जा सकता है, और एक drift डिटेक्टर की संरचना का भी वर्णन करता है।
alibi-detect पैकेज निम्न से स्थापित किया जा सकता है:
pip के साथ)conda/mamba के साथ)Prophet टाइम सीरीज़ आउटलायर डिटेक्टर का उपयोग करने के लिए: ```bash
pip install alibi-detect[prophet]
conda-forge से इंस्टॉल करने के लिए mamba उपयोग करने की अनुशंसा की जाती है, जिसे base conda वातावरण में इंस्टॉल किया जा सकता है:```bash conda install mamba -n base -c conda-forge
alibi-detect इंस्टॉल करने के लिए:```bash
mamba install -c conda-forge alibi-detect
हम API को समझाने के लिए VAE outlier detector का उपयोग करेंगे।```python from alibi_detect.od import OutlierVAE from alibi_detect.saving import save_detector, load_detector
od = OutlierVAE(threshold=0.1, encoder_net=encoder_net, decoder_net=decoder_net, latent_dim=1024) od.fit(x_train)
preds = od.predict(x_test)
filepath = './my_detector/' save_detector(od, filepath) od = load_detector(filepath)
भविष्यवाणियाँ `meta` और `data` कुंजियों के रूप में एक डिक्शनरी में लौटाई जाती हैं। `meta` में डिटेक्टर का मेटाडेटा होता है, जबकि `data` स्वयं वास्तविक भविष्यवाणियों वाला एक डिक्शनरी है। इसमें आउटलायर, एडवरसारियल या ड्रिफ्ट स्कोर और थ्रेशोल्ड के साथ-साथ यह भविष्यवाणियाँ भी शामिल होती हैं कि इंस्टेंस उदाहरण के लिए आउटलायर हैं या नहीं। सटीक विवरण विधि से विधि में थोड़ा भिन्न हो सकते हैं, इसलिए हम पाठकों को [समर्थित एल्गोरिदम के प्रकारों](https://docs.seldon.io/projects/alibi-detect/en/stable/overview/algorithms.html) से परिचित होने के लिए प्रोत्साहित करते हैं।
## समर्थित एल्गोरिदम
निम्न तालिकाएँ प्रत्येक एल्गोरिदम के लिए सुझाए गए उपयोग के मामलों को दर्शाती हैं। कॉलम *फीचर स्तर* यह दर्शाता है कि क्या पता लगाना फीचर स्तर पर किया जा सकता है, जैसे किसी इमेज के लिए प्रति पिक्सेल। प्रत्येक डिटेक्टर के लिए दस्तावेज़ीकरण और मूल शोधपत्रों के लिंक के साथ-साथ उदाहरणों सहित अधिक जानकारी के लिए [एल्गोरिदम संदर्भ सूची](#reference-list) देखें।
### आउटलायर डिटेक्शन
| डिटेक्टर | सारणीबद्ध | इमेज | समय श्रृंखला | टेक्स्ट | श्रेणीबद्ध फीचर्स | ऑनलाइन | फीचर स्तर |
|:---------------------|:-------:|:-----:|:-----------:|:----:|:--------------------:|:------:|:-------------:|
| Isolation Forest | ✔ | | | | ✔ | | |
| Mahalanobis Distance | ✔ | | | | ✔ | ✔ | |
| AE | ✔ | ✔ | | | | | ✔ |
| VAE | ✔ | ✔ | | | | | ✔ |
| AEGMM | ✔ | ✔ | | | | | |
| VAEGMM | ✔ | ✔ | | | | | |
| Likelihood Ratios | ✔ | ✔ | ✔ | | ✔ | | ✔ |
| Prophet | | | ✔ | | | | |
| Spectral Residual | | | ✔ | | | ✔ | ✔ |
| Seq2Seq | | | ✔ | | | | ✔ |
### एडवरसारियल डिटेक्शन
| डिटेक्टर | सारणीबद्ध | इमेज | समय श्रृंखला | टेक्स्ट | श्रेणीबद्ध फीचर्स | ऑनलाइन | फीचर स्तर |
| :--- | :---: | :---: |:-----------:|:----:|:--------------------:|:------:|:-------------:|
| Adversarial AE | ✔ | ✔ | | | | | |
| Model distillation | ✔ | ✔ | ✔ | ✔ | ✔ | | |
### ड्रिफ्ट डिटेक्शन
| डिटेक्टर | सारणीबद्ध | इमेज | समय श्रृंखला | टेक्स्ट | श्रेणीबद्ध फीचर्स | ऑनलाइन | फीचर स्तर |
|:---------------------------------| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| Kolmogorov-Smirnov | ✔ | ✔ | | ✔ | ✔ | | ✔ |
| Cramér-von Mises | ✔ | ✔ | | | | ✔ | ✔ |
| Fisher's Exact Test | ✔ | | | | ✔ | ✔ | ✔ |
| Maximum Mean Discrepancy (MMD) | ✔ | ✔ | | ✔ | ✔ | ✔ | |
| Learned Kernel MMD | ✔ | ✔ | | ✔ | ✔ | | |
| Context-aware MMD | ✔ | ✔ | ✔ | ✔ | ✔ | | |
| Least-Squares Density Difference | ✔ | ✔ | | ✔ | ✔ | ✔ | |
| Chi-Squared | ✔ | | | | ✔ | | ✔ |
| Mixed-type tabular data | ✔ | | | | ✔ | | ✔ |
| Classifier | ✔ | ✔ | ✔ | ✔ | ✔ | | |
| Spot-the-diff | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ |
| Classifier Uncertainty | ✔ | ✔ | ✔ | ✔ | ✔ | | |
| Regressor Uncertainty | ✔ | ✔ | ✔ | ✔ | ✔ | | |
#### TensorFlow और PyTorch समर्थन
ड्रिफ्ट डिटेक्टर TensorFlow, PyTorch और (जहाँ लागू हो) [KeOps](https://www.kernel-operations.io/keops/index.html) बैकएंड का समर्थन करते हैं। हालाँकि, Alibi Detect इन्हें डिफ़ॉल्ट रूप से इंस्टॉल नहीं करता है। अधिक विवरण के लिए [इंस्टॉलेशन विकल्प](#installation-and-usage) देखें।```python
from alibi_detect.cd import MMDDrift
cd = MMDDrift(x_ref, backend='tensorflow', p_val=.05)
preds = cd.predict(x)
PyTorch में वही डिटेक्टर:```python cd = MMDDrift(x_ref, backend='pytorch', p_val=.05) preds = cd.predict(x)
या KeOps में:```python
cd = MMDDrift(x_ref, backend='keops', p_val=.05)
preds = cd.predict(x)
Alibi Detect विभिन्न प्रीप्रोसेसिंग चरणों के साथ भी आता है, जैसे कि यादृच्छिक रूप से आरंभ किए गए एन्कोडर, transformers लाइब्रेरी का उपयोग करके ड्रिफ्ट का पता लगाने के लिए प्रीट्रेन्ड टेक्स्ट एम्बेडिंग, और मशीन लर्निंग मॉडल से छिपी परतों का निष्कर्षण। यह विभिन्न प्रकार के ड्रिफ्ट का पता लगाने की अनुमति देता है, जैसे कोवेरिएट और अनुमानित वितरण शिफ्ट। प्रीप्रोसेसिंग चरण TensorFlow और PyTorch दोनों में समर्थित हैं।```python from alibi_detect.cd.tensorflow import HiddenOutput, preprocess_drift
model = # TensorFlow model; tf.keras.Model or tf.keras.Sequential preprocess_fn = partial(preprocess_drift, model=HiddenOutput(model, layer=-1), batch_size=128) cd = MMDDrift(x_ref, backend='tensorflow', p_val=.05, preprocess_fn=preprocess_fn) preds = cd.predict(x)
अधिक विवरण के लिए उदाहरण नोटबुक देखें (जैसे [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_mmd_cifar10.html), [मूवी समीक्षाएँ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_text_imdb.html))।
### संदर्भ सूची
#### आउटलायर पहचान
- [Isolation Forest](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/iforest.html) ([FT Liu et al., 2008](https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf))
- उदाहरण: [नेटवर्क घुसपैठ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_if_kddcup.html)
- [Mahalanobis Distance](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/mahalanobis.html) ([Mahalanobis, 1936](https://insa.nic.in/writereaddata/UpLoadedFiles/PINSA/Vol02_1936_1_Art05.pdf))
- उदाहरण: [नेटवर्क घुसपैठ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_mahalanobis_kddcup.html)
- [Auto-Encoder (AE)](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/ae.html)
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_ae_cifar10.html)
- [Variational Auto-Encoder (VAE)](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/vae.html) ([Kingma et al., 2013](https://arxiv.org/abs/1312.6114))
- उदाहरण: [नेटवर्क घुसपैठ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_vae_kddcup.html), [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_vae_cifar10.html)
- [Auto-Encoding Gaussian Mixture Model (AEGMM)](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/aegmm.html) ([Zong et al., 2018](https://openreview.net/forum?id=BJJLHbb0-))
- उदाहरण: [नेटवर्क घुसपैठ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_aegmm_kddcup.html)
- [Variational Auto-Encoding Gaussian Mixture Model (VAEGMM)](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/vaegmm.html)
- उदाहरण: [नेटवर्क घुसपैठ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_aegmm_kddcup.html)
- [Likelihood Ratios](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/llr.html) ([Ren et al., 2019](https://arxiv.org/abs/1906.02845))
- उदाहरण: [जीनोम](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_llr_genome.html), [Fashion-MNIST बनाम MNIST](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_llr_mnist.html)
- [Prophet Time Series Outlier Detector](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/prophet.html) ([Taylor et al., 2018](https://peerj.com/preprints/3190/))
- उदाहरण: [मौसम पूर्वानुमान](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_prophet_weather.html)
- [Spectral Residual Time Series Outlier Detector](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/sr.html) ([Ren et al., 2019](https://arxiv.org/abs/1906.03821))
- उदाहरण: [सिंथेटिक डेटासेट](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_sr_synth.html)
- [Sequence-to-Sequence (Seq2Seq) Outlier Detector](https://docs.seldon.io/projects/alibi-detect/en/stable/od/methods/seq2seq.html) ([Sutskever et al., 2014](https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf); [Park et al., 2017](https://arxiv.org/pdf/1711.00614.pdf))
- उदाहरण: [ECG](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_seq2seq_ecg.html), [सिंथेटिक डेटासेट](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/od_seq2seq_synth.html)
#### एडवर्सेरियल पहचान
- [Adversarial Auto-Encoder](https://docs.seldon.io/projects/alibi-detect/en/stable/ad/methods/adversarialae.html) ([Vacanti and Van Looveren, 2020](https://arxiv.org/abs/2002.09364))
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/ad_ae_cifar10.html)
- [Model distillation](https://docs.seldon.io/projects/alibi-detect/en/stable/ad/methods/modeldistillation.html)
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_distillation_cifar10.html)
#### ड्रिफ्ट पहचान
- [Kolmogorov-Smirnov](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/ksdrift.html)
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_ks_cifar10.html), [आणविक ग्राफ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_mol.html), [मूवी समीक्षाएँ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_text_imdb.html)
- [Cramér-von Mises](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/cvmdrift.html)
- उदाहरण: [पेंगुइन](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_supervised_penguins.html)
- [Fisher's Exact Test](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/fetdrift.html)
- उदाहरण: [पेंगुइन](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_supervised_penguins.html)
- [Least-Squares Density Difference](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/lsdddrift.html) ([Bu et al, 2016](https://alippi.faculty.polimi.it/articoli/A%20Pdf%20free%20Change%20Detection%20Test%20Based%20on%20Density%20Difference%20Estimation.pdf))
- [Maximum Mean Discrepancy](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/mmddrift.html) ([Gretton et al, 2012](http://jmlr.csail.mit.edu/papers/v13/gretton12a.html))
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_mmd_cifar10.html), [आणविक ग्राफ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_mol.html), [मूवी समीक्षाएँ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_text_imdb.html), [अमेज़न समीक्षाएँ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_text_amazon.html)
- [Learned Kernel MMD](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/learnedkerneldrift.html) ([Liu et al, 2020](https://arxiv.org/abs/2002.09116))
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_clf_cifar10.html)
- [Context-aware MMD](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/contextmmddrift.html) ([Cobb and Van Looveren, 2022](https://arxiv.org/abs/2203.08644))
- उदाहरण: [ECG](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_context_ecg.html), [समाचार विषय](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_context_20newsgroup.html)
- [Chi-Squared](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/chisquaredrift.html)
- उदाहरण: [आय भविष्यवाणी](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_chi2ks_adult.html)
- [Mixed-type tabular data](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/tabulardrift.html)
- उदाहरण: [आय भविष्यवाणी](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_chi2ks_adult.html)
- [Classifier](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/classifierdrift.html) ([Lopez-Paz and Oquab, 2017](https://openreview.net/forum?id=SJkXfE5xx))
- उदाहरण: [CIFAR10](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_clf_cifar10.html), [अमेज़न समीक्षाएँ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_text_amazon.html)
- [Spot-the-diff](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/spotthediffdrift.html) ([Jitkrittum et al, 2016](https://arxiv.org/abs/1605.06796) का अनुकूलन)
- उदाहरण [MNIST और वाइन गुणवत्ता](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/spot_the_diff_mnist_win.html)
- [Classifier and Regressor Uncertainty](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/modeluncdrift.html)
- उदाहरण: [CIFAR10 और वाइन](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_model_unc_cifar10_wine.html), [आणविक ग्राफ](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_mol.html)
- [Online Maximum Mean Discrepancy](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/onlinemmddrift.html)
- उदाहरण: [वाइन गुणवत्ता](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_online_wine.html), [Camelyon चिकित्सा इमेजिंग](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_online_camelyon.html)
- [Online Least-Squares Density Difference](https://docs.seldon.io/projects/alibi-detect/en/stable/cd/methods/onlinemmddrift.html) ([Bu et al, 2017](https://ieeexplore.ieee.org/abstract/document/7890493))
- उदाहरण: [वाइन गुणवत्ता](https://docs.seldon.io/projects/alibi-detect/en/stable/examples/cd_online_wine.html)
## डेटासेट
पैकेज में `alibi_detect.datasets` में विभिन्न मोडैलिटी के लिए कई डेटासेट आसानी से प्राप्त करने की कार्यक्षमता भी शामिल है। प्रत्येक डेटासेट के लिए या तो डेटा और लेबल या डेटा, लेबल और वैकल्पिक मेटाडेटा के साथ एक *Bunch* ऑब्जेक्ट लौटाया जाता है। उदाहरण:```python
from alibi_detect.datasets import fetch_ecg
(X_train, y_train), (X_test, y_test) = fetch_ecg(return_X_y=True)
जीनोम डेटासेट: fetch_genome
(X_train, y_train), (X_val, y_val), (X_test, y_test) = fetch_genome(return_X_y=True)
ECG 5000: fetch_ecg
NAB: fetch_nab
alibi_detect.datasets.get_list_nab() का उपयोग करके प्राप्त की जा सकती है।CIFAR-10-C: fetch_cifar10c
fetch_cifar10c आपको किसी भी गंभीरता स्तर या संदूषण प्रकार का चयन करने की अनुमति देता है। उपलब्ध संदूषण प्रकारों की सूची alibi_detect.datasets.corruption_types_cifar10c() का उपयोग करके प्राप्त की जा सकती है। डेटासेट का उपयोग मजबूती और ड्रिफ्ट पर शोध में किया जा सकता है। मूल डेटा यहाँ पाया जा सकता है। उदाहरण: ```python
from alibi_detect.datasets import fetch_cifar10ccorruption = ['gaussian_noise', 'motion_blur', 'brightness', 'pixelate'] X, y = fetch_cifar10c(corruption=corruption, severity=5, return_X_y=True)
विरोधात्मक CIFAR-10: fetch_attack
(X_train, y_train), (X_test, y_test) = fetch_attack('cifar10', 'resnet56', 'cw', return_X_y=True)
fetch_kdd
fetch_kdd आपको नेटवर्क घुसपैठ के एक उपसमुच्चय को लक्ष्य के रूप में चुनने या केवल निर्दिष्ट फीचर्स चुनने की अनुमति देता है। मूल डेटा यहाँ पाया जा सकता है।मॉडल और/या निर्माण खंड जो आउटलायर, प्रतिकूल या ड्रिफ्ट डिटेक्शन के बाहर उपयोगी हो सकते हैं, alibi_detect.models के अंतर्गत पाए जा सकते हैं। मुख्य कार्यान्वयन:
PixelCNN++: alibi_detect.models.pixelcnn.PixelCNN
वैरिएशनल ऑटोएन्कोडर: alibi_detect.models.autoencoder.VAE
अनुक्रम-से-अनुक्रम मॉडल: alibi_detect.models.autoencoder.Seq2Seq
ResNet: alibi_detect.models.resnet
model = fetch_tf_model('cifar10', 'resnet32')
Alibi-detect को मशीन लर्निंग मॉडल डिप्लॉयमेंट प्लेटफ़ॉर्म Seldon Core और मॉडल सर्विंग फ्रेमवर्क KFServing में एकीकृत किया गया है।
यदि आप अपने शोध में alibi-detect का उपयोग करते हैं, तो कृपया इसे उद्धृत करने पर विचार करें।
BibTeX प्रविष्टि:``` @software{alibi-detect, title = {Alibi Detect: Algorithms for outlier, adversarial and drift detection}, author = {Van Looveren, Arnaud and Klaise, Janis and Vacanti, Giovanni and Cobb, Oliver and Scillitoe, Ashley and Samoilescu, Robert and Athorne, Alex}, url = {https://github.com/SeldonIO/alibi-detect}, version = {0.13.0}, date = {2025-12-11}, year = {2019} }