- BrainTools - https://www.braintools.ru -

GaMAC: Открытая библиотека для автоматической кластеризации мультимодальных данных под GPU

Введение

Кластеризация представляет собой одну из ключевых и востребованных задач в области машинного обучения [1]. В общем смысле, её можно описать как процесс разделения группы объектов на подгруппы таким образом, чтобы схожие объекты оказались в одной и той же подгруппе. Эта задача актуальна в различных областях, таких как биология, психология, маркетинг, социология, лингвистика и компьютерная безопасность.

В прошлом посте [2] мы писали про задачу кластеризации и важность выбора гиперпараметров. В реальной практике выбор и настройка алгоритмов машинного обучения требуют значительных усилий и времени, поскольку эти задачи часто выполняются вручную специалистами. Это подчеркивает необходимость разработки алгоритмических и программных инструментов для автоматизации поиска и создания решений для задач кластеризации. Стоит также отметить, что большинство современных моделей машинного обучения, применяемых к неструктурированным данным (изображения, текст), использует графический процессор.

На сегодняшний день не существует полноценного инструментария для кластеризации на графическом процессоре, что стало основным стимулом [3] для создания универсальной библиотеки, способной автоматически решать задачи кластеризации данных различных представлений. Из похожих решений есть autocluster [4], однако оно не поддерживает мультимодальные данные изначально, что требует отдельной предобработки вне библиотеки. Также стоит упомянуть CuML [5], работающий на GPU, однако, cuML не предоставляет возможности реализации автоматического машинного обучения без дополнительных компонентов.

GaMAC

В этом посте мы представляем GaMAC (GPU accelerated Multimodal Automatic Clustering) – система автоматической оптимизации кластеризации с поддержкой с GPU.

GaMAC: Открытая библиотека для автоматической кластеризации мультимодальных данных под GPU - 1

Поговорим про основные возможности

Авто-подбор внутренней меры качества для конкретного набора данных

В библиотеке реализованы следующие внутренние меры: МcСlain Rao (MCR), OS, Banfield Raftery (BR), SYM; а также внешняя F-мера. Приведенные меры качества были реализованы через библиотеку cupy, как с помощью стандартного API, так и написанием собственных функций ядер.

Для реализации авто-подбора был разработан и обучен мета-классификатор, где в качестве мета-набора данных были отобраны 75 табличных наборов данных из открытого источника OpenML.

Aвтоматический выбор и настройка гиперпараметров наилучшего из реализованных алгоритмов кластеризации под GPU

Для решения задачи подбора гиперпараметров Optuna [6], реализующая концепцию SMBO. Поиск оптимального решения достигается благодаря последовательному изучению пространства гиперпараметров, сбору статистики по значениям оптимизируемой функции и обучению суррогатной модели для сэмплирования очередной конфигурации гиперпараметров.

Работа с мультимодальными данными: таблицы, изображения, текст

Под капотом используется модуль обработки данных. Табличные данные обрабатываются в зависимости от типа признака: категориальный или вещественный признак. На уровне признаков происходит нормализация данных, заполнение или удаление отсутствующих значений.

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

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

Табличные данные предобрабатываются этапами и конвертируются в numpy массив. Изображения и текстовые данные отправляются в процессор и в модель CLIP, на выходе получаем эмбеддинги текста и картинки, которые конкатенируются совместно, а далее конкатенируются с вектором табличных данных.

Реализованные алгоритмы кластеризации и меры качества с поддержкой CUDA

В библиотеке реализованы и адаптированы под GPU следующие алгоритмы: KMeans, Bisecting K_Means, DBSCAN, HDBSCAN, BIRCH и Meanshift.

Для каких направлений задач работает GaMAC

  • 1. Компьютерное зрение [7] и анализ изображений

  • 2. Обработка естественного языка (NLP)

  • 3. Биоинформатика и медицинская диагностика

  • 4. Финансы и финтех

  • 5. Рекомендательные системы

  • 6. Маркетинг и поведенческая аналитика

  • 7. Геопространственный анализ

Саммари

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

GaMAC является одним из первых решений для автоматического решения задачи кластеризации данных различных представлений с использованием графического процессора (GPU). На текущий момент GaMAC доступен как исходный код в репозитории [8], так и отдельным модулем в тестовом PyPI [9].

Автор: itmo_mllab

Источник [10]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/22752

URLs in this post:

[1] обучения: http://www.braintools.ru/article/5125

[2] посте: https://habr.com/ru/companies/spbifmo/articles/781710/

[3] стимулом: http://www.braintools.ru/article/5596

[4] autocluster: https://github.com/wywongbd/autocluster

[5] CuML: https://github.com/rapidsai/cuml

[6] Optuna: https://optuna.org/

[7] зрение: http://www.braintools.ru/article/6238

[8] репозитории: https://github.com/ITMO-CODE-AI/GaMAC

[9] тестовом PyPI: https://test.pypi.org/project/Gamac/

[10] Источник: https://habr.com/ru/articles/973364/?utm_campaign=973364&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Rambler's Top100