Логотип AiToolGo

Создание RAG-приложений с использованием GKE и Cloud SQL

Глубокое обсуждение
Технический
 0
 0
 1
Эта статья представляет собой эталонную архитектуру для проектирования инфраструктуры для реализации возможностей Retrieval-Augmented Generation (RAG) с использованием Google Kubernetes Engine (GKE) и Cloud SQL, а также инструментов с открытым исходным кодом, таких как Ray и Hugging Face. В ней описаны компоненты архитектуры, поток данных и практические сценарии использования в различных областях.
  • основные моменты
  • уникальные идеи
  • практическое применение
  • ключевые темы
  • ключевые выводы
  • результаты обучения
  • основные моменты

    • 1
      Комплексный обзор архитектуры для приложений с поддержкой RAG
    • 2
      Практические сценарии использования, демонстрирующие реальные приложения
    • 3
      Интеграция нескольких продуктов Google Cloud и инструментов с открытым исходным кодом
  • уникальные идеи

    • 1
      Подробное объяснение потока данных в подсистеме встраивания
    • 2
      Инновационное использование семантического поиска для улучшения взаимодействия с пользователем
  • практическое применение

    • Статья служит практическим руководством для разработчиков, желающих реализовать возможности RAG в приложениях генеративного ИИ с использованием GKE и Cloud SQL.
  • ключевые темы

    • 1
      Проектирование архитектуры RAG
    • 2
      Интеграция GKE и Cloud SQL
    • 3
      Сценарии использования приложений генеративного ИИ
  • ключевые выводы

    • 1
      Глубокое изучение компонентов архитектуры RAG
    • 2
      Практические примеры из различных отраслей
    • 3
      Руководство по оптимизации производительности и затрат в облачных средах
  • результаты обучения

    • 1
      Понять архитектуру генеративных ИИ-приложений с поддержкой RAG
    • 2
      Научиться интегрировать GKE и Cloud SQL с инструментами с открытым исходным кодом
    • 3
      Изучить практические сценарии использования и лучшие практики для внедрения
примеры
учебные пособия
примеры кода
визуальные материалы
основы
продвинутый контент
практические советы
лучшие практики

Содержание

Введение в RAG с GKE и Cloud SQL

В этой статье рассматривается эталонная архитектура для развертывания приложений Retrieval Augmented Generation (RAG) в Google Cloud с использованием Google Kubernetes Engine (GKE), Cloud SQL и популярных инструментов с открытым исходным кодом. RAG повышает качество выходных данных генеративного ИИ, основывая их на извлеченных знаниях, что делает его идеальным для приложений, требующих точных и контекстно-зависимых ответов. Это руководство предназначено для разработчиков, знакомых с GKE и Cloud SQL, а также имеющих концептуальное понимание ИИ, машинного обучения (ML) и больших языковых моделей (LLM). Мы подробно рассмотрим компоненты архитектуры, поток данных и ключевые соображения при построении надежной и эффективной RAG-системы.

Обзор архитектуры: подсистемы встраивания и обслуживания

Архитектура состоит из двух основных подсистем: подсистемы встраивания (embedding) и подсистемы обслуживания. Подсистема встраивания отвечает за прием данных из различных источников, их преобразование в векторные представления (embeddings) и хранение этих представлений в векторной базе данных. Подсистема обслуживания обрабатывает запросы пользователей, извлекает релевантную информацию из векторной базы данных с помощью семантического поиска и генерирует ответы с использованием LLM. Такое разделение обязанностей обеспечивает эффективную обработку данных и масштабируемое предоставление услуг.

Детальный поток данных в подсистеме встраивания

Данные из внутренних и внешних источников загружаются в Cloud Storage. Эта загрузка запускает событие, которое уведомляет службу встраивания. Затем служба встраивания извлекает данные, предварительно обрабатывает их с помощью Ray Data (что может включать разбиение на фрагменты и форматирование) и генерирует векторные представления с использованием моделей с открытым исходным кодом, таких как intfloat/multilingual-e5-small. Эти представления затем записываются в векторную базу данных Cloud SQL для PostgreSQL, оптимизированную для хранения и извлечения высокоразмерных векторов.

Поток запросов-ответов в подсистеме обслуживания

Пользователь отправляет запрос на естественном языке через веб-интерфейс чата. Сервер фронтенда, работающий на GKE, использует LangChain для преобразования запроса в векторное представление. Это представление используется для выполнения семантического поиска в векторной базе данных, извлекая релевантные данные. Затем исходный запрос объединяется с извлеченными данными для создания контекстуализированного промпта, который отправляется на сервер вывода (inference server). Сервер вывода, работающий на Hugging Face TGI, использует LLM с открытым исходным кодом (например, Mistral-7B-Instruct или Gemma) для генерации ответа. Ответ фильтруется на предмет безопасности с помощью служб Responsible AI (RAI) перед отправкой обратно пользователю.

Ключевые используемые продукты Google Cloud и с открытым исходным кодом

Эта архитектура использует несколько ключевых продуктов Google Cloud и инструментов с открытым исходным кодом. Google Kubernetes Engine (GKE) предоставляет платформу оркестрации контейнеров. Cloud Storage предлагает масштабируемое объектное хранилище. Cloud SQL для PostgreSQL с расширением pgvector служит векторной базой данных. Инструменты с открытым исходным кодом включают Hugging Face Text Generation Inference (TGI) для обслуживания LLM, Ray для распределенных вычислений и LangChain для создания приложений на основе LLM.

Сценарии использования: персонализация, клиническая помощь и юридические исследования

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

Альтернативные варианты проектирования: Vertex AI и AlloyDB

Для полностью управляемого решения векторного поиска рассмотрите возможность использования Vertex AI и Vector Search. В качестве альтернативы вы можете использовать возможности векторного хранения других баз данных Google Cloud, таких как AlloyDB для PostgreSQL. Эти альтернативы предлагают различные компромиссы с точки зрения накладных расходов на управление и производительности.

Соображения по безопасности, конфиденциальности и соответствию требованиям

Безопасность имеет первостепенное значение. Используйте встроенные функции безопасности GKE Autopilot. Внедрите Identity-Aware Proxy (IAP) для контроля доступа. Шифруйте данные при хранении и передаче с помощью Cloud KMS. Для Cloud SQL обеспечьте безопасные соединения, используя SSL/TLS или прокси-сервер Cloud SQL Auth. Используйте Sensitive Data Protection для идентификации и деидентификации конфиденциальных данных в Cloud Storage. Используйте VPC Service Controls для предотвращения утечки данных. Обеспечьте соответствие требованиям к месту хранения данных, указав соответствующий регион для хранения данных.

Проектирование надежности и высокой доступности

Обеспечьте высокую доступность, используя региональные кластеры GKE и настраивая экземпляры Cloud SQL с высокой доступностью. Используйте региональные или мультитегиональные варианты хранения Cloud Storage для избыточности данных. Рассмотрите возможность использования зарезервированной мощности для ресурсов GPU для обеспечения доступности во время событий автомасштабирования.

Стратегии оптимизации затрат

Оптимизируйте затраты, используя эффективность GKE Autopilot. Рассмотрите возможность использования скидок за зарезервированное использование (Committed Use Discounts) для предсказуемых рабочих нагрузок. Используйте Spot VMs для узлов GKE, чтобы снизить затраты на вычисления. Для Cloud SQL используйте автономные экземпляры, если высокая доступность не требуется. Используйте аналитику затрат Cloud SQL для выявления избыточно выделенных экземпляров. Выберите соответствующий класс Cloud Storage в зависимости от частоты доступа к данным и требований к их хранению.

Настройка и оптимизация производительности

Выберите соответствующую категорию вычислений для подов GKE в зависимости от требований к производительности. Используйте типы машин с GPU для серверов вывода и служб встраивания. Оптимизируйте производительность Cloud SQL, выделяя достаточный объем ЦП и памяти. Используйте индексы IVFFlat или HNSW для более быстрого приближенного поиска ближайших соседей (ANN) по векторам. Используйте инструмент Query Insights Cloud SQL для выявления и устранения узких мест в производительности. Для загрузки больших файлов в Cloud Storage рассмотрите возможность использования параллельной составной загрузки.

Развертывание и следующие шаги

Пример кодовой базы доступен на GitHub для развертывания этой архитектуры. Этот код предназначен для экспериментов, а не для производственного использования. Он подготавливает Cloud SQL, развертывает Ray, JupyterHub и Hugging Face TGI на GKE, а также развертывает пример приложения чат-бота. Не забудьте удалить любые неиспользуемые ресурсы после экспериментов. Продолжите изучение, просмотрев лучшие практики GKE, изучив варианты привязки генеративного ИИ в Google Cloud и изучив архитектуры с использованием Vertex AI и Vector Search или AlloyDB. Обратитесь к фреймворку Well-Architected Framework для ИИ и машинного обучения для получения архитектурных принципов и рекомендаций.

 Оригинальная ссылка: https://cloud.google.com/architecture/rag-capable-gen-ai-app-using-gke?hl=zh-cn

Комментарий(0)

user's avatar

      Похожие учебные материалы

      Связанные инструменты