이 문서에서는 벡터 검색을 사용하여 검색 증강 생성 (RAG)을 지원하는 생성형 AI 애플리케이션의 인프라를 설계하는 데 사용할 수 있는 참조 아키텍처를 제공합니다. Vector Search는 대규모 벡터 유사성 일치에 최적화된 게재 인프라를 제공하는 완전 관리형 Google Cloud 서비스입니다.
이 문서의 주요 대상에는 생성형 AI 애플리케이션의 설계자, 개발자, 관리자가 포함됩니다. 이 문서는 AI, 머신러닝(ML), 대규모 언어 모델(LLM) 개념에 대한 기본 이해가 있다는 가정 하에 작성되었습니다. 이 문서에서는 생성형 AI 애플리케이션의 설계 및 개발 방법에 대한 안내를 제공하지 않습니다.
아키텍처
다음 다이어그램은 이 문서에서 설명하는 아키텍처를 간단히 보여줍니다.
위 다이어그램의 아키텍처에는 데이터 처리와 제공이라는 두 가지 하위 시스템이 있습니다.
- 데이터 수집 하위 시스템은 외부 소스에서 업로드된 데이터를 수집합니다. 하위 시스템은 RAG용 데이터를 준비하고 Vertex AI와 상호작용하여 처리된 데이터의 임베딩을 생성하고 벡터 색인을 빌드 및 업데이트합니다.
- 서빙 하위 시스템에는 생성형 AI 애플리케이션의 프런트엔드 및 백엔드 서비스가 포함됩니다.
- 프런트엔드 서비스는 애플리케이션 사용자와의 쿼리-응답 흐름을 처리하고 쿼리를 백엔드 서비스로 전달합니다.
- 백엔드 서비스는 Vertex AI를 사용하여 쿼리 임베딩을 생성하고, 벡터 유사성 검색을 실행하고, 책임감 있는 AI 안전 필터 및 시스템 안내를 적용합니다.
다음 다이어그램은 아키텍처를 세부적으로 보여줍니다.
다음 섹션에서는 위의 아키텍처 다이어그램의 각 하위 시스템 내에서의 데이터 흐름을 설명합니다.
데이터 수집 하위 시스템
데이터 수집 하위 시스템은 외부 소스에서 데이터를 수집하고 RAG용 데이터를 준비합니다. 데이터 수집 및 준비 흐름의 단계는 다음과 같습니다.
- 데이터가 외부 소스에서 Cloud Storage 버킷으로 업로드됩니다. 외부 소스는 애플리케이션, 데이터베이스 또는 스트리밍 서비스일 수 있습니다.
- 데이터가 Cloud Storage에 업로드되면 메시지가 Pub/Sub 주제에 게시됩니다.
- Pub/Sub 주제에서 메시지를 수신하면 Cloud Run 작업이 트리거됩니다.
- Cloud Run 작업은 원시 데이터를 파싱하고 필요에 따라 형식을 지정하며 청크로 나눕니다.
- Cloud Run 작업은 Vertex AI Embeddings API를 사용하여 지정된 임베딩 모델을 사용하여 청크의 임베딩을 만듭니다. Vertex AI는 텍스트 및 멀티모달 임베딩 모델을 지원합니다.
- Cloud Run 작업은 임베딩의 벡터 검색 색인을 빌드한 후 색인을 배포합니다.
새 데이터가 처리되면 새 데이터에 대해 위의 단계가 실행되고 스트리밍 업데이트를 사용하여 색인이 업데이트됩니다.
서빙 하위 시스템은 사용자 요청을 처리할 때 벡터 유사성 검색에 벡터 검색 색인을 사용합니다. 다음 섹션에서는 게재 흐름을 설명합니다.
서빙 하위 시스템
서빙 하위 시스템은 생성형 AI 애플리케이션과 사용자 사이의 쿼리-응답 흐름을 처리합니다. 다음은 게재 흐름의 단계입니다.
- 사용자가 생성형 AI 애플리케이션의 프런트엔드 인터페이스 (예: 챗봇)를 제공하는 Cloud Run 서비스에 자연어 쿼리를 제출합니다.
- 프런트엔드 서비스는 사용자 쿼리를 백엔드 Cloud Run 서비스로 전달합니다.
- 백엔드 서비스는 다음을 실행하여 쿼리를 처리합니다.
- 데이터 처리 하위 시스템에서 처리된 데이터의 임베딩을 생성하는 데 사용하는 것과 동일한 임베딩 모델 및 매개변수를 사용하여 쿼리를 임베딩으로 변환합니다.
- 벡터 검색 색인에서 쿼리 임베딩에 대한 벡터 유사성 검색을 실행하여 관련 접지 데이터를 검색합니다.
- 원래 쿼리와 그라운딩 데이터를 결합하여 증강 프롬프트를 구성합니다.
- 증강 프롬프트를 Vertex AI에 배포된 LLM으로 전송합니다.
- LLM은 응답을 생성합니다.
- Vertex AI는 프롬프트마다 구성한 책임감 있는 AI 안전 필터를 적용한 후 필터링된 응답과 AI 안전 점수를 Cloud Run 백엔드 서비스로 전송합니다.
- 애플리케이션이 Cloud Run 프런트엔드 서비스를 통해 사용자에게 응답을 보냅니다.
Cloud Logging에서 쿼리-응답 활동의 로그를 저장하고 볼 수 있으며 Cloud Monitoring을 사용하여 로그 기반 모니터링을 설정할 수 있습니다. 생성된 대답을 BigQuery에 로드하여 오프라인 분석을 수행할 수도 있습니다.
Vertex AI 프롬프트 옵티마이저를 사용하면 초기 프롬프트 설계 단계와 진행 중인 프롬프트 조정 단계 모두에서 대규모로 프롬프트를 개선할 수 있습니다. 프롬프트 최적화 도구는 ML 엔지니어가 제공하는 일련의 샘플 프롬프트에 대한 모델의 응답을 평가합니다. 평가의 출력에는 샘플 프롬프트에 대한 모델의 응답, ML 엔지니어가 지정하는 측정항목의 점수, 사용을 고려할 수 있는 최적화된 시스템 안내 세트가 포함됩니다.
사용 제품
이 참조 아키텍처에는 다음과 같은 Google Cloud 제품이 사용됩니다.
- Vertex AI: ML 모델 및 AI 애플리케이션을 학습 및 배포하고 AI 기반 애플리케이션에서 사용하도록 LLM을 맞춤설정할 수 있게 해주는 ML 플랫폼입니다.
- 벡터 검색: 의미상 유사하거나 관련된 데이터를 저장, 색인 생성, 검색할 수 있는 벡터 유사성 일치 서비스입니다.
- Cloud Run: Google의 확장 가능한 인프라에서 직접 컨테이너를 실행할 수 있게 해주는 서버리스 컴퓨팅 플랫폼입니다.
- Cloud Storage: 다양한 데이터 유형에 적합한 저비용, 무제한 객체 저장소입니다. Google Cloud내부 및 외부에서 데이터에 액세스할 수 있고 중복성을 위해 여러 위치에 복제됩니다.
- Pub/Sub: 메시지 생성 서비스를 메시지 처리 서비스와 분리하는 비동기식의 확장 가능한 메시징 서비스입니다.
- Cloud Logging: 스토리지, 검색, 분석, 알림을 지원하는 실시간 로그 관리 시스템입니다.
- Cloud Monitoring: 애플리케이션 및 인프라의 성능, 가용성, 상태에 관한 정보를 제공하는 서비스입니다.
- BigQuery: 머신러닝 지리 정보 분석 및 비즈니스 인텔리전스와 같은 기본 제공 기능으로 데이터를 관리 및 분석하는 데 도움이 되는 엔터프라이즈 데이터 웨어하우스입니다.
사용 사례
RAG는 LLM에서 생성되는 출력의 품질을 개선하는 데 효과적인 기법입니다. 이 섹션에서는 RAG 지원 생성형 AI 애플리케이션을 사용할 수 있는 사용 사례에 대한 예시를 제공합니다.
맞춤화된 제품 추천
한 온라인 쇼핑 사이트에서 LLM 기반 챗봇을 사용하여 고객의 제품 검색을 도와주거나 쇼핑 관련 도움을 제공하려고 합니다. 사용자의 질문은 사용자의 구매 행동 및 웹 사이트 상호작용 패턴에 대한 과거 데이터를 사용하여 증강될 수 있습니다. 이러한 데이터에는 구조화되지 않은 데이터 스토어에 저장된 사용자 리뷰와 피드백이 포함되거나 웹 분석 데이터 웨어하우스에 저장된 검색 관련 측정항목이 포함될 수 있습니다. 그런 다음 LLM이 증강된 질문을 처리해서 사용자에게 더 매력적이고 설득력 있게 보이는 맞춤화된 응답을 생성합니다.
임상 지원 시스템
병원의 의사는 적절한 치료와 처방을 결정하기 위해 환자의 의료 상태를 빠르게 분석하고 진단해야 합니다. Med-PaLM과 같은 의료용 LLM을 사용하는 생성형 AI 애플리케이션을 활용해서 임상 진단 과정 중 의사를 지원할 수 있습니다. 애플리케이션이 생성하는 응답은 병원의 전자 건강 기록(EHR) 데이터베이스 또는 PubMed와 같은 외부 기술 자료의 데이터와 함께 의사의 프롬프트를 컨텍스트에 맞게 조정함으로써 과거 환자 기록에서 근거를 확보할 수 있습니다.
효율적인 법률 조사
생성형 AI 기반의 법률 조사를 통해 변호사는 대량의 법령과 판례를 빠르게 검색하여 관련 법적 선례를 확인하거나 복잡한 법률 개념을 요약할 수 있습니다. 이러한 조사의 결과는 법률 회사의 독점 계약 모음, 과거 법률 소통 자료 및 내부 사건 기록에서 검색된 데이터로 변호사의 프롬프트를 증강함으로써 향상될 수 있습니다. 이러한 설계 접근 방식은 생성된 응답이 변호사의 전문 법률 도메인과 관련이 있도록 보장합니다.
설계 대안
이 섹션에서는 Google Cloud에서 RAG 지원 생성형 AI 애플리케이션을 위해 고려할 수 있는 대체 설계 접근 방식을 설명합니다.
AI 인프라 대안
PostgreSQL용 AlloyDB 또는 RAG 애플리케이션용 Cloud SQL과 같은 완전 관리형 Google Cloud 데이터베이스의 벡터 저장소 기능을 활용하려면 Vertex AI 및 PostgreSQL용 AlloyDB를 사용하는 RAG 지원 생성형 AI 애플리케이션용 인프라를 참고하세요.
오픈소스 도구와 모델인 Ray, Hugging Face, LangChain을 사용하여 RAG 지원 생성형 AI 애플리케이션을 빠르게 빌드하고 배포하려면 Google Kubernetes Engine (GKE)을 사용하는 RAG 지원 생성형 AI 애플리케이션을 위한 인프라를 참고하세요.
애플리케이션 호스팅 옵션
이 문서에 표시된 아키텍처에서 Cloud Run은 생성형 AI 애플리케이션 서비스 및 데이터 처리 작업의 호스트입니다. Cloud Run은 개발자 중심의 완전 관리형 애플리케이션 플랫폼입니다. 컴퓨팅 인프라에 대한 구성 유연성과 제어 기능이 더 필요한 경우 애플리케이션을 GKE 클러스터 또는 Compute Engine VM에 배포할 수 있습니다.
Cloud Run, GKE 또는 Compute Engine을 애플리케이션 호스트로 사용할지 여부를 결정할 때는 구성 유연성과 관리 노력 간의 균형을 맞춰야 합니다. 서버리스 Cloud Run 옵션을 사용하면 최소한의 관리 노력이 필요한 사전 구성된 환경에 애플리케이션을 배포할 수 있습니다. Compute Engine VM 및 GKE 컨테이너를 사용하면 기본 컴퓨팅 리소스를 관리해야 하지만 구성 유연성과 제어 기능이 더 뛰어납니다. 적절한 애플리케이션 호스팅 서비스를 선택하는 방법에 관한 자세한 내용은 다음 문서를 참고하세요.
- 내 앱이 Cloud Run에 적합한가요?
- 관리형 컨테이너 런타임 환경 선택
- Google Cloud에서 애플리케이션 호스팅
기타 옵션
Google Cloud의 생성형 AI 애플리케이션에 사용할 수 있는 다른 인프라 옵션, 지원되는 모델, 접지 기법에 관한 자세한 내용은 생성형 AI 애플리케이션의 모델 및 인프라 선택을 참고하세요.
설계 고려사항
이 섹션에서는 이 참조 아키텍처를 사용하여 보안, 안정성, 비용, 성능에 대한 특정 요구사항을 충족하는 토폴로지를 개발할 때 고려해야 하는 설계 요소, 권장사항, 설계 권장사항을 설명합니다.
이 섹션의 안내는 일부일 뿐 모든 내용을 포함하지는 않습니다. 애플리케이션의 특정 요구사항과 사용하는 Google Cloud 및 서드 파티 제품 및 기능에 따라 고려해야 할 추가 설계 요소와 장단점이 있을 수 있습니다.
보안, 규정 준수, 개인 정보 보호
이 섹션에서는 워크로드의 보안 및 규정 준수 요구사항을 충족하는 Google Cloud 에서 토폴로지를 설계하기 위한 설계 고려사항 및 권장사항을 설명합니다.
제품 | 설계 고려사항 및 권장사항 |
---|---|
Vertex AI |
보안 제어: Vertex AI는 데이터 상주, 데이터 암호화, 네트워크 보안, 액세스 투명성에 대한 요구사항을 충족하기 위해 사용할 수 있는 Google Cloud 보안 제어를 지원합니다. 자세한 내용은 Vertex AI의 보안 제어 및 생성형 AI의 보안 제어를 참고하세요. 모델 액세스: 조직 정책을 설정하여 Google Cloud 프로젝트에서 사용할 수 있는 LLM의 유형과 버전을 제한할 수 있습니다. 자세한 내용은 Model Garden 모델에 대한 액세스 제어를 참고하세요. 책임 공유: Vertex AI는 기본 인프라를 보호하고 데이터, 코드, 모델을 보호하는 데 도움이 되는 도구와 보안 제어를 제공합니다. 자세한 내용은 Vertex AI 공동 책임을 참고하세요. 데이터 보호: Cloud Data Loss Prevention API를 사용하여 프롬프트 및 응답, 로그 데이터에서 개인 식별 정보 (PII)와 같은 민감한 정보를 검색하고 익명처리합니다. 자세한 내용은 AI 앱에서 민감한 정보 보호 동영상을 참고하세요. |
Cloud Run |
인그레스 보안 (프런트엔드 서비스): 애플리케이션에 대한 외부 액세스를 제어하려면 프런트엔드 Cloud Run 서비스의 기본 run.app URL을 사용 중지하고 리전 외부 애플리케이션 부하 분산기를 설정합니다. 부하 분산기는 애플리케이션으로 들어오는 트래픽을 부하 분산하는 것과 함께 SSL 인증서 관리도 처리합니다. 추가 보호를 위해 Google Cloud Armor 보안 정책을 사용하여 서비스에 요청 필터링, DDoS 보호, 비율 제한을 제공할 수 있습니다.
인그레스 보안 (백엔드 서비스): 이 아키텍처의 애플리케이션 백엔드용 Cloud Run 서비스는 인터넷에서 액세스할 필요가 없습니다. 내부 클라이언트만 서비스에 액세스할 수 있도록 하려면 데이터 암호화: 기본적으로 Cloud Run은 Google 소유 및 Google 관리 암호화 키를 사용하여 데이터를 암호화합니다. 사용자가 제어하는 키를 사용해서 컨테이너를 보호하려면 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. 자세한 내용은 고객 관리 암호화 키 사용을 참고하세요. 컨테이너 이미지 보안: 승인된 컨테이너 이미지만 Cloud Run 작업 및 서비스에 배포되도록 하려면 Binary Authorization을 사용하면 됩니다. 데이터 상주: Cloud Run은 데이터 상주 요구사항을 충족하도록 도와줍니다. Cloud Run 컨테이너 인스턴스는 선택한 리전 내에서 실행됩니다. 컨테이너 보안에 관한 자세한 안내는 일반 Cloud Run 개발 팁을 참고하세요. |
Cloud Storage |
데이터 암호화: 기본적으로 Cloud Storage에 저장되는 데이터는 Google 소유 및 Google 관리 암호화 키를 사용하여 암호화됩니다. 필요한 경우 CMEK를 사용하거나 고객 제공 암호화 키 (CSEK)와 같은 외부 관리 방법을 사용하여 관리하는 자체 키를 사용할 수 있습니다. 자세한 내용은 데이터 암호화 옵션을 참고하세요. 액세스 제어: Cloud Storage는 버킷과 객체에 대한 사용자 액세스를 제어하기 위해 Identity and Access Management (IAM) 및 액세스 제어 목록 (ACL)의 두 가지 방법을 지원합니다. 대부분의 경우 버킷 및 프로젝트 수준에서 권한을 부여할 수 있는 IAM을 사용하는 것이 좋습니다. 자세한 내용은 액세스 제어 개요를 참고하세요. 데이터 보호: Cloud Storage를 통해 데이터 수집 하위 시스템에 로드하는 데이터에는 민감한 정보가 포함될 수 있습니다. 이러한 데이터를 보호하기 위해서는 Sensitive Data Protection을 사용하여 데이터를 검색, 분류, 익명화할 수 있습니다. 자세한 내용은 Cloud Storage에 Sensitive Data Protection 사용을 참고하세요. 네트워크 제어: Cloud Storage에서 데이터 무단 반출 위험을 완화하려면 VPC 서비스 제어를 사용하여 서비스 경계를 만들 수 있습니다. 데이터 상주: Cloud Storage는 데이터 상주 요구사항을 충족하도록 도와줍니다. 데이터는 사용자가 지정한 리전 내에 저장 또는 복제됩니다. |
Pub/Sub |
데이터 암호화: 기본적으로 Pub/Sub는 Google 소유 및 Google 관리 암호화 키를 사용하여 저장 중 및 전송 중인 모든 메시지를 암호화합니다. Pub/Sub에서는 애플리케이션 레이어에서 메시지 암호화를 위해 CMEK를 사용할 수 있습니다. 자세한 내용은 메시지 암호화 구성을 참고하세요. 데이터 상주: 데이터 상주 요구사항이 있는 경우 메시지 데이터가 특정 위치에 저장되도록 하려면 메시지 스토리지 정책을 구성하면 됩니다. |
Cloud Logging |
관리 활동 감사: 이 참조 아키텍처에 사용되는 모든 Google Cloud 서비스에 대해 관리 활동 로깅이 기본적으로 사용 설정됩니다. Cloud Logging을 통해 로그에 액세스하고 로그를 사용하여 Google Cloud 리소스의 구성 또는 메타데이터를 수정하는 API 호출 또는 기타 작업을 모니터링할 수 있습니다. 데이터 액세스 감사: 데이터 액세스 이벤트 로깅은 BigQuery에 대해 기본적으로 사용 설정됩니다. 이 아키텍처에 사용되는 다른 서비스에 대해 데이터 액세스 감사 로그를 사용 설정할 수 있습니다. 이 로그를 사용하여 다음을 모니터링할 수 있습니다.
로그 데이터 보안: Google은 Cloud Logging의 데이터에 액세스하거나 이를 사용하지 않습니다. 데이터 상주: 데이터 상주 요구사항을 충족하기 위해 지정한 리전에 로그 데이터를 저장하도록 Cloud Logging을 구성할 수 있습니다. 자세한 내용은 로그 리전화를 참고하세요. |
아키텍처의 모든 제품 |
데이터 무단 반출 위험 완화: 데이터 무단 반출 위험을 줄이려면 인프라에 VPC 서비스 제어 경계를 만듭니다. VPC 서비스 제어는 이 참조 아키텍처에 사용되는 모든 서비스를 지원합니다. 배포 후 최적화: Google Cloud에 애플리케이션을 배포한 후 Active Assist 서비스를 사용하여 클라우드 리소스의 보안을 더욱 최적화하는 데 도움이 되는 추천을 받습니다. 권장사항을 검토하고 환경에 적합하게 적용합니다. 자세한 내용은 권장사항 허브에서 추천 찾기를 참고하세요. 액세스 제어: 모든 클라우드 서비스에 최소 권한 원칙을 따릅니다. |
Google Cloud의 AI 및 ML 배포 보안에 관한 일반적인 안내는 다음 리소스를 참고하세요.
- (블로그) Google의 보안 AI 프레임워크 소개
- (문서) Google Cloud 아키텍처 프레임워크의 AI 및 ML 보안 관점
- (문서) Vertex AI 공동 책임
- (백서) 생성형 AI, 개인 정보 보호, Google Cloud
- (동영상) AI 앱에서 민감한 정보 보호
안정성
이 섹션에서는 Google Cloud에서 배포를 위한 안정적인 인프라를 빌드하고 운영하기 위한 설계 고려사항 및 권장사항을 설명합니다.
제품 | 설계 고려사항 및 권장사항 |
---|---|
벡터 검색 |
검색어 확장: 벡터 검색 색인이 증가하는 검색어 로드를 처리할 수 있도록 색인 엔드포인트에 자동 확장을 구성할 수 있습니다. 쿼리 부하가 증가하면 노드 수가 지정한 최대값까지 자동으로 증가합니다. 자세한 내용은 자동 확장 사용 설정을 참고하세요. |
Cloud Run |
인프라 중단에 대한 견고성: Cloud Run은 리전 서비스입니다. 데이터는 리전 내 여러 영역에 동기식으로 저장됩니다. 트래픽은 영역 간에 자동으로 부하 분산됩니다. 영역 중단이 발생해도 Cloud Run은 계속 실행되고 데이터가 손실되지 않습니다. 리전 중단이 발생하면 Google에서 중단 문제를 해결할 때까지 Cloud Run 실행이 중지됩니다. 실패 처리: 개별 Cloud Run 작업 또는 태스크가 실패할 수 있습니다. 이러한 실패를 처리하려면 태스크 재시도 및 체크포인트 지정을 사용할 수 있습니다. 자세한 내용은 작업 재시도 및 체크포인트 권장사항을 참고하세요. |
Cloud Storage | 데이터 가용성: 리전, 이중 리전, 멀티 리전의 세 가지 위치 유형 중 하나로 Cloud Storage 버킷을 만들 수 있습니다. 리전 버킷에 저장된 데이터는 리전 내 여러 영역에 동기식으로 복제됩니다. 더 높은 가용성을 위해서는 데이터가 리전 간에 동기식으로 복제되는 이중 리전 또는 멀티 리전 버킷을 사용하면 됩니다. |
Pub/Sub |
속도 제어: 메시지 트래픽이 일시적으로 급증하는 기간에 오류가 발생하지 않도록 하려면 게시자 설정에서 흐름 제어를 구성하여 게시 요청 속도를 제한하면 됩니다. 실패 처리: 실패한 게시 시도를 처리하려면 필요에 따라 재시도-요청 변수를 조정합니다. 자세한 내용은 요청 재시도를 참고하세요. |
BigQuery | 인프라 중단에 대한 견고성: BigQuery에 로드하는 데이터는 지정된 리전 내의 두 영역에 동기식으로 저장됩니다. 이러한 중복성은 영역 중단이 발생했을 때 데이터가 손실되지 않도록 보장하는 데 도움이 됩니다. BigQuery의 안정성 기능에 대한 자세한 내용은 안정성 이해를 참고하세요. |
아키텍처의 모든 제품 | 배포 후 최적화: Google Cloud에 애플리케이션을 배포한 후 Active Assist 서비스를 사용하여 클라우드 리소스의 안정성을 더욱 최적화하기 위한 권장사항을 받습니다. 권장사항을 검토하고 환경에 적합하게 적용합니다. 자세한 내용은 권장사항 허브에서 추천 찾기를 참고하세요. |
Google Cloud에서 안정적인 AI 및 ML 시스템을 설계하고 운영하기 위한 원칙에 관한 개요는 Google Cloud 아키텍처 프레임워크의 AI 및 ML 안정성 관점을 참고하세요.
비용 최적화
이 섹션에서는 이 참조 아키텍처를 사용하여 빌드하는 Google Cloud 토폴로지의 설정 및 운영 비용을 최적화하는 방법을 안내합니다.
제품 | 설계 고려사항 및 권장사항 |
---|---|
벡터 검색 |
벡터 검색 요금은 색인 크기, 초당 쿼리 수 (QPS), 색인 엔드포인트에 사용하는 노드 수 및 머신 유형에 따라 다릅니다. QPS가 높은 워크로드의 경우 쿼리를 일괄 처리하면 비용을 절감할 수 있습니다. 벡터 검색 비용을 추정하는 방법에 관한 자세한 내용은 벡터 검색 가격 책정 예시를 참고하세요. 벡터 검색 색인이 배포된 컴퓨팅 노드의 활용도를 개선하려면 색인 엔드포인트에 자동 확장을 구성하면 됩니다. 수요가 적으면 노드 수가 지정된 최솟값으로 자동 감소합니다. 자세한 내용은 자동 확장 사용 설정을 참고하세요. |
Cloud Run |
Cloud Run 작업 및 서비스를 만들 때 컨테이너 인스턴스에 할당할 메모리 및 CPU 양을 지정합니다. 비용을 줄이려면 기본 (최소) CPU 및 메모리 할당으로 시작합니다. 성능을 향상시키려면 CPU 한도 및 메모리 한도를 구성하여 할당을 늘릴 수 있습니다. 자세한 내용은 다음 문서를 참고하세요. Cloud Run 작업 및 서비스의 CPU 및 메모리 요구사항을 예측할 수 있으면 약정 사용 할인을 통해 비용을 절약할 수 있습니다. 자세한 내용은 Cloud Run 약정 사용 할인을 참고하세요. |
Cloud Storage | 데이터 수집 하위 시스템에 데이터를 로드하는 데 사용하는 Cloud Storage 버킷의 경우 적절한 스토리지 클래스를 선택합니다. 스토리지 클래스를 선택할 때는 워크로드의 데이터 보관 및 액세스 빈도 요구사항을 고려하세요. 예를 들어 스토리지 비용을 관리하려면 Standard 클래스를 선택하고 객체 수명 주기 관리를 사용하면 됩니다. 이렇게 하면 객체를 저비용 스토리지 클래스로 자동으로 다운그레이드하거나 설정한 조건에 따라 객체를 삭제할 수 있습니다. |
Cloud Logging |
로그 저장 비용을 관리하려면 다음을 수행하면 됩니다. |
BigQuery | BigQuery를 사용하면 쿼리를 실행하기 전에 쿼리 비용을 예상할 수 있습니다. 쿼리 비용을 최적화하려면 스토리지 및 쿼리 계산을 최적화해야 합니다. 자세한 내용은 비용 예측 및 제어를 참고하세요. |
아키텍처의 모든 제품 | Google Cloud에 애플리케이션을 배포한 후 Active Assist 서비스를 사용하여 클라우드 리소스 비용을 추가로 최적화하기 위한 권장사항을 확인하세요. 권장사항을 검토하고 환경에 적합하게 적용합니다. 자세한 내용은 권장사항 허브에서 추천 찾기를 참고하세요. |
Google Cloud 리소스의 비용을 추정하려면 Google Cloud 가격 계산기를 사용하세요.
ML 수명 주기 전반에서 AI 시스템의 비용을 최적화하는 원칙에 관한 개요는 Google Cloud 아키텍처 프레임워크의 AI 및 ML 비용 최적화 관점을 참고하세요.
성능 최적화
이 섹션에서는 워크로드의 성능 요구사항을 충족하는 Google Cloud 에서 토폴로지를 설계하기 위한 설계 고려사항 및 권장사항을 설명합니다.
제품 | 설계 고려사항 및 권장사항 |
---|---|
벡터 검색 |
색인을 만들 때 성능 요구사항에 따라 각 리프 노드의 샤드 크기, 거리 측정 유형, 임베딩 수를 설정합니다. 예를 들어 애플리케이션이 지연 시간 변동에 매우 민감한 경우 큰 샤드 크기를 사용하는 것이 좋습니다. 자세한 내용은 성능에 영향을 미치는 구성 매개변수를 참고하세요. 벡터 검색 색인이 배포된 노드의 컴퓨팅 용량을 구성할 때는 성능 요구사항을 고려하세요. 적절한 머신 유형을 선택하고 예상되는 쿼리 부하에 따라 최대 노드 수를 설정합니다. 자세한 내용은 성능에 영향을 미치는 배포 설정을 참고하세요.
쿼리 성능, 가용성, 비용 요구사항에 따라 Vertex Search 색인의 쿼리 매개변수를 구성합니다.
예를 들어 최신 색인을 사용하면 생성된 응답의 정확성을 개선하는 데 도움이 됩니다. 일괄 업데이트 또는 스트리밍 업데이트를 사용하여 벡터 검색 색인을 업데이트할 수 있습니다. 스트리밍 업데이트를 사용하면 업데이트된 데이터에 대해 거의 실시간으로 쿼리할 수 있습니다. 자세한 내용은 활성 색인 업데이트 및 다시 빌드를 참고하세요. |
Cloud Run |
기본적으로 각 Cloud Run 컨테이너 인스턴스에는 CPU 1개와 512MiB 메모리가 할당됩니다. 성능 요구사항에 따라 CPU 한도와 메모리 한도를 구성할 수 있습니다. 자세한 내용은 다음 문서를 참조하세요. 트래픽이 없는 기간 후에도 최적의 지연 시간을 보장하려면 최소 인스턴스 수를 구성하면 됩니다. 이러한 인스턴스가 유휴 상태이면 인스턴스에 할당된 CPU 및 메모리에 대해 더 낮은 가격이 청구됩니다. 성능 최적화에 관한 자세한 안내는 일반 Cloud Run 개발 팁을 참고하세요. |
Cloud Storage | 대용량 파일을 업로드하려면 병렬 복합 업로드라는 방법을 사용할 수 있습니다. 이 전략을 사용하면 큰 파일이 청크로 분할됩니다. 청크가 Cloud Storage에 병렬로 업로드된 후 데이터가 클라우드에서 재구성됩니다. 네트워크 대역폭 및 디스크 속도가 제한 요소가 아닌 경우 병렬 복합 업로드가 일반 업로드 작업보다 빠를 수 있습니다. 그러나 이 전략은 일부 제한사항과 비용 영향이 있습니다. 자세한 내용은 동시 복합 업로드를 참고하세요. |
BigQuery |
BigQuery는 쿼리 성능을 분석하고 슬롯 경합 및 셔플 할당량 부족과 같은 문제에 대해 성능 통계를 얻는 데 사용할 수 있는 쿼리 실행 그래프를 제공합니다. 자세한 내용은 쿼리 성능 통계 가져오기를 참고하세요. 쿼리 성능 통계를 통해 식별된 문제를 해결한 후에는 입력 및 출력 데이터 볼륨 감소와 같은 기법을 사용해서 쿼리를 더 최적화할 수 있습니다. 자세한 내용은 쿼리 계산 최적화를 참고하세요. |
아키텍처의 모든 제품 | Google Cloud에 애플리케이션을 배포한 후 Active Assist 서비스를 사용하여 클라우드 리소스의 성능을 더욱 최적화하기 위한 권장사항을 확인하세요. 권장사항을 검토하고 환경에 적합하게 적용합니다. 자세한 내용은 권장사항 허브에서 추천 찾기를 참고하세요. |
Google Cloud에서 AI 및 ML 워크로드의 성능을 최적화하는 원칙에 관한 개요는 Google Cloud 아키텍처 프레임워크의 AI 및 ML 성능 최적화 관점을 참고하세요.
다음 단계
- 생성형 AI 애플리케이션의 모델 및 인프라 선택
- Vertex AI 및 PostgreSQL용 AlloyDB를 사용하는 RAG 지원 생성형 AI 애플리케이션을 위한 인프라
- GKE를 사용하는 RAG 지원 생성형 AI 애플리케이션을 위한 인프라
- 아키텍처 프레임워크: AI 및 ML 관점
- 그 밖의 참조 아키텍처, 다이어그램, 튜토리얼, 권장사항을 알아보려면 클라우드 아키텍처 센터를 확인하세요.
참여자
저자: Kumar Dhanagopal | 크로스 프로덕트 솔루션 개발자
기타 참여자:
- Assaf Namer | 수석 클라우드 보안 설계자
- Deepak Michael | 네트워킹 전문 고객 엔지니어
- 디밤 아난드 | 제품 전략 및 운영 책임자
- 에란 루이스 | 선임 제품 관리자
- 마크 슐라겐하우프 | 네트워킹 테크니컬 라이터
- 프레스톤 홀름스 | 아웃바운드 제품 관리자 - 앱 가속
- 롭 에드워즈 | DevOps 기술 실무 책임자
- 빅터 모레노 | Cloud Networking 제품 관리자
- 위체 베네마 | 개발자 관계 엔지니어