AiToolGo의 로고

GKE 및 Cloud SQL을 사용한 RAG 애플리케이션 구축

심층 토론
기술적
 0
 0
 1
이 문서는 Google Kubernetes Engine(GKE) 및 Cloud SQL과 Ray 및 Hugging Face와 같은 오픈소스 도구를 사용하여 검색 증강 생성(RAG) 기능을 실행하기 위한 인프라를 설계하기 위한 참조 아키텍처를 제공합니다. 아키텍처의 구성 요소, 데이터 흐름 및 다양한 도메인에서의 실제 사용 사례를 설명합니다.
  • 주요 포인트
  • 독특한 통찰
  • 실용적 응용
  • 핵심 주제
  • 핵심 통찰
  • 학습 성과
  • 주요 포인트

    • 1
      RAG 기반 애플리케이션을 위한 포괄적인 아키텍처 개요
    • 2
      실제 애플리케이션을 보여주는 실용적인 사용 사례
    • 3
      다양한 Google Cloud 및 오픈소스 도구 통합
  • 독특한 통찰

    • 1
      임베딩 하위 시스템의 데이터 흐름에 대한 자세한 설명
    • 2
      사용자 상호 작용 향상을 위한 의미론적 검색의 혁신적인 사용
  • 실용적 응용

    • 이 문서는 GKE 및 Cloud SQL을 사용하여 생성형 AI 애플리케이션에 RAG 기능을 구현하려는 개발자를 위한 실용적인 가이드 역할을 합니다.
  • 핵심 주제

    • 1
      RAG 아키텍처 설계
    • 2
      GKE 및 Cloud SQL 통합
    • 3
      생성형 AI 애플리케이션 사용 사례
  • 핵심 통찰

    • 1
      RAG 아키텍처 구성 요소에 대한 심층 탐구
    • 2
      다양한 산업의 실용적인 예시
    • 3
      클라우드 환경에서 성능 및 비용 최적화에 대한 지침
  • 학습 성과

    • 1
      RAG 기반 생성형 AI 애플리케이션 아키텍처 이해
    • 2
      GKE 및 Cloud SQL을 오픈소스 도구와 통합하는 방법 학습
    • 3
      구현을 위한 실제 사용 사례 및 모범 사례 탐색
예시
튜토리얼
코드 샘플
시각 자료
기초
고급 내용
실용적 팁
모범 사례

GKE 및 Cloud SQL을 사용한 RAG 소개

이 문서는 Google Kubernetes Engine(GKE), Cloud SQL 및 인기 있는 오픈소스 도구를 활용하여 Google Cloud에 검색 증강 생성(RAG) 애플리케이션을 배포하기 위한 참조 아키텍처를 탐구합니다. RAG는 검색된 지식을 기반으로 생성 AI 출력의 품질을 향상시켜 정확하고 맥락 인식 응답이 필요한 애플리케이션에 이상적입니다. 이 가이드는 GKE 및 Cloud SQL에 익숙하고 AI, 머신러닝(ML), 대규모 언어 모델(LLM)에 대한 개념적 이해를 가진 개발자를 대상으로 합니다. 아키텍처의 구성 요소, 데이터 흐름 및 강력하고 효율적인 RAG 시스템 구축을 위한 주요 고려 사항을 자세히 살펴보겠습니다.

아키텍처 개요: 임베딩 및 서비스 하위 시스템

이 아키텍처는 임베딩 하위 시스템과 서비스 하위 시스템의 두 가지 주요 하위 시스템으로 구성됩니다. 임베딩 하위 시스템은 다양한 소스의 데이터를 수집하고, 이를 벡터 임베딩으로 변환하고, 이러한 임베딩을 벡터 데이터베이스에 저장하는 역할을 합니다. 서비스 하위 시스템은 사용자 요청을 처리하고, 의미론적 검색을 사용하여 벡터 데이터베이스에서 관련 정보를 검색하고, LLM을 사용하여 응답을 생성합니다. 이러한 책임 분리는 효율적인 데이터 처리와 확장 가능한 서비스 제공을 가능하게 합니다.

임베딩 하위 시스템의 상세 데이터 흐름

내부 및 외부 소스의 데이터는 Cloud Storage에 업로드됩니다. 이 업로드는 임베딩 서비스에 알림을 트리거하는 이벤트를 발생시킵니다. 그런 다음 임베딩 서비스는 데이터를 검색하고, Ray Data를 사용하여 전처리하고(청킹 및 형식 지정 포함 가능), intfloat/multilingual-e5-small과 같은 오픈소스 모델을 사용하여 벡터 임베딩을 생성합니다. 이러한 임베딩은 고차원 벡터를 저장하고 검색하는 데 최적화된 Cloud SQL for PostgreSQL 벡터 데이터베이스에 기록됩니다.

서비스 하위 시스템의 요청-응답 흐름

사용자는 웹 기반 채팅 인터페이스를 통해 자연어 요청을 제출합니다. GKE에서 실행되는 프런트엔드 서버는 LangChain을 사용하여 요청을 임베딩으로 변환합니다. 이 임베딩은 벡터 데이터베이스에서 의미론적 검색을 수행하여 관련 데이터를 검색하는 데 사용됩니다. 그런 다음 원본 요청과 검색된 데이터를 결합하여 컨텍스트화된 프롬프트를 생성하고, 이를 추론 서버로 보냅니다. Hugging Face TGI를 기반으로 하는 추론 서버는 오픈소스 LLM(예: Mistral-7B-Instruct 또는 Gemma)을 사용하여 응답을 생성합니다. 응답은 Responsible AI(RAI) 서비스를 사용하여 안전성을 필터링한 후 사용자에게 다시 전송됩니다.

사용된 주요 Google Cloud 및 오픈소스 제품

이 아키텍처는 여러 주요 Google Cloud 및 오픈소스 제품을 활용합니다. Google Kubernetes Engine(GKE)은 컨테이너 오케스트레이션 플랫폼을 제공합니다. Cloud Storage는 확장 가능한 객체 스토리지를 제공합니다. pgvector 확장이 추가된 Cloud SQL for PostgreSQL은 벡터 데이터베이스 역할을 합니다. 오픈소스 도구에는 LLM 서빙을 위한 Hugging Face Text Generation Inference(TGI), 분산 컴퓨팅을 위한 Ray, LLM 기반 애플리케이션 구축을 위한 LangChain이 포함됩니다.

사용 사례: 개인화, 임상 지원 및 법률 연구

RAG는 다양한 시나리오에 적용할 수 있습니다. 개인화된 제품 추천의 경우 챗봇이 과거 사용자 데이터를 활용하여 더 관련성 높은 제안을 제공할 수 있습니다. 임상 지원에서 의사는 RAG를 사용하여 환자 기록 및 외부 지식 기반에 액세스하여 진단을 개선할 수 있습니다. 법률 연구에서 변호사는 내부 계약 및 사례 기록의 데이터를 활용하여 규정 및 판례를 신속하게 쿼리할 수 있습니다.

대체 설계 옵션: Vertex AI 및 AlloyDB

완전 관리형 벡터 검색 솔루션의 경우 Vertex AI 및 Vector Search 사용을 고려하십시오. 또는 PostgreSQL용 AlloyDB와 같은 다른 Google Cloud 데이터베이스의 벡터 스토리지 기능을 활용할 수 있습니다. 이러한 대안은 관리 오버헤드 및 성능 측면에서 다른 절충점을 제공합니다.

보안, 개인 정보 보호 및 규정 준수 고려 사항

보안이 가장 중요합니다. 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를 고려하십시오. GKE 노드의 경우 Spot VM을 사용하여 컴퓨팅 비용을 절감하십시오. Cloud SQL의 경우 고가용성이 필요하지 않으면 독립 실행형 인스턴스를 사용하십시오. Cloud SQL의 비용 분석 인사이트를 활용하여 과도하게 프로비저닝된 인스턴스를 식별하십시오. 데이터 액세스 빈도 및 보존 요구 사항에 따라 적절한 Cloud Storage 클래스를 선택하십시오.

성능 조정 및 최적화

성능 요구 사항에 따라 GKE Pod에 적합한 컴퓨팅 범주를 선택하십시오. 추론 서버 및 임베딩 서비스에 GPU 머신 유형을 사용하십시오. 충분한 CPU 및 메모리를 할당하여 Cloud SQL 성능을 최적화하십시오. 더 빠른 근사 최근접 이웃(ANN) 벡터 검색을 위해 IVFFlat 또는 HNSW 인덱스를 사용하십시오. Cloud SQL의 Query Insights 도구를 활용하여 성능 병목 현상을 식별하고 해결하십시오. Cloud Storage에 대용량 파일을 업로드하는 경우 병렬 복합 업로드를 고려하십시오.

배포 및 다음 단계

이 아키텍처를 배포하기 위한 샘플 코드베이스가 GitHub에 있습니다. 이 코드는 프로덕션 용도가 아닌 실험용입니다. Cloud SQL을 프로비저닝하고, Ray, JupyterHub 및 Hugging Face TGI를 GKE에 배포하고, 샘플 챗봇 애플리케이션을 배포합니다. 실험 후 사용하지 않는 리소스는 제거하십시오. GKE 모범 사례를 검토하고, Google Cloud의 생성형 AI 기반 옵션을 조사하고, Vertex AI 및 Vector Search 또는 AlloyDB를 사용하는 아키텍처를 연구하여 더 자세히 알아보십시오. 아키텍처 원칙 및 권장 사항은 AI 및 머신러닝에 대한 Well-Architected Framework를 참조하십시오.

 원본 링크: https://cloud.google.com/architecture/rag-capable-gen-ai-app-using-gke?hl=zh-cn

댓글(0)

user's avatar

      관련 도구