MindsDB - это уровень искусственного интеллекта с открытым исходным кодом для существующих баз данных, который позволяет без труда разрабатывать, обучать и развертывать современные модели машинного обучения с использованием SQL-запросов. Для большей гибкости MindsDB разработал фреймворк Lightwood. Lightwood имеет один основной класс, Predictor, который представляет собой модульную конструкцию, с помощью которой вы можете обучаться и получать прогнозы. Он состоит из 3 основных строительных блоков (функций, кодировщиков, микшеров), которые вы можете настраивать, изменять и расширять по своему усмотрению.

Однако во многих случаях задача обучения или прогнозирования для машинного обучения может потребовать значительных вычислительных ресурсов. Это означает, что обучение или прогноз может иногда длиться несколько минут или часов, особенно когда нам нужно обрабатывать огромные объемы данных. В этом случае можно использовать специализированные аппаратные ускорители (например, ПЛИС) для ускорения обучения и прогнозирования. Однако во многих случаях использование и развертывание ПЛИС непросто и требует значительного опыта в области ПЛИС.

InAccel, мировой лидер в области развертывания ПЛИС, позволяет легко интегрировать ПЛИС в широко используемые платформы, такие как Spark, Scikit-learn, Keras, ноутбуки Jupyter, а теперь и MindsDB. InAccel предоставляет уникальный диспетчер ресурсов ПЛИС, который позволяет бесшовную интеграцию ПЛИС с высокоуровневыми языками программирования и фреймворками для анализа данных. Менеджер Coral FPGA позволяет легко развертывать, масштабировать и управлять ресурсами FPGA. Он поставляется с API, который позволяет передавать ресурсоемкие функции на ПЛИС так же просто, как вызов любой функции из программных библиотек. Также он предоставляет несколько IP-ядер на базе FPGA для ускорения типичных алгоритмов машинного обучения, таких как логистическая регрессия, кластеризация k-средних, наивный байес и XGBoost.

InAccel предоставляет ускоритель логистической регрессии, который может ускорить время обучения модели машинного обучения, и он доступен для ПЛИС Intel Arria10, инстансов Amazon EC2 F1 и платформ Xilinx Alveo U200, U250 и U280 FPGA. Поэтому мы разработали класс LogisticRegression, который можно выбрать в качестве желаемого микшера для создания Lightwood Predictor.

В этом случае наиболее трудоемкая часть - обучение модели - выполняется на одной из доступных ПЛИС с использованием ускорителя логистической регрессии InAccel. Основным преимуществом этой интеграции является то, что пользователь может легко загружать данные из своей базы данных с помощью источников данных MindsDB. База данных может быть MARIADB, MYSQL, POSTGRESQL, CLICKHOUSE, SQL SERVER или SNOWFLAKE, а выбор данных для обучения на FPGA может быть выполнен с помощью простой команды. Таким образом, пользователи могут пройти обучение до 15 раз быстрее без каких-либо изменений кода.

На следующем рисунке показано, как инфраструктура InAccel была интегрирована в MindsDB, чтобы обеспечить ускорение задач машинного обучения с использованием ПЛИС, доступных локально или в облаке.

Вы можете запустить простой пример в InAccel Studio.

Импортируйте необходимые библиотеки

import pandas as pd
from lightwood import Predictor
from inaccel_sklearn_mixer import LogisticRegression

Загрузить исторические данные

df = pd.read_csv('https://mindsdb-example-data.s3.eu-west-2.amazonaws.com/home_rentals.csv')

Обучите новый предсказатель с помощью ПЛИС

predictor = Predictor(config)
predictor.learn(from_data=df)

Делать предсказания

df = df.drop([x['name'] for x in config['output_features']], axis=1)
results = predictor.predict(when_data=df)

Элиас Коромилас, Иоаннис Стамелос, Аспасия Ставриану, Христофорос Кахрис

Для получения дополнительной информации свяжитесь с InAccel по адресу [email protected].