GKE를 사용하는 RAG 지원 생성형 AI 애플리케이션을 위한 인프라

Last reviewed 2024-04-02 UTC

이 문서에서는 Google Kubernetes Engine(GKE), Cloud SQL, 오픈소스 도구(Ray, Hugging Face, LangChain 등)를 사용하여 검색 증강 생성(RAG)을 지원하는 생성형 AI 애플리케이션을 실행하기 위한 인프라 설계에 사용할 수 있는 참조 아키텍처를 제공합니다. 이 참조 아키텍처를 실험하는 데 도움이 되도록 샘플 애플리케이션과 Terraform 구성을 GitHub에서 제공합니다.

이 문서는 오픈소스 도구와 모델을 사용하여 RAG 지원 생성형 AI 애플리케이션을 빠르게 빌드하고 배포하기를 원하는 개발자를 대상으로 합니다. 여기에서는 GKE 및 Cloud SQL 사용 경험이 있고 AI, 머신러닝(ML), 대규모 언어 모델(LLM)에 대한 개념을 이해하고 있다고 가정합니다. 이 문서에서는 생성형 AI 애플리케이션의 설계 및 개발 방법에 대한 안내를 제공하지 않습니다.

아키텍처

다음 다이어그램은 Google Cloud에서 RAG 지원 생성형 AI 애플리케이션의 아키텍처를 간략하게 보여줍니다.

Google Cloud에서 RAG 지원 생성형 AI 애플리케이션 아키텍처 개요

아키텍처에는 서빙 하위 시스템과 임베딩 하위 시스템이 포함됩니다.

  • 서빙 하위 시스템은 애플리케이션과 사용자 사이의 요청-대답 흐름을 처리합니다. 이 하위 시스템에는 프런트엔드 서버, 추론 서버, 책임감 있는 AI(RAI) 서비스가 포함됩니다. 서빙 하위 시스템은 벡터 데이터베이스를 통해 임베딩 하위 시스템과 상호작용합니다.
  • 임베딩 하위 시스템은 아키텍처에서 RAG 기능을 사용 설정합니다. 이 하위 시스템은 다음을 수행합니다.
    • Google Cloud, 온프레미스, 기타 클라우드 플랫폼의 데이터 소스에서 데이터를 수집합니다.
    • 수집된 데이터를 벡터 임베딩으로 변환합니다.
    • 임베딩을 벡터 데이터베이스에 저장합니다.

다음 다이어그램은 아키텍처를 세부적으로 보여줍니다.

Google Cloud에서 RAG 지원 생성형 AI의 세부 아키텍처

앞의 다이어그램에 표시된 것처럼 프런트엔드 서버, 추론 서버, 임베딩 서비스는 Autopilot 모드로 리전 GKE 클러스터에 배포됩니다. RAG의 데이터는 Cloud Storage 버킷을 통해 수집됩니다. 이 아키텍처는 pgvector 확장 프로그램에서 PostgreSQL용 Cloud SQL 인스턴스를 벡터 데이터베이스로 사용하여 임베딩을 저장하고 시맨틱 검색을 수행합니다. 벡터 데이터베이스는 고차원 벡터를 효율적으로 저장하고 검색하도록 설계되었습니다.

다음 섹션에서는 아키텍처의 각 하위 시스템 내에 있는 구성요소 및 데이터 흐름을 설명합니다.

임베딩 하위 시스템

다음은 임베딩 하위 시스템의 데이터 흐름입니다.

  1. 외부 및 내부 소스의 데이터가 인간 사용자에 의해 또는 프로그래매틱 방식으로 Cloud Storage 버킷에 업로드됩니다. 업로드된 데이터는 파일, 데이터베이스 또는 스트리밍 데이터에 있을 수 있습니다.
  2. (아키텍처 다이어그램에는 표시되지 않습니다.) 데이터 업로드 활동이 Pub/Sub와 같은 메시지 서비스에 게시되는 이벤트를 트리거합니다. 메시지 서비스가 임베딩 서비스에 알림을 보냅니다.
  3. 임베딩 서비스가 데이터 업로드 이벤트 알림을 수신하면 다음을 수행합니다.
    1. Cloud Storage FUSE CSI 드라이버를 통해 Cloud Storage 버킷에서 데이터를 검색합니다.
    2. 업로드된 데이터를 읽고 Ray Data를 사용하여 사전 처리합니다. 사전 처리에는 데이터를 청킹하고 임베딩 생성에 적합한 형식으로 변환하는 것이 포함될 수 있습니다.
    3. Ray 작업을 실행하여 동일한 클러스터에 배포된 intfloat/multilingual-e5-small과 같은 오픈소스 모델을 사용하여 사전 처리된 데이터의 벡터화된 임베딩을 생성합니다.
    4. 벡터화된 임베딩을 PostgreSQL용 Cloud SQL 벡터 데이터베이스에 작성합니다.

다음 섹션에 설명된 대로 서빙 하위 시스템은 사용자 요청을 처리할 때 벡터 데이터베이스의 임베딩을 사용하여 관련 도메인 특정 데이터를 검색합니다.

서빙 하위 시스템

다음은 서빙 하위 시스템의 요청-대답 흐름입니다.

  1. 사용자가 웹 기반 채팅 인터페이스를 통해 프런트엔드 서버에 자연어 요청을 제출합니다. 프런트엔드 서버가 GKE에서 실행됩니다.
  2. 프런트엔드 서버가 다음을 수행하는 LangChain 프로세스를 실행합니다.
    1. 임베딩 서비스가 사용하는 것과 동일한 모델 및 매개변수를 사용하여 자연어 요청을 임베딩으로 변환합니다.
    2. 벡터 데이터베이스에서 임베딩의 시맨틱 검색을 수행하여 관련 그라운딩 데이터를 검색합니다. 시맨틱 검색은 텍스트 콘텐츠 대신 프롬프트의 인텐트를 기반으로 임베딩을 찾는 데 도움이 됩니다.
    3. 원래 요청과 검색된 그라운딩 데이터를 결합하여 컨텍스트와 연결된 프롬프트를 구성합니다.
    4. GKE에서 실행되는 추론 서버로 컨텍스트와 연결된 프롬프트를 보냅니다.
  3. 추론 서버는 Hugging Face TGI 서빙 프레임워크를 사용하여 Mistral-7B-Instruct와 같은 오픈소스 LLM 또는 Gemma 개방형 모델을 서빙합니다.
  4. LLM은 프롬프트에 대한 대답을 생성하고 추론 서버는 대답을 프런트엔드 서버로 전송합니다.

    Cloud Logging에서 요청-대답 활동의 로그를 저장하고 볼 수 있으며 Cloud Monitoring을 사용하여 로그 기반 모니터링을 설정할 수 있습니다. 생성된 대답을 BigQuery에 로드하여 오프라인 분석을 수행할 수도 있습니다.

  5. 프런트엔드 서버는 RAI 서비스를 호출하여 필수 안전 필터를 대답에 적용합니다. Sensitive Data ProtectionCloud Natural Language API와 같은 도구를 사용하여 대답의 민감한 콘텐츠를 검색, 필터링, 분류, 익명화를 수행할 수 있습니다.

  6. 프런트엔드 서버가 필터링된 대답을 사용자에게 보냅니다.

사용 제품

다음은 앞의 아키텍처에서 사용하는 Google Cloud 및 오픈소스 제품에 대한 요약 설명입니다.

Google Cloud 제품

  • Google Kubernetes Engine(GKE): Google 인프라를 사용하여 컨테이너화된 애플리케이션을 대규모로 배포 및 운영하는 데 사용할 수 있는 Kubernetes 서비스입니다.
  • Cloud Storage: 다양한 데이터 유형에 적합한 저비용, 무제한 객체 저장소입니다. Google Cloud 내부 및 외부에서 데이터에 액세스할 수 있고 중복성을 위해 여러 위치에 복제됩니다.
  • Cloud SQL: Google Cloud에서 MySQL, PostgreSQL, SQL Server 데이터베이스를 프로비저닝, 운영, 관리할 수 있는 완전 관리형 관계형 데이터베이스 서비스입니다.

오픈소스 제품

  • Hugging Face TGI(Text Generation Inference): LLM을 배포하고 서빙하기 위한 툴킷입니다.
  • Ray: AI 및 Python 워크로드를 확장하는 데 도움이 되는 오픈소스 통합 컴퓨팅 프레임워크입니다.
  • LangChain: LLM으로 구동되는 애플리케이션을 개발하고 배포하기 위한 프레임워크입니다.

사용 사례

RAG는 LLM에서 생성되는 출력의 품질을 개선하는 데 효과적인 기법입니다. 이 섹션에서는 RAG 지원 생성형 AI 애플리케이션을 사용할 수 있는 사용 사례에 대한 예시를 제공합니다.

맞춤화된 제품 추천

한 온라인 쇼핑 사이트에서 LLM 기반 챗봇을 사용하여 고객의 제품 검색을 도와주거나 쇼핑 관련 도움을 제공하려고 합니다. 사용자의 질문은 사용자의 구매 행동 및 웹 사이트 상호작용 패턴에 대한 과거 데이터를 사용하여 증강될 수 있습니다. 이러한 데이터에는 구조화되지 않은 데이터 스토어에 저장된 사용자 리뷰와 피드백이 포함되거나 웹 분석 데이터 웨어하우스에 저장된 검색 관련 측정항목이 포함될 수 있습니다. 그런 다음 LLM이 증강된 질문을 처리해서 사용자에게 더 매력적이고 설득력 있게 보이는 맞춤화된 응답을 생성합니다.

임상 지원 시스템

병원의 의사는 적절한 치료와 처방을 결정하기 위해 환자의 의료 상태를 빠르게 분석하고 진단해야 합니다. Med-PaLM과 같은 의료용 LLM을 사용하는 생성형 AI 애플리케이션을 활용해서 임상 진단 과정 중 의사를 지원할 수 있습니다. 애플리케이션이 생성하는 응답은 병원의 전자 건강 기록(EHR) 데이터베이스 또는 PubMed와 같은 외부 기술 자료의 데이터와 함께 의사의 프롬프트를 컨텍스트에 맞게 조정함으로써 과거 환자 기록에서 근거를 확보할 수 있습니다.

생성형 AI 기반의 법률 조사를 통해 변호사는 대량의 법령과 판례를 빠르게 검색하여 관련 법적 선례를 확인하거나 복잡한 법률 개념을 요약할 수 있습니다. 이러한 조사의 결과는 법률 회사의 독점 계약 모음, 과거 법률 소통 자료 및 내부 사건 기록에서 검색된 데이터로 변호사의 프롬프트를 증강함으로써 향상될 수 있습니다. 이러한 설계 접근 방식은 생성된 응답이 변호사의 전문 법률 도메인과 관련이 있도록 보장합니다.

설계 고려사항

이 섹션에서는 보안 및 규정 준수, 안정성, 비용, 성능에 대한 특정 요구사항을 충족하는 GKE 호스팅 RAG 지원 생성형 AI 아키텍처를 개발하고 실행하는 데 도움이 되는 안내를 제공합니다. 이 섹션의 안내는 일부일 뿐 모든 내용을 포함하지는 않습니다. 애플리케이션의 특정 요구사항과 사용하는 Google Cloud 제품 및 기능에 따라 추가적인 설계 요소와 장단점을 고려해야 할 수 있습니다.

Hugging Face TGI와 같은 이 참조 아키텍처의 오픈소스 도구와 관련된 설계 안내는 해당 도구의 문서를 참조하세요.

보안, 개인정보 보호, 규정 준수

이 섹션에서는 Google Cloud에서 보안, 개인 정보 보호, 규정 준수 요구사항을 충족하는 RAG 지원 생성형 AI 애플리케이션을 설계 및 빌드할 때 고려해야 하는 요소를 설명합니다.

제품 설계 고려사항
GKE

Autopilot 모드의 작업에서는 GKE가 클러스터를 사전 구성하고 보안 권장사항에 따라 노드를 관리하므로 워크로드별 보안에 집중할 수 있습니다. 자세한 내용은 다음을 참조하세요.

GKE에서 실행되는 애플리케이션의 액세스 제어를 강화하려면 IAP(Identity-Aware Proxy)를 사용하면 됩니다. IAP는 GKE 인그레스 리소스와 통합되며 올바른 Identity and Access Management(IAM) 역할을 가진 인증된 사용자만 애플리케이션에 액세스할 수 있도록 합니다. 자세한 내용은 GKE에 IAP 사용 설정을 참조하세요.

기본적으로 GKE의 저장 데이터전송 중 데이터는 Google 관리 암호화 키를 사용하여 암호화됩니다. 민감한 정보에 대한 추가 보안 레이어로서 Cloud KMS에서 사용자가 소유하고 관리하는 키를 사용하여 애플리케이션 레이어의 데이터를 암호화할 수 있습니다. 자세한 내용은 애플리케이션 레이어의 보안 비밀 암호화를 참조하세요.

표준 GKE 클러스터를 사용하는 경우 다음과 같은 추가 데이터 암호화 기능을 사용할 수 있습니다.

Cloud SQL

아키텍처의 Cloud SQL 인스턴스는 공개 인터넷에서 액세스할 필요가 없습니다. Cloud SQL 인스턴스에 대한 외부 액세스가 필요한 경우 SSL/TLS 또는 Cloud SQL 인증 프록시 커넥터를 사용하여 외부 연결을 암호화할 수 있습니다. 인증 프록시 커넥터는 IAM을 사용하여 연결 승인을 제공합니다. 커넥터는 256비트 AES 암호화를 지원하는 TLS 1.3 연결을 사용해서 클라이언트 및 서버 ID를 확인하고 데이터 트래픽을 암호화합니다. 자바, Python, Go 또는 Node.js를 사용하여 만든 연결의 경우 인증 프록시 커넥터 대신 적절한 언어 커넥터를 사용합니다.

기본적으로 Cloud SQL은 Google 관리 데이터 암호화 키(DEK)와 키 암호화 키(KEK)를 사용하여 저장 데이터를 암호화합니다. 사용자가 제어하고 관리하는 KEK를 사용해야 하는 경우 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다.

Cloud SQL Admin API에 대한 무단 액세스를 방지하려면 VPC 서비스 제어를 사용하여 서비스 경계를 만들면 됩니다.

데이터 상주 요구사항을 충족하도록 Cloud SQL을 구성하는 방법에 대한 자세한 내용은 데이터 상주 개요를 참조하세요.

Cloud Storage

기본적으로 Cloud Storage에 저장되는 데이터는 Google 관리 암호화 키를 사용하여 암호화됩니다. 필요한 경우 CMEKㄹ를 사용하거나 고객 제공 암호화 키(CSEK)와 같은 외부 관리 방법을 사용하여 관리하는 자체 키를 사용할 수 있습니다. 자세한 내용은 데이터 암호화 옵션을 참조하세요.

Cloud Storage는 버킷과 객체에 대한 사용자 액세스를 제어하기 위해 IAM 및 액세스 제어 목록(ACL)의 두 가지 방법을 지원합니다. 대부분의 경우 버킷 및 프로젝트 수준에서 권한을 부여할 수 있는 IAM을 사용하는 것이 좋습니다. 자세한 내용은 액세스 제어 개요를 참조하세요.

Cloud Storage를 통해 데이터 수집 하위 시스템에 로드하는 데이터에는 민감한 정보가 포함될 수 있습니다. 이러한 데이터를 보호하기 위해서는 Sensitive Data Protection을 사용하여 데이터를 검색, 분류, 익명화할 수 있습니다. 자세한 내용은 Cloud Storage에 Sensitive Data Protection 사용을 참조하세요.

Cloud Storage에서 데이터 무단 반출 위험을 완화하기 위해 VPC 서비스 제어를 사용하여 서비스 경계를 만들 수 있습니다.

Cloud Storage는 데이터 상주 요구사항을 충족하도록 도와줍니다. 데이터는 사용자가 지정한 리전 내에 저장 또는 복제됩니다.

이 아키텍처의 모든 제품

관리자 활동 감사 로그는 이 참조 아키텍처에 사용되는 모든 Google Cloud 서비스에 대해 기본적으로 사용 설정됩니다. Cloud Logging을 통해 로그에 액세스하고 로그를 사용하여 Google Cloud 리소스의 구성 또는 메타데이터를 수정하는 API 호출 또는 기타 작업을 모니터링할 수 있습니다.

이 아키텍처의 모든 Google Cloud 서비스에 대한 데이터 액세스 감사 로그도 기본적으로 사용 설정됩니다. 이러한 로그를 사용하여 다음을 모니터링할 수 있습니다.

  • 리소스의 구성 또는 메타데이터를 읽는 API 호출
  • 사용자가 제공한 리소스 데이터의 생성, 수정 또는 읽기에 대한 사용자 요청

AI 애플리케이션에 고려할 보안 원칙에 대한 일반적인 안내는 Google 안전한 AI 프레임워크 소개를 참조하세요.

안정성

이 섹션에서는 Google Cloud에서 RAG 지원 생성형 AI 애플리케이션의 신뢰할 수 있는 인프라를 빌드하고 운영할 때 고려해야 하는 디자인 요소에 대해 설명합니다.

제품 설계 고려사항
GKE

이 아키텍처에 사용되는 Autopilot 모드의 작업에서는 GKE가 다음과 같은 안정성 기능을 기본 제공합니다.

  • 워크로드에서 리전별 GKE 클러스터를 사용합니다. 제어 영역과 워커 노드가 리전 내 3개 영역에 분산됩니다. 영역 중단이 발생하더라도 워크로드가 운영됩니다. 리전 GKE 클러스터는 영역 클러스터보다 업타임 SLA가 높습니다.
  • 노드를 만들거나 노드 풀을 관리할 필요가 없습니다. GKE는 노드 풀을 자동으로 만들고 워크로드 요구사항에 따라 자동으로 확장합니다.

GKE 클러스터를 자동 확장하는 데 필요할 때 충분한 GPU 용량을 사용할 수 있도록 하려면 예약을 만들고 사용하면 됩니다. 예약은 지정된 리소스에 대해 특정 영역에서 보장된 용량을 제공합니다. 예약은 프로젝트에 따라 다르게 지정할 수 있고 여러 프로젝트 간에 공유할 수 있습니다. 리소스가 프로비저닝되거나 사용되지 않더라도 예약된 리소스에 대한 요금이 발생합니다. 자세한 내용은 예약된 영역별 리소스 사용을 참조하세요.

Cloud SQL

데이터베이스 장애 및 영역 중단이 발생해도 벡터 데이터베이스가 운영되도록 하려면 HA 구성의 Cloud SQL 인스턴스를 사용합니다. 기본 데이터베이스 장애 또는 영역 서비스 중단이 발생하면 Cloud SQL이 자동으로 다른 영역의 대기 데이터베이스로 장애 조치합니다. 데이터베이스 엔드포인트의 IP 주소를 변경할 필요가 없습니다.

Cloud SQL 인스턴스에 SLA가 적용되는지 확인하려면 권장되는 운영 가이드라인을 따르세요. 예를 들어 CPU 및 메모리 크기를 워크로드에 맞게 조정하고 스토리지 용량 자동 증가를 사용 설정합니다. 자세한 내용은 운영 가이드라인을 참조하세요.

Cloud Storage 리전, 이중 리전, 멀티 리전의 세 가지 위치 유형 중 하나로 Cloud Storage 버킷을 만들 수 있습니다. 리전 버킷에 저장된 데이터는 리전 내 여러 영역에 동기식으로 복제됩니다. 더 높은 가용성을 위해서는 데이터가 리전 간에 동기식으로 복제되는 이중 리전 또는 멀티 리전 버킷을 사용하면 됩니다.

비용 최적화

이 섹션에서는 Google Cloud에서 RAG 지원 생성형 AI 애플리케이션을 설정하고 운영하는 비용을 최적화할 수 있게 도와줍니다.

제품 설계 고려사항
GKE

Autopilot 모드에서 GKE는 워크로드 요구사항에 따라 클러스터 인프라 효율성을 최적화합니다. 비용 제어를 위해 리소스 사용률을 지속적으로 모니터링하거나 용량을 관리할 필요가 없습니다.

GKE Autopilot 클러스터의 CPU, 메모리, 임시 스토리지 사용량을 예측할 수 있으면 약정 사용 할인을 통해 비용을 절약할 수 있습니다. 자세한 내용은 GKE 약정 사용 할인을 참조하세요.

애플리케이션 실행 비용을 줄이기 위해 GKE 노드에 스팟 VM을 사용할 수 있습니다. 스팟 VM은 표준 VM보다 가격이 저렴하지만 가용성을 보장하지 않습니다. 스팟 VM을 사용하는 노드의 이점, GKE에서 작동하는 방식, 이러한 노드에서 워크로드를 예약하는 방법에 대한 자세한 내용은 스팟 VM을 참조하세요.

자세한 비용 최적화 안내는 GKE에서 비용에 최적화된 Kubernetes 애플리케이션을 실행하기 위한 권장사항을 참조하세요.

Cloud SQL

고가용성(HA) 구성은 영역 또는 인스턴스를 사용할 수 없을 때 Cloud SQL 데이터베이스의 다운타임을 줄이는 데 도움이 됩니다. 하지만 HA 구성의 인스턴스는 비용이 독립형 인스턴스보다 높습니다. 벡터 데이터베이스에 HA가 필요하지 않은 경우 영역 중단 시 계속 실행되지 않는 독립형 인스턴스를 사용하여 비용을 줄일 수 있습니다.

Active Assist에서 제공하는 Cloud SQL 비용 통계와 추천을 사용하여 Cloud SQL 인스턴스가 초과 프로비저닝되었는지 감지하고 결제를 최적화할 수 있습니다. 자세한 내용은 초과 프로비저닝된 Cloud SQL 인스턴스 줄이기를 참조하세요.

Cloud SQL 인스턴스의 CPU 및 메모리 요구사항을 예측할 수 있으면 약정 사용 할인을 통해 비용을 절약할 수 있습니다. 자세한 내용은 Cloud SQL 약정 사용 할인을 참조하세요.

Cloud Storage 데이터 수집 하위 시스템에 데이터를 로드하는 데 사용하는 Cloud Storage 버킷의 경우 적절한 스토리지 클래스를 선택합니다. 스토리지 클래스를 선택할 때는 워크로드의 데이터 보관 및 액세스 빈도 요구사항을 고려해야 합니다. 예를 들어 스토리지 비용을 관리하려면 Standard 클래스를 선택하고 객체 수명 주기 관리를 사용하면 됩니다. 이렇게 하면 설정한 조건에 따라 객체를 더 저렴한 스토리지 클래스로 자동 다운그레이드하거나 객체를 삭제할 수 있습니다.

Google Cloud 리소스 비용을 추정하려면 Google Cloud 가격 계산기를 사용합니다.

성능 최적화

이 섹션에서는 Google Cloud에서 성능 요구사항을 충족하는 RAG 지원 생성형 AI 애플리케이션을 설계 및 빌드할 때 고려해야 하는 요소를 설명합니다.

제품 설계 고려사항
GKE 워크로드의 성능 요구사항에 따라 포드에 적합한 컴퓨팅 클래스를 선택합니다. 추론 서버 및 임베딩 서비스를 실행하는 포드의 경우 nvidia-l4와 같은 GPU 머신 유형을 사용하는 것이 좋습니다.
Cloud SQL

Cloud SQL 인스턴스의 성능을 최적화하려면 인스턴스에 할당된 CPU와 메모리가 워크로드에 적합한지 확인합니다. 자세한 내용은 과소 프로비저닝된 Cloud SQL 인스턴스 최적화를 참조하세요.

근사 최근접 이웃(ANN) 벡터 검색의 응답 시간을 개선하려면 IVFFlat(Inverted File with Flat Compression) 색인 또는 HNSW(Hierarchical Navigable Small World) 색인을 사용합니다.

데이터베이스의 쿼리 성능을 분석하고 개선할 수 있도록 Cloud SQL에서는 쿼리 통계 도구를 제공합니다. 이 도구를 사용하여 성능을 모니터링하고 문제가 있는 쿼리 소스를 추적할 수 있습니다. 자세한 내용은 쿼리 통계를 사용하여 쿼리 성능 향상을 참조하세요.

데이터베이스의 상태 및 성능 개요를 보고 최대 연결 및 디스크 사용률과 같은 세부 측정항목을 보려면 시스템 통계 대시보드를 사용하면 됩니다. 자세한 내용은 시스템 통계를 사용하여 시스템 성능 향상을 참조하세요.

Cloud Storage 대용량 파일을 업로드하려면 병렬 복합 업로드라는 방법을 사용할 수 있습니다. 이 전략을 사용하면 큰 파일이 청크로 분할됩니다. 청크가 Cloud Storage에 병렬로 업로드된 후 데이터가 클라우드에서 재구성됩니다. 네트워크 대역폭 및 디스크 속도가 제한적이지 않을 경우 동시 복합 업로드 속도가 일반적인 업로드 작업보다 빠를 수 있습니다. 그러나 이 전략은 일부 제한사항과 비용 영향이 있습니다. 자세한 내용은 동시 복합 업로드를 참조하세요.

Deployment

이 참조 아키텍처를 기반으로 하는 토폴로지를 배포하려면 GitHub의 저장소에서 제공되는 오픈소스 샘플 코드를 다운로드하여 사용하면 됩니다. 샘플 코드는 프로덕션 사용 사례 용도가 아닙니다. 코드를 사용하여 RAG 지원 생성형 AI 애플리케이션을 위한 AI 인프라 설정을 실험할 수 있습니다.

이 샘플 코드는 다음을 수행합니다.

  1. 벡터 데이터베이스로 사용할 PostgreSQL용 Cloud SQL 인스턴스를 프로비저닝합니다.
  2. 지정한 GKE 클러스터에 Ray, JupyterHub, Hugging Face TGI를 배포합니다.
  3. RAG 기능을 확인할 수 있도록 GKE 클러스터에 샘플 웹 기반 챗봇 애플리케이션을 배포합니다.

샘플 코드 사용에 대한 안내는 코드의 리드미를 참조하세요. 샘플 코드를 사용할 때 오류가 발생했는데 이 오류에 대한 미해결 GitHub 문제가 존재하지 않는 경우 GitHub에서 문제를 만듭니다.

샘플 코드는 청구 가능한 Google Cloud 리소스를 배포합니다. 코드 사용을 마친 후 더 이상 필요하지 않은 리소스를 삭제하세요.

다음 단계

기여자

저자: Kumar Dhanagopal | 크로스 프로덕트 솔루션 개발자

기타 참여자: