Apache Kafka в качестве критически важной информационной структуры для GenAI
Apache Kafka Критически важная информационная структура для GenAI
Apache Kafka служит тысячам предприятий в качестве критически важной и масштабируемой системы реального времени для инфраструктур машинного обучения. Эволюция Генеративного Искусственного Интеллекта (GenAI) с использованием больших языковых моделей (LLM) таких, как ChatGPT, изменила то, как люди мыслят о интеллектуальном программном обеспечении и автоматизации. В этой статье объясняется связь между потоковой обработкой данных и GenAI, а также показываются огромные возможности и некоторые ранние пользователи GenAI, выходящие за пределы шума.
Генеративный Искусственный Интеллект (GenAI) и Потоковая Обработка Данных
Давайте сначала разберемся в определениях для лучшего понимания используемых терминов.
[Примечание: Этот раздел был сгенерирован моим приложением ChatGPT для iPhone. Я немного сократил и скорректировал его содержание. GenAI идеально подходит для суммирования уже существующего контента, чтобы авторы могли сконцентрироваться на создании нового контента (которого ChatGPT еще не знает).]
Обработка Естественного Языка (NLP)
ChatGPT, Что Такое NLP?
NLP расшифровывается как Обработка Естественного Языка. Это подраздел искусственного интеллекта (AI), который фокусируется на взаимодействии между компьютерами и человеческим языком. NLP позволяет компьютерам понимать, интерпретировать и создавать человеческий язык в значимом и ценном виде.
- 5 примеров использования генеративного искусственного интеллекта, которые компании могут внедрить уже сегодня
- DETR (Трансформеры для обнаружения объектов)
- Большие языковые модели DistilBERT — меньший, быстрый, дешевый и легкий
Обработка Естественного Языка включает в себя ряд задач, включая:
- Разбор и токенизация текста: Разделение текста на отдельные слова или токены.
- Распознавание Именованных Сущностей (NER): Идентификация и классификация именованных сущностей, таких как люди, организации, места и даты в тексте.
- Анализ тональности: Определение тональности или эмоционального оттенка, выраженного в тексте, будь то положительный, отрицательный или нейтральный.
- Машинный перевод: Перевод текста с одного языка на другой.
- Вопросно-ответные системы: Построение систем, которые могут понимать и отвечать на вопросы, заданные на естественном языке.
- Генерация текста: Создание текста, похожего на человеческий, или генерация ответов на запросы.
NLP необходима в таких приложениях, как чатботы, виртуальные ассистенты, машинный перевод, поиск информации, анализ тональности и других.
GenAI = Новое Поколение NLP (И Больше)
ChatGPT, Что Такое Генеративный Искусственный Интеллект?
Генеративный Искусственный Интеллект — это подраздел искусственного интеллекта, который сосредоточен на создании моделей и систем, способных генерировать новый контент, такой как изображения, текст, музыку или даже целые виртуальные миры. Эти модели обучаются на больших наборах данных и учатся распознавать закономерности и структуры, чтобы генерировать новые выводы, подобные тренировочным данным. Вот почему широкоупотребляемым словом стало Large Language Model (LLM).
Генеративный Искусственный Интеллект используется в следующем поколении NLP и использует такие техники, как генеративно-состязательные сети (GAN), вариационные автокодировщики (VAE) и рекуррентные нейронные сети (RNN). Генеративный Искусственный Интеллект имеет применение в различных областях и отраслях, включая искусство, дизайн, развлечения и научные исследования.
Apache Kafka для Потоковой Обработки Данных
ChatGPT, Что Такое Apache Kafka?
Apache Kafka — это открытая распределенная платформа для потоковой обработки данных, ставшая фактическим стандартом для потокового событийного анализа. Она была разработана Apache Software Foundation и широко используется для создания приложений потоковой обработки данных в режиме реального времени и построения архитектур, ориентированных на события. Kafka предоставляет масштабируемую и надежную систему для обработки больших объемов потоковых данных.
Kafka имеет процветающую экосистему с различными инструментами и фреймворками, которые интегрируются с ним, такими как Apache Spark, Apache Flink и другими.
Apache Kafka широко применяется в случаях, требующих потоковой обработки данных в реальном времени, таких как конвейеры данных, источники событий, агрегация журналов, системы передачи сообщений и многое другое.
Почему Apache Kafka и GenAI?
Генеративный Искусственный Интеллект (GenAI) является двигателем следующего поколения NLP, который помогает многим проектам в реальной жизни, таким как автоматизация сервисного стола, взаимодействие с клиентами с помощью чатбота, модерация контента в социальных сетях и многие другие случаи использования.
Apache Kafka стал преобладающим слоем оркестрации в этих платформах машинного обучения для интеграции различных источников данных, обработки в масштабе и вывода моделей в реальном времени.
Стриминг данных с помощью Kafka уже приводит в движение множество инфраструктур и программных продуктов GenAI. Возможны очень разные сценарии:
- Стриминг данных как фабрика данных для всей инфраструктуры машинного обучения
- Оценка моделей с обработкой данных в потоке для производств в реальном времени
- Создание потоковых конвейеров данных с использованием вводного текста или речи
- Воспитание онлайн-обучения больших языковых моделей в реальном времени
Давайте подробнее рассмотрим эти возможности стриминга данных с помощью Kafka и GenAI.
Реальное время в Kafka Data Hub для GenAI и других микросервисов в корпоративной архитектуре
Я уже исследовал в 2017 году (!), как «Как построить и развернуть масштабируемое машинное обучение в продакшн с помощью Apache Kafka». Тогда примеры из реального мира приходили от гигантов технологической отрасли, таких как Uber, Netflix и Paypal.
В настоящее время Apache Kafka является фактическим стандартом для создания масштабируемых и надежных инфраструктур машинного обучения в любом предприятии и отрасли, включая:
- Интеграция данных из различных источников (датчики, журналы, базы данных, сообщений брокеров, API и т. д.) с использованием коннекторов Kafka Connect, полностью управляемых интеграций SaaS или любого типа HTTP REST API или языка программирования.
- Обработка данных на основе потоковой обработки для экономичного потокового ETL, такого как фильтрация, агрегирование и более сложные вычисления во время передвижения данных (чтобы все последующие приложения получали точную информацию)
- Поглощение данных для практического использования данных в режиме близком к реальному времени с различными хранилищами данных, чтобы каждая аналитическая платформа могла использовать свой продукт и инструменты.
Построение масштабируемых и надежных трубопроводов от исходной до конечной точки является актуальной задачей для стриминга данных с помощью Apache Kafka в области искусственного интеллекта и машинного обучения.
Оценка моделей с обработкой данных в потоке для прогнозов в реальном времени любого масштаба
Развертывание аналитической модели в приложении Kafka – это решение для предоставления прогнозов в реальном времени любого масштаба с низкой задержкой. Это одна из самых больших проблем в области искусственного интеллекта, так как ученые по данным в основном фокусируются на исторических данных и пакетном обучении моделей в хранилищах данных.
Однако оценка моделей для прогнозов должна обеспечивать гораздо более высокие SLA относительно масштабируемости, надежности и задержки. Поэтому все больше и больше компаний разделяют обучение модели от оценки модели и развертывают аналитическую модель внутри обработчика потоков, такого как Kafka Streams, KSQL или Apache Flink:
Специализированные модельные серверы обычно поддерживают только пакетную и запросно-ответную модели (например, через HTTP или gRPC). К счастью, многие решения теперь также обеспечивают интеграцию протокола Kafka.
Инструменты разработки для создания конвейеров данных, основанных на Kafka, из входного текста или речи
Практически каждый поставщик программного обеспечения обсуждает GenAI для улучшения своих сред разработки и пользовательских интерфейсов.
Например, GitHub – это платформа и облачная служба для разработки программного обеспечения и контроля версий с использованием Git. Но их последней новацией является «Искусственная интеллектуальная платформа для разработки, масштабирования и доставки безопасного программного обеспечения»: Github CoPilot X. Подобные инструменты предоставляют облачные провайдеры, такие как AWS.
Точно так же посмотрите на любого поставщика данных или инфраструктуры, такого как Databricks или Snowflake. На последних конференциях и анонсах акцент сделан на встраиваемых возможностях вокруг больших языковых моделей и GenAI в их решения.
То же самое верно для многих платформ потоковых данных и облачных сервисов. Инструменты с низким кодом / без кода будут добавлять возможности для генерации конвейеров данных из входного текста. Одним из наиболее простых применений, которые я вижу, является генерация SQL-кода из пользовательского текста.
Например, «Принять данные из таблицы Oracle customer, агрегировать платежи по клиентам и загрузить их в Snowflake». Это может создать SQL-код для технологий потоковой обработки, таких как KSQL или FlinkSQL.
Опыт разработчика, быстрая выход на рынок и поддержка менее технических пользователей являются огромными преимуществами внедрения GenAI в среду разработки Kafka.
Обучение крупных языковых моделей (LLM) в реальном времени
Искусственный интеллект (AI) и машинное обучение (Machine Learning) почти всегда основаны на пакетном типе системы. Обучение модели требует как минимум нескольких часов времени. Это неидеально, так как многие GenAI случаи использования требуют точной и актуальной информации. Представьте себе, что сегодня вы ищете информацию в поисковике, но не можете найти данные за прошедшую неделю. Во многих сценариях использовать такой сервис невозможно!
Точно так же, если я сегодня (июль 2023 года) задам вопрос ChatGPT: “Что такое GenAI?” – я получу следующий ответ:
По состоянию на моё последнее обновление в сентябре 2021 года, нет информации о сущности, называемой “GenAi”. Возможно, что что-то новое появилось с того времени. Могли бы вы уточнить ваш вопрос или предоставить более контекстную информацию для более точного ответа?
Чем быстрее ваша система машинного обучения осуществляет обработку данных для обучения модели, тем лучше. Мой коллега Майкл Дрогалис написал отличный глубокотехнический пост в блоге: «GPT-4 + Streaming Data = Real-Time Generative AI», чтобы более подробно разобраться в этой теме.
Эта архитектура привлекательна, потому что чат-бот всегда имеет самую последнюю информацию в тот момент, когда вы задаёте ему вопрос. Например, если ваш рейс задерживается или меняются данные о вашем терминале, чат-бот будет об этом знать во время вашей сессии общения. Это полностью отличается от текущих подходов, где необходимо перезагружать сессию чата или ждать несколько часов/дней, чтобы получить новые данные.
LLM + Vector Database + Kafka = Генеративный ИИ в реальном времени
Обучение модели в реальном времени до сих пор является новым подходом. Многие алгоритмы машинного обучения до сих пор не готовы к непрерывному обучению модели онлайн. Комбинация Kafka с векторной базой данных позволяет использовать пакетно обученный LLM вместе с обновлениями в реальном времени, подающими актуальную информацию в LLM.
Никто не будет доволен LLM, подобным ChatGPT, через несколько лет, если он будет давать ответы вроде: “У меня нет этой информации, моя модель была обучена неделю назад”. Неважно, выбираете ли вы совершенно новую векторную базу данных, такую как Pinecone, или используете новые возможности векторов установленного вами хранилища Oracle или MongoDB.
Подавайте данные в векторную базу данных в реальном времени с помощью Kafka Connect и комбинируйте с зрелым LLM, чтобы создать Генеративный ИИ в реальном времени с контекстно-специфическими рекомендациями.
Кейс-стади реального мира для Kafka и Генеративного ИИ
Этот раздел рассматривает, как компании из различных отраслей, такие как автомобильщик BMW, онлайн-путешествия и бронирования Expedia и приложение для знакомств Tinder, используют комбинацию потоков данных с GenAI для надежного общения в режиме реального времени, обработки естественного языка и чат-ботов с использованием Kafka.
Но технологии, такие как ChatGPT, делают внедрение GenAI в проекты реального мира намного проще и быстрее, с меньшими затратами и рисками. Рассмотрим несколько примеров успешных реализаций интеграции NLP и GenAI в предприятиях, использующих потоковую передачу данных.
Отказ от ответственности: Поскольку я хочу показать примеры реального мира вместо видения будущего, я показываю несколько примеров, развернутых в продакшн в последние несколько лет. Аналитические модели в этих примерах не используют GenAI, LLM или ChatGPT, какие мы знаем из прессы сегодня. Но принципы абсолютно те же. Единственное отличие в том, что вы могли бы использовать передовую модель, такую как ChatGPT, с гораздо лучшими и контекстно-специфическими ответами уже сегодня.
Expedia: Платформа разговоров для лучшего клиентского опыта
Expedia – ведущий онлайн-сервис по путешествиям и бронированию. У них есть множество случаев использования машинного обучения. Один из моих любимых примеров – это их платформа разговоров, построенная на Kafka и Confluent Cloud для предоставления высокоэластичного облачного приложения.
Цель платформы разговоров Expedia была проста: Позволить миллионам путешественников иметь разговоры на естественном языке с автоматическим агентом через текст, Facebook или канал на их выбор. Позволить им бронировать поездки, вносить изменения или отмены и задавать вопросы:
- “Сколько времени между моими рейсами?”
- “Есть ли в моем отеле бассейн?”
- “Сколько мне придется заплатить за перевозку своего гольф-комплекта?”
Затем возьмите всю известную информацию о клиенте по всем брендам Expedia и примените модели машинного обучения, чтобы немедленно предоставить клиентам то, что они ищут в режиме реального времени и автоматически, будь то простой ответ или сложный новый маршрут.
Мгновенная оркестрация в режиме реального времени
Такая платформа не место пакетным заданиям, фоновой обработке или оффлайн API. Чтобы быстро принимать решения, учитывающие контекстную информацию, платформе требуются данные практически в реальном времени, и она нуждается в них от широкого спектра услуг и систем. Для удовлетворения этих потребностей платформа Conversations построена на основе центральной нервной системы, основанной на Confluent Cloud и Apache Kafka. Kafka позволяет организовывать данные из слабо связанных систем, обогащать данные по мере их перемещения между ними, так что к моменту достижения пункта назначения они готовы к действиям и отображают агрегированные данные для аналитики и отчетности.
Expedia построила эту платформу с нуля до запуска в продакшн за четыре месяца. В этом заключается огромное преимущество использования полностью управляемой серверной платформы потоковых событий в качестве основы. Команда проекта может сосредоточиться на бизнес-логике.
Пандемия Covid доказала целесообразность эластичной платформы: Компании столкнулись с потоком вопросов, отменами и перебронированиями со стороны клиентов. Во время этого события, произошедшего раз в жизни, платформа Conversations успешно справлялась с вызовом, автомасштабировалась по мере необходимости и значительно снижала нагрузку на живых агентов.
Миграция Expedia с MQ на Kafka в качестве основы для машинного обучения в режиме реального времени и чатботов
В рамках своей платформы разговоров Expedia нужно было модернизировать свою ИТ-инфраструктуру, как объяснил Директор технологий Expedia Group Рави Ванкамамиди в ключевом докладе на саммите Kafka.
Старый устаревший сервис чатботов компании Expedia полагался на устаревшую систему обмена сообщениями. Этот сервис представлял собой доску вопросов и ответов с очень ограниченным набором возможностей для сценариев бронирования. Этот сервис мог обрабатывать разговоры между двумя сторонами. Он не мог масштабироваться для объединения всех различных систем в одну архитектуру, чтобы создать мощный чатбот, который будет полезен при общении с клиентами.
Expedia нужен сервис, который находится ближе к помощи в путешествии. Он должен обрабатывать многопользовательские, многоканальные разговоры с учетом контекста. Поэтому требуются такие функции, как обработка естественного языка, перевод и аналитика в реальном времени. Полное обслуживание должно масштабироваться для нескольких брендов. Поэтому требуется быстрая и высокомасштабируемая платформа с гарантиями порядка, семантикой в точности один раз (EOS) и обработкой данных в реальном времени.
Платформа потоковых событий, основанная на Kafka от Confluent, была самым лучшим выбором и удовлетворяла всем требованиям. Новая платформа разговоров удвоила показатель Net Promoter Score (NPS) через год после запуска. Новая платформа быстро продемонстрировала бизнес-ценность.
BMW: GenAI для интеллектуального обработки контрактов, помощи на рабочем месте и машинного перевода
Автомобильная компания BMW представила инновационные NLP сервисы на саммите Kafka в 2019 году. Неудивительно, что автопроизводитель имеет различные сценарии применения NLP. Среди них есть цифровая обработка контрактов, помощь на рабочем месте, машинный перевод и общение с клиентами. Последнее включает несколько случаев применения для разговорных ИИ:
- Автоматизация службы поддержки
- Анализ речи звонков в центре взаимодействия с клиентами для повышения качества
- Самообслуживание с использованием умных баз знаний
- Поддержка агентов
- Чатботы
Текстовые и речевые данные структурируются, обогащаются, контекстуализируются, суммируются и переводятся для создания приложений для принятия решений в режиме реального времени. Kafka является важным компонентом архитектуры машинного обучения и NLP BMW. В режиме реального времени интеграция и корреляция данных обеспечивают интерактивное и взаимодействующее потребление и использование данных:
BMW объяснила основные преимущества использования Kafka и его библиотеки обработки потоков Kafka Streams в качестве платформы реального времени для интеграции и оркестрации:
- Гибкая интеграция: Поддержка нескольких интерфейсов для различных сценариев развертывания, включая различные технологии машинного обучения, языки программирования и облачных провайдеров
- Модульные конвейеры с покрытием от начала до конца: Сервисы можно соединять, чтобы предоставлять полноценные приложения NLP.
- Конфигурируемость: Высокая гибкость для каждого сценария развертывания
Tinder: Интеллектуальная модерация контента, подбор и рекомендации с помощью Kafka и GenAI
Приложение для знакомств Tinder – отличный пример, где я могу придумать десятки применений для NLP. На прошлом саммите Kafka компания Tinder рассказывала о своей компьютерной платформе с поддержкой Kafka для машинного обучения.
Tinder является активным пользователем Kafka и его экосистемы для разных задач, включая модерацию контента, подбор, рекомендации, напоминания и активацию пользователей. Они использовали Kafka Streams как нативный для Kafka движок обработки потоков для обработки метаданных и корреляции в режиме реального времени и в масштабе:
Важной задачей для любой платформы знакомств или социальной сети является модерация контента для обнаружения фейков, фильтрации сексуального контента и других неприемлемых вещей. Модерация контента объединяет в себе NLP и обработку текстов (например, для сообщений в чате), обработку изображений (например, загрузку селфи) или обрабатывает метаданные с помощью Kafka и сохраняет связанный контент в хранилище данных. В обоих случаях используется глубокое обучение для обработки большого объема текста и изображений. Вот как выглядит модерация контента в архитектуре Kafka в Tinder:
Существует множество способов обработки текста, изображений и видео с помощью экосистемы Kafka.
Чат-боты также могут сыграть ключевую роль в “обратном направлении”. Все больше и больше приложений для знакомств (а также других социальных сетей) борются со спамом, мошенничеством и автоматическими чат-ботами. Подобно созданию чат-бота, система обнаружения чат-бота может анализировать потоки данных для блокировки чат-бота в приложении для знакомств.
Kafka как реальное временное хранилище данных для будущих инициатив GenAI
Данные в реальном времени опережают медленные данные. Generative AI приносит пользу только в том случае, если предоставляет точную и актуальную информацию. Технологии потоковой передачи данных, такие как Apache Kafka и Apache Flink, позволяют создавать надежную, масштабируемую инфраструктуру реального времени для GenAI. Кроме того, основанная на событиях архитектура предприятия гарантирует согласованность данных между системами реального времени и не реального времени (почти в реальном времени, пакетная передача, запрос-ответ).
Ранние пользователи, такие как крупные автопроизводители, Expedia и Tinder, доказали, что integracия Generative AI в архитектуру Kafka добавляет огромную бизнес-ценность. Появление моделей искусственного интеллекта с использованием ChatGPT и других делает эту область еще более привлекательной в любой отрасли.
Как построить разговорный искусственный интеллект, чат-боты и другие приложения GenAI, используя Apache Kafka? Какие технологии и архитектуры вы используете? Входите в мою сеть LinkedIn и обсудим это! Будьте в курсе новых статей блога, подписавшись на мой информационный бюллетень.