Об'яснюваність ML: SHAP, LIME, Integrated Gradients та EU AI Act
Модель передбачає credit score 340 (відмова). Клієнт: "Чому?" Compliance: "Покажіть документацію системи та пояснення кожного рішення". EU AI Act з 2025 року вимагає explainability для high-risk систем. "Модель так вирішила" більш не приймається як відповідь.
Три Рівні Об'яснюваності
Global: розуміння моделі загалом. Які features важливі? Як кожен feature впливає на передсказання в середньому? Інструменти: SHAP summary plots, PDP (Partial Dependence), permutation importance.
Local: пояснити конкретне передсказання. Чому цей кредит відхилен? Які пікселі привели до класифікації "кіт"? Інструменти: SHAP waterfall, LIME, Integrated Gradients.
Contrastive: відповідь на "що якби". Якби дохід був на $10k вище — схвалили? Інструменти: DiCE (Diverse Counterfactual Explanations), alibi.
SHAP: Стандарт для Табличних Даних
SHAP (SHapley Additive exPlanations) базується на теорії кооперативних ігр. Кожному feature присвоюється вклад у відхилення передсказання від середнього по датасету. Математично коректен, задовольняє властивості efficiency, symmetry, dummy, additivity.
import shap
explainer = shap.TreeExplainer(lgbm_model)
shap_values = explainer.shap_values(X_test)
# Waterfall для одного передсказання
shap.plots.waterfall(explainer(X_test)[0])
# Summary для всієї вибірки
shap.summary_plot(shap_values, X_test, feature_names=feature_names)
TreeExplainer — швидкий точний для tree-based моделей (LightGBM, XGBoost, Random Forest, CatBoost). O(TLD²) де T дерева, L листя, D глибина. 1000 дерев глибини 6 — мілісекунди на пояснення.
LinearExplainer — лінійні моделі (логістична, Ridge). Аналітичне, миттєво.
KernelExplainer — модель-агностичен, будь-яка модель. Повільний: O(2^M) для M features. На практиці nsamples=1000–5000 як наближення. Для нейросітей — краще DeepExplainer або GradientExplainer.
Частая проблема: SHAP для корельованих features розподіляє вклад рівномірно — математично коректно, але візуально збовтує. Features income та income_log мають схожий SHAP хоча використовується тільки один. Рішення: видалити дубльовані features перед навчанням.
LIME: Швидше, Менш Точний, Гарний для NLP
LIME (Local Interpretable Model-Agnostic Explanations) будує локальну лінійну апроксимацію навколо передсказуваного прикладу. Швидше SHAP для складних нейросітей, але нестійкий: два запуски на одному прикладі можуть дати різні пояснення.
Сильна сторона LIME — пояснення для тексту. LimeTextExplainer показує, які слова повплинули на класифікацію. Для швидкого debug класифікатора тексту — зручний інструмент.
from lime.lime_text import LimeTextExplainer
explainer = LimeTextExplainer(class_names=['neg', 'pos'])
exp = explainer.explain_instance(text, classifier.predict_proba, num_features=10)
exp.show_in_notebook()
Integrated Gradients для Нейронних Сітей
Для deep learning (CNN, Transformer) ні SHAP KernelExplainer ні LIME не дають задовільного пояснення: занадто повільні або неточні. Integrated Gradients (IG) — gradient-based метод, теоретично обгрунтований (axioms: completeness, sensitivity, implementation invariance).
IG обчислює інтеграл градієнтів уздовж лінії від baseline (нулі або середні значення) до реального входу. Результат: attribution map — карта, що показує вклад кожного пікселю/токена.
from captum.attr import IntegratedGradients
ig = IntegratedGradients(model)
attributions = ig.attribute(
inputs=input_tensor,
baselines=baseline_tensor,
target=predicted_class,
n_steps=300,
)
Бібліотека captum від Meta — стандарт для PyTorch. Включає IG, GradCAM, SHAP DeepLift, LayerConductance.
GradCAM — простіше, швидше, теоретично слабше. Візуалізує, на які області изображення дивиться CNN. Достатень для debug CV-моделей, недостатній для compliance-документації.
EU AI Act: Що Потрібно На Практиці
EU AI Act (вступає в силу поетапно 2024–2026) вимагає для high-risk систем (credit scoring, медичні AI, найм, правоохоронні):
- Технічну документацію моделі
- Логування всіх рішень з можливістю аудиту
- Пояснення кожного індивідуального рішення за запитом
- Оцінку рисків та заходи по їх зниженню
- Людський нагляд (human oversight)
Технічно: кожне передсказання зберігається з input features, output, timestamp, model version та pre-computed поясненням. SHAP значення обчислюються при інференсі та зберігаються разом з передсказанням.
Для LLM-систем складніше: немає стандартного методу пояснення, attention weights не є надійною атрибуцією. Поточна практика — логування повного контексту, retrieved chunks в RAG, chain-of-thought reasoning як proxy-пояснення.
Що потрібно до деплою high-risk AI:
- Оцінка: підпадає ли система під high-risk категорію по Annex III EU AI Act
- Технічний паспорт: архітектура, дані навчання, метрики якості, обмеження
- Система логування: рішення + periode утримання (мінімум 10 років для деяких категорій)
- Механізм пояснень, інтегрований в production pipeline
- Процедура оспорювання рішень користувачами
Model Cards та Документація
Model Card Toolkit від Google — стандарт документування ML-моделей. Фіксує: intended use, evaluation results розбитих по demographics/subgroups, обмеження, ethical considerations.
Для sklearn/LightGBM — skorecard та ydata-profiling генерують базову документацію автоматично. У production — кастомна документація per organization.
Процес Роботи
Початок: оцінка регуляторної застосовуваності: підпадає ли система під EU AI Act high-risk, GDPR ст. 22 (автоматизовані рішення), галузеві вимоги (Basel IV для банків, MDR для медицини).
Далі: інтеграція SHAP в inference pipeline, розробка UI для пояснень (якщо потрібен клієнтський інтерфейс), налаштування логування, підготовка документації моделі.
Терміни: додавання SHAP-пояснень до готової моделі — 1–2 тижні. Повне compliance-рішення з документацією, UI та логуванням — 6–14 тижнів.







