В ClickHouse появились функции для работы с ИИ прямо из SQL

4 мин
В ClickHouse появились функции для работы с ИИ прямо из SQL

Команда ClickHouse представила набор встроенных ИИ-функций, которые позволяют вызывать большие языковые модели (LLM) и сервисы для создания векторных представлений непосредственно из SQL-запросов. Теперь операции вроде классификации текста, извлечения данных, перевода или генерации можно выполнять внутри базы данных, где уже хранятся исходные данные.

Новые возможности находятся в стадии бета-тестирования. Они появлялись постепенно в нескольких версиях ClickHouse: сначала были добавлены функции для генерации, классификации, извлечения и перевода текста, затем — разработка эмбеддингов, фильтрация, скрытие персональных данных и оценка смысловой близости текстов.

ИИ-функции вместо отдельного конвейера обработки данных

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

В ClickHouse предлагают другой вариант: перенести модель ближе к данным. Поскольку ClickHouse уже умеет хранить информация и функционировать с векторами, цельный цикл для задач с генерацией с дополнением контекста (RAG) можно выполнять в одной системе — без отдельной векторной базы и дополнительных слоёв оркестрации.

Например, классификацию текста теперь можно выполнить обычным SQL-запросом:

SELECT aiClassify( 'I love this product!', ['positive', 'negative', 'neutral']
);

В ответ ClickHouse вернёт одну из заданных категорий:

positive

Какие функции доступны

В версии 26.8 доступны следующие функции для работы с текстом:

  • aiClassify — классифицирует текст по заданным категориям;

  • aiExtract — извлекает структурированные информация из неструктурированного текста;

  • aiGenerate — генерирует текст по заданному запросу;

  • aiTranslate — переводит текст на указанный язык;

  • aiFilter — проверяет текст по условию на естественном языке и возвращает логическое значение;

  • aiRedact — находит и скрывает персональные информация в тексте.

Для работы с векторами добавлены:

  • aiEmbed — создаёт векторное представление текста;

  • aiSimilarity — оценивает смысловое сходство двух текстов.

Функции вызывают программный интерфейс выбранного ИИ-провайдера и возвращают итог в формате, который можно использовать как обычное значение ClickHouse.

Аналитика данных без отдельного кода

В качестве примера авторы использовали набор данных Hacker News с миллионами публикаций и комментариев.

С помощью aiClassify можно автоматически распределить записи по темам:

SELECT title, aiClassify( title, ['space', 'security', 'databases', 'startups', 'programming', 'other'] ) AS topic
FROM hackernews;

Итог можно дальше обрабатывать обычными SQL-операциями: группировать, фильтровать и строить агрегаты.

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

RAG-цикл внутри ClickHouse

Новые функции равным образом позволяют реализовать основные этапы RAG-подхода в одной системе:

  1. Создать эмбеддинги при загрузке данных с помощью aiEmbed().

  2. Хранить тексты и векторные представления рядом.

  3. Индексировать данные для поиска по близости.

  4. Выполнять поиск похожих объектов.

  5. Передавать найденный контекст в aiGenerate() для генерации ответа.

Одновременно aiSimilarity() подходит для более простых задач — например, поиска похожих документов или удаления дублей по смыслу.

Контроль расходов на запросы к моделям

В отличие от обычных функций ClickHouse, вызовы ИИ-моделей имеют стоимость в токенах и зависят от количества обращений к внешнему сервису.

Чтобы избежать неожиданных расходов, авторы добавили ограничения на использование ИИ-функций:

  • максимальное количество входных токенов на запрос;

  • максимальное количество выходных токенов;

  • максимальное количество обращений к api модели.

В частности, можно ограничить число вызовов модели:

SELECT title, aiClassify(title, ['space', 'security', 'databases'])
FROM hackernews
LIMIT 5000
SETTINGS ai_function_max_api_calls_per_query = 100;

Это даёт возможность контролировать расходы при обработке больших объёмов данных.

Что учитывать перед использованием в продакшене

Разработчики отдельно отмечают несколько ограничений:

  • результаты работы модели могут отличаться при повторных запусках одного и того же запроса;

  • стоимость и время выполнения растут вместе с количеством обрабатываемых строк;

  • входные данные для модели требуют осторожного обращения в связи с риска prompt injection;

  • провайдер модели получает данные после завершения TLS-шифрования, следовательно важно учитывать требования безопасности.

Для рабочих сценариев рекомендуется сначала запускать запросы на небольших объёмах данных и применять ограничения по квотам.

Новые ИИ-функции превращают ClickHouse из аналитической базы данных в средство, где часть задач машинной обработки текста и работы с LLM можно выполнять прямо на уровне SQL.

Подборка бесплатных уроков по разработке, работе с ИИ и БД от преподавателей Otus на сентябрь уже доступна в дайджесте.

Читают сейчас

OpenAI привлекла сотни сторонних подрядчиков, которые читают и оценивают реальные переписки пользователей с ChatGPT

1 час назад

OpenAI привлекла сотни сторонних подрядчиков, которые читают и оценивают реальные переписки пользователей с ChatGPT

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

Карманный LoRa-коммуникатор ThinkNode M9 с QWERTY-клавиатурой

1 час назад

Карманный LoRa-коммуникатор ThinkNode M9 с QWERTY-клавиатурой

Компания Elecrow выпустила ThinkNode M9 — компактный коммуникатор для обмена сообщениями без сотовой связи и доступа к интернету. Внешне устройство напоминает старые смартфоны BlackBerry: почти полови

Gartner: ИИ-компаниям пока нельзя доверять серьёзные задачи бизнеса

2 часа назад

Gartner: ИИ-компаниям пока нельзя доверять серьёзные задачи бизнеса

За ошибку искусственного интеллекта отвечать будет не тот, кто его разработал, а тот, кто им пользовался. И это уже не догадка, а прямое предупреждение крупнейшей аналитической фирмы, как сообщает The

«Сбер» показал Time Adapter — надстройку к генеративным моделям для управления динамикой событий и частотой кадров

2 часа назад

«Сбер» показал Time Adapter — надстройку к генеративным моделям для управления динамикой событий и частотой кадров

Команда ИИ-проекта Kandinsky «Сбера» разработала подход под названием Time Adapter. Инициатива предоставляет собой надстройку к генеративным моделям, которая управляет динамикой событий и частотой кад

В Wizards of the Coast подтвердили: сюжет Warlock будет строго линейным

2 часа назад

В Wizards of the Coast подтвердили: сюжет Warlock будет строго линейным

После триумфа Baldur’s Gate 3 кажется, что абсолютная свобода выбора стала обязательным атрибутом любой фэнтезийной RPG. Larian Studios задала свежий «золотой стандарт», к которому сегодня пытаются пр