PostgresML - перенесите рабочую нагрузку ML в базу данных

PostgresML - это расширение машинного обучения для PostgreSQL, позволяющее проводить обучение и делать выводы на текстовых и табличных данных с помощью SQL-запросов. Это открывает интригующие возможности. Давайте узнаем больше.

Разве не здорово запускать ML-модели на живых данных, не выходя из базы данных? С помощью расширения PostgresML любой владелец базы данных PostgreSQL теперь может запускать ML-нагрузки поверх SQL.

Сейчас препятствием для применения ML к вашим данным является то, что вам придется реплицировать схему, структуры и данные в OLAP-хранилище, когда и схема, и данные уже существуют в вашей базе данных. Почему бы не избавиться от этого стека и не выполнять запросы там, где на самом деле находятся данные?

С другой стороны, обучение ML-моделей на живых данных и выполнение аналитики на базе данных OLTP, которая и так перегружена из-за обычного повседневного использования, может показаться ужасной идеей. Однако с помощью PostgresML модели можно периодически переобучать, когда это имеет смысл или когда в обновляемых данных много вариаций.

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

Однако в зависимости от размера вашего набора данных и частоты его изменений вы можете захотеть перегрузить обучение (или выводы) на вторичные серверы PostgreSQL, чтобы избежать чрезмерной нагрузки на основной. Существует три встроенных механизма, помогающих распределить нагрузку. В основном это pg_dump, Foreign Data Wrappers или логическая репликация. Есть еще один вариант, о котором я расскажу в одной из следующих статей о родственном продукте.

А сейчас перейдем к основному... На самом высоком уровне с помощью PostgresML вы можете

  • Выполнять задачи обработки естественного языка (NLP), такие как анализ настроения, вопросы и ответы, перевод, обобщение и генерация текста
  • Получить доступ к 1000 самых современных языковых моделей, таких как GPT-2, GPT-J, GPT-Neo, из центра моделей HuggingFace.
  • Тонкая настройка больших языковых моделей (LLM) на собственных текстовых данных для различных задач
  • Используйте существующую базу данных PostgreSQL в качестве векторной базы данных, генерируя вкрапления из текста, хранящегося в базе данных.

Некоторые реальные примеры использования PostgresML:

  • Обработка естественного языка

Классификация текста
Классификация по нулям
Классификация токенов
Перевод
Резюме
Ответы на вопросы
Генерация текста
Генерация текста в текст
Заполнение-маска

  • Прогнозирование
  • Обнаружение мошенничества в реальном времени
  • Обнаружение опухолей с помощью бинарной классификации
  • Классификация рукописных цифровых изображений
  • Прогрессирование диабета с помощью регрессии
  • Глубокое обучение с помощью трансформаторов
  • Работа с вкраплениями

И как ее использовать? Сначала нужно обучить модель на данных:

Установка PostgresML состоит из трех частей: База данных PostgreSQL, расширение Postgres для машинного обучения и приложение для дашборда. Расширение предоставляет всю функциональность машинного обучения и может использоваться независимо с помощью любой SQL IDE. Приложение dashboard предоставляет простой в использовании интерфейс для написания SQL-блокнотов, проведения и отслеживания ML-экспериментов и ML-моделей.

Безусловно, самый простой способ начать работу - это Docker:

docker run
-it
-v postgresml_data:/var/lib/postgresql
-p 5433:5432
-p 8000:8000
ghcr. io/postgresml/postgresml:2. 7. 12
sudo -u postgresml psql -d postgresml

Обратите внимание, что доступ к PostgresML можно получить и с помощью ваших любимых инструментов и языков, например, Python:

Подводя итог, можно сказать, что PostgresML - это часть движения "Postgres для всего". Теперь он переносит вашу нагрузку ML в базу данных!

PostgresML - перенесите рабочую нагрузку ML в базу данных
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
25 января 2024 г.
70

Комментарии

Оставить комментарий:
* отправляя форму, я даю согласие на обработку персональных данных

Читайте еще

Продолжаем добавлять языки программирования для Вас.
Впереди много интересного!

Только свежие новости программирования и технологий каждый день.