Для тех из вас, кому не терпится попробовать что-то новое, а не читать о нем, не стесняйтесь просто погрузиться в наш быстрый старт.

Мы уже некоторое время разрабатываем тестовый пакет deepchecks Open Source и благодарны за постоянную поддержку и отзывы нашего сообщества пользователей. Один из запросов, который мы чаще всего слышали, заключался в том, чтобы расширить его в НЛП — создать структуру проверки для моделей НЛП и текстовых наборов данных.

Сегодня мы рады сообщить, что он наконец-то здесь! В этом сообщении блога мы познакомим вас с различными функциями Deepchecks NLP, продемонстрируем некоторые примеры проверок, которые он предлагает, и продемонстрируем, как вы можете использовать его для повышения производительности и надежности конвейеров машинного обучения.

Вы можете установить его, просто запустив:

pip install -U deepchecks[nlp]
pip install -U deepchecks[nlp-properties] # Optional for greater capabilities

Давайте погрузимся!

Deepchecks NLP: основные характеристики

Deepchecks NLP поддерживает метрики оценки для трех типов задач «из коробки»: классификация текста по нескольким классам, классификация текста по нескольким меткам и классификация токенов. Кроме того, он предлагает различные проверки данных, такие как проверка целостности данных и проверки дрейфа, которые могут работать с любой задачей НЛП.

Вот несколько примеров проверок и типов проблем, которые они могут решить:

  • Проверка дрейфа вложений: обнаруживает дрейф данных в пространстве вложений. Эта проверка полезна для выявления изменений в распределении ваших данных, которые могут повлиять на производительность вашей модели. Например, если ваша модель обучена новостным статьям за определенный период времени, ей может быть сложно обобщить статьи из другого периода времени с другими темами и стилями написания.
from deepchecks.nlp.checks import TextEmbeddingsDrift

check = TextEmbeddingsDrift()
res = check.run(train, test)

  • Проверка недостаточно аннотированных сегментов: автоматически находит сегменты, в которых отсутствуют аннотации. Эта проверка может помочь вам определить области в вашем наборе данных, где необходимы дополнительные аннотации, гарантируя, что ваша модель имеет достаточно размеченных данных для обучения.
from deepchecks.nlp.checks import UnderAnnotatedPropertySegments

check = UnderAnnotatedPropertySegments()
res = check.run(test)

  • Проверка неизвестных токенов: Идентифицирует токены, не распознанные токенизатором. Эта проверка особенно полезна при работе с текстовыми данными, содержащими специальные символы, эмодзи или нестандартный язык. Идентифицируя неизвестные токены, вы можете предварительно обработать свои данные, чтобы ваш токенизатор мог обрабатывать все токены в вашем наборе данных.
from deepchecks.nlp.checks import UnknownTokensCheck
check = UnknownTokensCheck() res = check.run(data)

  • Проверка на выбросы текста: Обнаруживает необычные образцы текста, которые могут потребовать особого внимания. Эта проверка может помочь вам определить образцы в вашем наборе данных, которые значительно отличаются от остальных, что позволит вам исследовать и устранять потенциальные проблемы с вашими данными.

  • Проверка производительности сегмента метаданных: анализирует производительность модели по различным сегментам данных на основе столбцов метаданных, помогая выявить потенциальные отклонения или области, в которых модель может нуждаться в улучшении.

Эти проверки могут помочь вам выявить проблемы в ваших данных и моделях, что приведет к повышению производительности и надежности.

Структура Deepchecks NLP: TextData, проверки и комплекты

Deepchecks NLP построен вокруг трех основных компонентов:

  1. TextData: объект TextData используется для хранения ваших текстовых данных, меток и любых дополнительных метаданных. Это основной вход для проверок и пакетов Deepchecks NLP. Помимо необработанных текстовых данных, Deepchecks вычисляет свойства, которые представляют собой различные атрибуты текста. Затем эти свойства используются в различных проверках, от обнаружения выбросов до поиска слабых сегментов.
  2. Проверки: проверки — это отдельные тесты, которые можно запускать для ваших объектов TextData. Они предназначены для выявления конкретных проблем в ваших данных или моделях, таких как дрейф данных, неизвестные токены или недостаточно аннотированные сегменты.
  3. Наборы: наборы — это наборы проверок, которые можно запускать вместе для проверки ваших данных и моделей. Deepchecks NLP поставляется с несколькими предварительно созданными наборами, такими как целостность данных, проверка обучающего теста и оценка модели. Вы также можете создавать свои собственные наборы для удовлетворения ваших конкретных потребностей.

Начало работы с Deepchecks NLP

Для начала вы можете запустить проверку или набор проверок для своего варианта использования. Во-первых, вам нужно создать объект TextData для вашего поезда и тестовых данных:

from deepchecks.nlp import TextData
train = TextData(train_text, label=train_label, task_type='text_classification',
                 metadata=train_metadata_df)
test = TextData(test_text, label=test_label, task_type='text_classification',
                metadata=test_metadata_df)

Где:

  • текст — это просто список строк, ваш набор текстовых данных.
  • метка — это метка задачи, текстовая классификация или классификация токенов.
  • метаданные – это необязательный кадр данных, содержащий дополнительную информацию об образцах текста.

Затем вы можете запустить проверку или набор проверок ваших объектов TextData:

from deepchecks.nlp.suites import data_integrity
data_integrity_suite.run(test)

Каждая проверка уведомляет о найденных проблемах и показывает информативное отображение, объясняющее проблему. Решая эти проблемы, вы можете значительно улучшить производительность и надежность вашей модели.

Например, запустив проверки производительности сегмента, вы можете обнаружить, что ваша модель борется с высокотоксичными образцами или что она плохо работает в определенных сегментах пользователей. Решая эти проблемы, вы можете значительно улучшить производительность вашей модели.

Подведение итогов

Deepchecks NLP предлагает комплексное решение для проверки ваших моделей и данных NLP на протяжении всего процесса разработки. Благодаря широкому набору проверок и простой в использовании структуре он может помочь вам выявить и устранить проблемы в ваших данных и моделях, что приведет к повышению производительности и надежности.

Включив Deepchecks NLP в свои конвейеры машинного обучения, вы можете обеспечить постоянную проверку своих моделей, от исследования до развертывания.

Попробуйте и посмотрите, как это поможет вам построить лучшие модели НЛП! Я приглашаю вас в:

Ноам Бресслер — руководитель отдела искусственного интеллекта Deepchecks, где он руководит разработкой алгоритмов и методологий машинного обучения для проверки моделей и данных. Ноам имеет степень магистра физики и ранее работал специалистом по данным и исследователем алгоритмов, разрабатывая машинное обучение и аналитические модели в области обработки акустических сигналов в IDF.