ECCO - это библиотека Python для изучения и объяснения моделей обработки естественного языка с использованием интерактивных визуализаций.
ECCO предоставляет несколько интерфейсов, чтобы помочь объяснению и интуиции языковых моделей на основе трансформаторов. Читайте: интерфейсы для объяснения моделей языка трансформатора.
ECCO работает в ноутбуках Jupyter. Он построен на вершине питорха и трансформаторов.
ECCO не занимается обучением или моделями с точной настройкой. Только изучение и понимание существующих предварительно обученных моделей. Библиотека в настоящее время является альфа -выпуском исследовательского проекта. Вы можете внести свой вклад, чтобы сделать это лучше!
Документация: ecco.readthedocs.io
Вы можете установить ecco либо с pip , либо с conda .
с Pip
pip install eccoс Conda
conda install -c conda-forge eccoВы можете запустить все эти примеры из этого [Notebbook] | [Колаб].
Используйте большую языковую модель (в данном случае T5) для обнаружения текстовых настроений. В дополнение к мнению, см. Токены, в которые модель сломала текст (что может помочь отладить некоторые краевые случаи).
Атрибуция функций с использованием интегрированных градиентов помогает вам исследовать модельные решения. В этом случае переключение «слабости» на «наклон» позволяет модели правильно переключить прогноз на положительный .
Знает ли GPT2, где находится аэропорт Хитроу? Да. Это так.
Визуализируйте токены вывода -кандидата и их оценки вероятности.
Модель выбрала Лондон, сделав самый высокий токен вероятности (рейтинг № 1) после последнего уровня в модели. Насколько каждый слой способствовал увеличению рейтинга Лондона ? Это визуализация Logit Lens, которая помогает изучить активность различных модельных слоев.
Группа нейронов в BERT, как правило, стреляет в ответ на запятые и другие пунктуации. Другие группы нейронов имеют тенденцию стрелять в ответ на местоимения. Используйте эту визуализацию для факторизации активности нейронов в отдельных слоях FFNN или во всей модели.
Прочитайте газету:
ECCO: Библиотека с открытым исходным кодом для объяснения системы Ассоциации системы языка трансформатора для вычислительной лингвистики (ACL), 2021
Ссылка на API и страница архитектуры объясняют компоненты ECCO и то, как они работают вместе.
Прогнозируемые токены: просмотреть прогноз модели для следующего токена (с показателями вероятности). Посмотрите, как прогнозы развивались через слои модели. [Записная книжка] [Колаб]

Рейтинги по слоям: после того, как модель выбирает выходной токен, оглянитесь на то, как каждый слой ранжировал этот токен. [Записная книжка] [Колаб]

Прогнозы слоя: сравните рейтинг множественных токенов в качестве кандидатов на определенную позицию в последовательности. [Записная книжка] [Колаб]

Основные атрибуты: сколько каждый входной токен способствовал созданию выходного токена? [Записная книжка] [Колаб]

Подробные первичные атрибуты: см. Более точные значения атрибутов ввода, используя подробный представление. [Записная книжка] [Колаб]

Анализ активации нейронов: изучите основные паттерны в активациях нейронов с использованием неотрицательной факторизации матрицы. [Записная книжка] [Колаб]

Есть проблемы?
Bibtex для цитат:
@inproceedings { alammar-2021-ecco ,
title = " Ecco: An Open Source Library for the Explainability of Transformer Language Models " ,
author = " Alammar, J " ,
booktitle = " Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations " ,
year = " 2021 " ,
publisher = " Association for Computational Linguistics " ,
}