Пояснюваність моделі стосується процесу зв’язку передбачення моделі машинного навчання (ML) із значеннями вхідних характеристик екземпляра в термінах, зрозумілих людині. Це поле часто називають зрозумілий штучний інтелект (XII). Роз'яснити Amazon SageMaker є особливістю Amazon SageMaker що дозволяє дослідникам обробки даних та інженерам ML пояснювати прогнози своїх моделей ML. Він використовує модельні агностичні методи, такі як SHapely Additive пояснення (SHAP) для атрибуції ознак. Окрім підтримки пояснень для табличних даних, Clarify також підтримує можливість пояснення як для комп’ютерного зору (CV), так і для обробки природної мови (NLP) за допомогою того самого алгоритму SHAP.
У цій публікації ми проілюструємо використання Clarify для пояснення моделей НЛП. Зокрема, ми показуємо, як можна пояснити прогнози моделі класифікації тексту, яка була навчена за допомогою SageMaker BlazingText алгоритм. Це допоможе вам зрозуміти, які частини або слова тексту є найважливішими для прогнозів, зроблених моделлю. Серед іншого, ці спостереження потім можна використовувати для вдосконалення різних процесів, наприклад збору даних, що зменшує зміщення в наборі даних і перевірки моделі, щоб переконатися, що моделі працюють належним чином, і заслужити довіру всіх зацікавлених сторін під час розгортання моделі. Це може бути ключовою вимогою в багатьох областях застосування, як-от аналіз настроїв, юридичні огляди, медична діагностика тощо.
Ми також надаємо загальний шаблон проектування, який можна використовувати під час використання Clarify з будь-яким із Алгоритми SageMaker.
Огляд рішення
Алгоритми SageMaker мають фіксовані формати вхідних і вихідних даних. Наприклад, контейнер алгоритму BlazingText приймає вхідні дані у форматі JSON. Але клієнтам часто потрібні спеціальні формати, сумісні з їхніми конвеєрами даних. Ми представляємо кілька варіантів, якими ви можете скористатися, щоб використовувати Clarify.
Варіант А
У цьому варіанті ми використовуємо функцію конвеєра висновків хостингу SageMaker. Конвеєр виведення — це модель SageMaker, яка являє собою послідовність контейнерів, які обробляють запити на виведення. На наступній діаграмі показано приклад.
Ви можете використовувати конвеєри висновків для розгортання комбінації ваших власних моделей і вбудованих алгоритмів SageMaker, упакованих у різні контейнери. Для отримання додаткової інформації див Розміщення моделей разом із логікою попередньої обробки як послідовний конвеєр виведення за однією кінцевою точкою. Оскільки Clarify підтримує лише рядки CSV і JSON як вхідні дані, вам потрібно виконати наступні кроки:
- Створіть модель і контейнер для перетворення даних із CSV (або рядків JSON) у JSON.
- Безпосередньо після етапу навчання моделі за допомогою алгоритму BlazingText розгорнути модель. Це розгорне модель за допомогою контейнера BlazingText, який приймає JSON як вхідні дані. У разі використання іншого алгоритму SageMaker створює модель за допомогою контейнера цього алгоритму.
- Використовуйте дві попередні моделі, щоб створити a PipelineModel. Це об’єднує дві моделі в лінійну послідовність і створює єдину модель. Для прикладу див Конвеєр висновків із Scikit-learn і Linear Learner.
За допомогою цього рішення ми успішно створили єдину модель, вхідні дані якої сумісні з Clarify і можуть використовуватися нею для створення пояснень.
Варіант B
Цей параметр демонструє, як ви можете інтегрувати використання різних форматів даних між алгоритмами Clarify і SageMaker, залучивши власний контейнер для розміщення моделі SageMaker. На наведеній нижче схемі показано архітектуру та етапи вирішення.
Ці кроки є наступними:
- Використовуйте алгоритм BlazingText через оцінювач SageMaker для навчання моделі класифікації тексту.
- Після навчання моделі створіть спеціальний контейнер Docker, який можна використовувати для створення моделі SageMaker і за бажанням розгорніть модель як кінцеву точку моделі SageMaker.
- Налаштуйте та створіть завдання Clarify, щоб використовувати контейнер хостингу для створення звіту про пояснення.
- Спеціальний контейнер приймає запит на висновок як CSV і дозволяє Clarify генерувати пояснення.
Слід зазначити, що це рішення демонструє ідею отримання офлайн-пояснень за допомогою Clarify для моделі BlazingText. Для отримання додаткової інформації про можливість пояснення в Інтернеті зверніться до Онлайн-пояснення за допомогою SageMaker Clarify.
Решта цієї публікації пояснює кожен із кроків у другому варіанті.
Навчання моделі BlazingText
Спочатку ми навчаємо модель класифікації тексту за допомогою алгоритму BlazingText. У цьому прикладі ми використовуємо Набір даних онтології DBpedia. DBpedia — це краудсорсингова ініціатива для отримання структурованого вмісту з використанням інформації з різних проектів Wikimedia, таких як Wikipedia. Зокрема, ми використовуємо набір даних онтології DBpedia, створений Чжан та ін. Він створений шляхом вибору 14 класів, що не перетинаються, з DBpedia 2014. Поля містять анотацію статті Вікіпедії та відповідний клас. Метою моделі класифікації тексту є прогнозування класу статті за її анотацією.
Нижче наведено докладний покроковий процес навчання моделі ноутбук. Після того, як ви навчили модель, зверніть увагу на Служба простого зберігання Amazon (Amazon S3) Шлях URI, де зберігаються артефакти моделі. Щоб отримати покрокову інструкцію, див Класифікація тексту за допомогою SageMaker BlazingText.
Розгорніть навчену модель BlazingText за допомогою власного контейнера на SageMaker
За допомогою Clarify є два варіанти надання інформації про модель:
- Створіть модель SageMaker, не розгортаючи її на кінцевій точці – Коли модель SageMaker надається Clarify, вона створює ефемерну кінцеву точку за допомогою моделі.
- Створіть модель SageMaker і розгорніть її на кінцевій точці – Коли кінцева точка стає доступною для Clarify, вона використовує кінцеву точку для отримання пояснень. Це дозволяє уникнути створення ефемерної кінцевої точки та може скоротити час виконання завдання Clarify.
У цій публікації ми використовуємо перший варіант із Clarify. Ми використовуємо SageMaker Python SDK Для цієї мети. Щоб отримати додаткові відомості, див Створіть кінцеву точку та розгорніть свою модель.
Принесіть власний контейнер (BYOC)
Спочатку ми створюємо власний образ Docker, який використовується для створення Модель SageMaker. Ви можете використовувати файли та код у вихідний каталог нашого репозиторію GitHub.
Файл Docker описує образ, який ми хочемо створити. Ми починаємо зі стандартної установки Ubuntu, а потім встановлюємо Scikit-learn. Ми також клонуємо швидкий текст і встановіть пакет. Він використовується для завантаження моделі BlazingText для створення прогнозів. Нарешті, ми додаємо код, який реалізує наш алгоритм у формі попередніх файлів, і налаштовуємо середовище в контейнері. Все Докер-файл міститься в нашому репозиторії, і ви можете використовувати його як є. Відноситься до Використовуйте свій власний код виведення з послугами хостингу щоб дізнатися більше про те, як SageMaker взаємодіє з вашим контейнером Docker і його вимоги.
Крім того, prediktor.py містить код для завантаження моделі та створення прогнозів. Він приймає вхідні дані як CSV, що робить його сумісним з Clarify.
Отримавши файл Docker, створіть контейнер Docker і завантажте його Реєстр контейнерів Amazon Elastic (Amazon ECR). Ви можете знайти покроковий процес у формі a скрипт оболонки у нашому репозиторії GitHub, який можна використовувати для створення та завантаження образу Docker на Amazon ECR.
Створіть модель BlazingText
Наступним кроком є створення об’єкта моделі з SDK SageMaker Python Клас моделі які можна розгорнути на кінцевій точці HTTPS. Ми налаштовуємо Clarify на використання цієї моделі для створення пояснень. Код та інші вимоги для цього кроку див Розгорніть навчену модель BlazingText SageMaker за допомогою власного контейнера в Amazon SageMaker.
Налаштувати Clarify
Clarify NLP сумісний з моделями регресії та класифікації. Це допоможе зрозуміти, які частини введеного тексту впливають на прогнози вашої моделі. Clarify підтримує 62 мови та може працювати з текстом кількома мовами. Ми використовуємо SageMaker Python SDK, щоб визначити три конфігурації, які використовує Clarify для створення звіту про пояснення.
По-перше, нам потрібно створити об’єкт процесора, а також вказати розташування вхідного набору даних, який буде використовуватися для прогнозів і атрибуції ознак:
DataConfig
Тут вам слід налаштувати розташування вхідних даних, стовпець функцій і те, де ви хочете, щоб завдання Clarify зберігало вихідні дані. Це робиться шляхом передачі відповідних аргументів під час створення об’єкта DataConfig:
ModelConfig
За допомогою ModelConfig ви повинні вказати інформацію про свою навчену модель. Тут ми вказуємо назву моделі BlazingText SageMaker, яку ми створили на попередньому кроці, а також встановлюємо інші параметри, наприклад Обчислювальна хмара Amazon Elastic Тип екземпляра (Amazon EC2) і формат вмісту:
SHAPConfig
Це використовується для інформування Clarify про те, як отримати атрибути функцій. TextConfig використовується для визначення деталізації тексту та мови. У нашому наборі даних, оскільки ми хочемо розбити вхідний текст на слова, а мовою є англійська, ми встановлюємо ці значення відповідно на token і English. Залежно від характеру вашого набору даних, ви можете встановити деталізацію для речення або абзацу. Базовою лінією встановлено спеціальний жетон. Це означає, що Clarify видалить підмножини вхідного тексту та замінить їх значеннями з базової лінії, отримуючи прогнози для обчислення значень SHAP. Таким чином він визначає вплив токенів на прогнози моделі та, у свою чергу, визначає їх важливість. Кількість зразків, які мають використовуватися в алгоритмі Kernel SHAP, визначається значенням num_samples
аргумент. Вищі значення призводять до більш надійних атрибуцій функцій, але це також може збільшити час виконання завдання. Тому вам потрібно знайти компроміс між ними. Перегляньте наступний код:
Для отримання додаткової інформації див Атрибуції функцій, які використовують значення Шеплі та Офіційний документ Amazon AI Fairness and Explainability.
ModelPredictedLabelConfig
Щоб Clarify міг витягти прогнозовану мітку або прогнозовані оцінки чи ймовірності, потрібно встановити цей об’єкт конфігурації. Перегляньте наступний код:
Для отримання додаткової інформації див документація в SDK.
Виконайте завдання Clarify
Після створення різних конфігурацій ви готові запустити завдання обробки Clarify. Завдання обробки перевіряє вхідні дані та параметри, створює ефемерну кінцеву точку та обчислює локальні та глобальні атрибуції функцій за допомогою алгоритму SHAP. Коли це буде завершено, він видаляє тимчасову кінцеву точку та генерує вихідні файли. Перегляньте наступний код:
Час виконання цього кроку залежить від розміру набору даних і кількості зразків, які генерує SHAP.
Візуалізуйте результати
Нарешті, ми показуємо візуалізацію результатів зі звіту про атрибуцію локальних ознак, створеного завданням обробки Clarify. Вихід у форматі рядків JSON із деякою обробкою; ви можете побудувати бали для токенів у вхідному тексті, як у наступному прикладі. Більш високі стовпчики мають сильніший вплив на цільову мітку. Крім того, позитивні значення пов’язані з вищими прогнозами в цільовій змінній, а негативні значення – з нижчими прогнозами. У цьому прикладі модель робить прогноз для вхідного тексту «Везебах — це річка Гессену в Німеччині». Прогнозований клас – це природне місце, і оцінки показують, що модель визнала слово «річка» найбільш інформативним для цього прогнозу. Це інтуїтивно зрозуміло для людини, і, досліджуючи більше зразків, ви можете визначити, чи модель вивчає правильні функції та поводиться, як очікувалося.
Висновок
У цій публікації ми пояснили, як ви можете використовувати Clarify для пояснення прогнозів з моделі класифікації тексту, яка була навчена за допомогою SageMaker BlazingText. Почніть із пояснення прогнозів із ваших моделей класифікації тексту за допомогою зразка блокнота Можливість пояснення тексту для SageMaker BlazingText.
Ми також обговорили більш загальний шаблон проектування, який можна використовувати під час використання Clarify із вбудованими алгоритмами SageMaker. Для отримання додаткової інформації див Що таке справедливість і можливість пояснення моделі для прогнозів машинного навчання. Ми також заохочуємо вас прочитати Офіційний документ Amazon AI Fairness and Explainability, який містить огляд теми та обговорює найкращі практики та обмеження.
Про авторів
Pinak Panigrahi працює з клієнтами над створенням рішень на основі машинного навчання для вирішення стратегічних бізнес-завдань на AWS. Коли він не займається машинним навчанням, його можна знайти під час походу, читання книги або занять спортом.
Дхавал Патель є головним архітектором машинного навчання в AWS. Він працював з організаціями, починаючи від великих підприємств і закінчуючи стартапами середнього розміру, над проблемами, пов’язаними з розподіленими обчисленнями та штучним інтелектом. Він зосереджується на глибокому навчанні, включаючи домени НЛП та комп’ютерного зору. Він допомагає клієнтам досягти високопродуктивної моделі висновку на SageMaker.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/explain-text-classification-model-predictions-using-amazon-sagemaker-clarify/
- 100
- 2014
- 7
- 9
- a
- МЕНЮ
- РЕЗЮМЕ
- Приймає
- Achieve
- придбання
- після
- AI
- алгоритм
- алгоритми
- ВСІ
- Amazon
- Amazon EC2
- Amazon SageMaker
- серед
- аналіз
- та
- крім
- додаток
- архітектура
- аргумент
- аргументація
- стаття
- штучний
- штучний інтелект
- асоційований
- доступний
- AWS
- бари
- Базова лінія
- оскільки
- за
- КРАЩЕ
- передового досвіду
- між
- зміщення
- книга
- Перерва
- Приведення
- будувати
- вбудований
- бізнес
- ланцюга
- клас
- класів
- класифікація
- код
- Колонка
- поєднання
- сумісний
- повний
- обчислення
- комп'ютер
- Комп'ютерне бачення
- обчислення
- Контейнер
- Контейнери
- містить
- зміст
- конвертувати
- Відповідний
- Пара
- створювати
- створений
- створює
- створення
- створення
- виготовлений на замовлення
- Клієнти
- дані
- глибокий
- глибоке навчання
- Залежно
- залежить
- розгортання
- розгорнути
- розгортання
- дизайн
- докладно
- деталі
- Визначати
- певний
- визначає
- різний
- безпосередньо
- обговорювалися
- розподілений
- розподілені обчислення
- Docker
- домени
- вниз
- керований
- Падіння
- кожен
- заробляти
- ефект
- дозволяє
- заохочувати
- Кінцева точка
- Інженери
- англійська
- забезпечувати
- підприємств
- Весь
- Навколишнє середовище
- Вивчення
- приклад
- очікуваний
- Пояснювати
- пояснені
- пояснюючи
- Пояснює
- витяг
- справедливість
- особливість
- риси
- поле
- Поля
- Файли
- в кінці кінців
- знайти
- Перший
- фіксованою
- фокусується
- стежити
- після
- слідує
- форма
- формат
- знайдений
- від
- Крім того
- Загальне
- породжувати
- генерується
- генерує
- породжує
- Німеччина
- отримати
- GitHub
- даний
- Глобальний
- мета
- керівництво
- обробляти
- Обробка
- допомагає
- тут
- Високий
- вище
- Похід
- проведення
- хостинг
- Як
- How To
- HTML
- HTTPS
- людина
- ідея
- ідентифікує
- зображення
- Impact
- implements
- імпорт
- значення
- важливо
- удосконалювати
- in
- У тому числі
- Augmenter
- вказувати
- вплив
- інформація
- інформативний
- Ініціатива
- вхід
- встановлювати
- екземпляр
- інтегрувати
- Інтелект
- взаємодіє
- інтуїтивний
- викликає
- залучений
- IT
- робота
- json
- ключ
- етикетка
- мова
- мови
- великий
- вивчення
- легальний
- недоліки
- ліній
- загрузка
- погрузка
- місцевий
- розташування
- машина
- навчання за допомогою машини
- made
- зробити
- РОБОТИ
- Робить
- багато
- засоби
- медичний
- методика
- ML
- модель
- Моделі
- більше
- найбільш
- множинний
- ім'я
- Природний
- Обробка природних мов
- природа
- Необхідність
- потреби
- негативний
- наступний
- nlp
- ноутбук
- зазначив,
- номер
- об'єкт
- отримання
- offline
- ONE
- онлайн
- Онтологія
- варіант
- Опції
- організації
- Інше
- огляд
- власний
- пакет
- параметри
- частини
- Проходження
- шлях
- Викрійки
- продуктивність
- виконанні
- трубопровід
- місце
- plato
- Інформація про дані Платона
- PlatoData
- позитивний
- пошта
- практики
- передбачати
- передвіщений
- прогноз
- Прогнози
- представити
- Головний
- попередній
- проблеми
- процес
- процеси
- обробка
- процесор
- проектів
- забезпечувати
- за умови
- забезпечує
- мета
- Python
- ранжування
- Читати
- читання
- готовий
- зменшити
- знижує
- називають
- відноситься
- пов'язаний
- доречний
- замінювати
- звітом
- Сховище
- запросити
- запитів
- вимагати
- вимога
- Вимога
- REST
- результат
- результати
- огляд
- Відгуки
- Річка
- міцний
- мудрець
- то ж
- Вчені
- scikit-вчитися
- Sdk
- другий
- вибирає
- пропозиція
- настрій
- Послідовність
- послідовний
- комплект
- Повинен
- Показувати
- простий
- один
- Розмір
- рішення
- Рішення
- ВИРІШИТИ
- деякі
- спеціальний
- конкретний
- конкретно
- SPORTS
- зацікавлених сторін
- standard
- старт
- почалася
- Стартапи
- Крок
- заходи
- зберігання
- зберігати
- зберігати
- Стратегічний
- стратегічний бізнес
- структурований
- Успішно
- Підтримуючий
- Опори
- Приймати
- взяття
- Мета
- terms
- Класифікація тексту
- Команда
- їх
- отже
- речі
- три
- до
- знак
- Жетони
- тема
- поїзд
- навчений
- Навчання
- викликати
- Довіряйте
- ПЕРЕГЛЯД
- Ubuntu
- розуміти
- зрозуміло
- використання
- перевірка достовірності
- значення
- Цінності
- різний
- через
- бачення
- візуалізації
- який
- в той час як
- Whitepaper
- Вікіпедія
- волі
- без
- слово
- слова
- працював
- працює
- Ти
- вашу
- зефірнет