이 페이지에서는 PostgreSQL용 Cloud SQL에서 제공하는 생성형 AI 애플리케이션을 빌드하는 데 도움이 되는 기능을 간략하게 설명합니다. 샘플 애플리케이션을 시작하려면 생성형 AI 애플리케이션용 Cloud SQL 사용 시작하기를 참조하세요.
검색 증강 생성(RAG)은 응답을 생성하기 전에 신뢰할 수 있는 기술 자료를 참조하여 대규모 언어 모델(LLM) 출력을 최적화하는 기술입니다. RAG는 정확성을 향상시켜 생성형 AI 애플리케이션을 강화합니다. Cloud SQL 데이터베이스는 이 페이지의 설명대로 RAG 및 생성형 AI 애플리케이션용으로 선별된 기능을 제공합니다.
벡터 임베딩 생성
벡터 임베딩은 시맨틱 이해와 효율적인 유사성 검색을 사용 설정하므로 RAG에 필수적입니다. 이러한 임베딩은 텍스트, 이미지, 오디오, 동영상의 숫자 표현입니다. 임베딩 모델은 벡터 임베딩을 생성하므로 콘텐츠 2개가 의미론적으로 유사하면 해당 임베딩이 임베딩 벡터 공간에서 서로 가깝게 배치됩니다.
Cloud SQL은 Vertex AI와 통합됩니다. Vertex AI에서 호스팅하는 모델을 사용하여 SQL 쿼리를 통해 벡터 임베딩을 생성할 수 있습니다.
Cloud SQL은 텍스트 벡터 임베딩 생성을 위한 임베딩 함수를 사용하여 PostgreSQL 구문을 확장합니다. 이러한 임베딩을 생성하면 별도의 벡터 데이터베이스가 없이도 Cloud SQL 데이터베이스에 저장할 수 있습니다.
Cloud SQL을 사용하여 Cloud SQL 외부에서 생성된 벡터 임베딩을 저장할 수도 있습니다. 예를 들어 Vertex AI Model Garden에서 선행 학습된 모델을 통해 생성된 벡터 임베딩을 저장할 수 있습니다. 이러한 벡터 임베딩을 유사성 및 시맨틱 검색을 위한 pgvector
함수에 대한 입력으로 사용할 수 있습니다.
pgvector
를 사용하여 벡터 임베딩 저장, 색인 생성, 쿼리
pgvector
PostgreSQL 확장 프로그램을 사용하여 Cloud SQL에서 벡터 임베딩을 저장, 색인 생성, 쿼리할 수 있습니다.
이 확장 프로그램을 구성하는 방법에 대한 자세한 내용은 PostgreSQL 확장 프로그램 구성을 참조하세요. 벡터 임베딩 저장, 색인 생성, 쿼리에 대한 자세한 내용은 생성된 임베딩 저장 및 pgvector
를 사용하여 임베딩 쿼리 및 색인 생성을 참조하세요.
SQL 쿼리를 사용하여 온라인 예측 호출
SQL 쿼리를 사용하여 Vertex AI Model Garden에 저장된 모델을 통해 온라인 예측을 호출할 수 있습니다.
LangChain 통합 사용
Cloud SQL은 오픈소스 LLM 조정 프레임워크인 LangChain과 통합되어 생성형 AI 애플리케이션 개발을 간소화합니다. 다음 LangChain 패키지를 사용할 수 있습니다.
벡터 검색 성능 개선
다음을 사용하여 벡터 검색 성능을 향상시킬 수 있습니다.
- 데이터 캐시: 빠른 로컬 SSD를 활용하여 자주 읽는 데이터 페이지를 저장하는 기본 제공 데이터 캐시를 사용합니다. 영구 디스크에서 읽기보다 읽기 성능이 최대 3배까지 향상될 수 있습니다.
데이터 캐시 측정항목: 벡터 검색에서 데이터 캐시를 효과적으로 사용하는 방식을 기준으로 쿼리를 최적화합니다.
Cloud SQL은 Cloud Monitoring의 측정항목 탐색기에서 다음 측정항목을 제공합니다.
측정항목 설명 측정항목 라벨 사용된 데이터 캐시 데이터 캐시 사용량(바이트 단위) database/data_cache/bytes_used
데이터 캐시 할당량 최대 데이터 캐시 크기(바이트 단위) database/data_cache/quota
데이터 캐시 적중 횟수 인스턴스에 대한 총 데이터 캐시 적중 읽기 작업 수 database/postgresql/data_cache/hit_count
데이터 캐시 부적중 횟수 인스턴스의 총 데이터 캐시 부적중 읽기 작업 수 database/postgresql/data_cache/miss_count
데이터 캐시 적중률 인스턴스의 데이터 캐시 부적중 읽기 작업 대비 데이터 캐시 적중 읽기 작업 비율
database/postgresql/data_cache/hit_ratio
시스템 통계: 인스턴스 상태를 모니터링하고 생성형 AI 애플리케이션 성능에 영향을 미치는 문제를 해결하는 데 도움이 되도록 CPU 사용률, 디스크 사용률, 처리량과 같은 시스템 측정항목을 제공합니다. 이러한 측정항목을 보려면 Cloud SQL 시스템 통계 대시보드를 사용합니다.
쿼리 통계: 쿼리 성능 문제를 감지, 진단, 방지합니다. 이는 생성형 AI 애플리케이션에서 벡터 검색 성능을 향상시키는 데 유용합니다.
Cloud SQL 쿼리 통계 대시보드를 사용하면 상위 쿼리 성능을 관찰하고 시각적 쿼리 계획을 사용하여 이러한 쿼리를 분석할 수 있습니다. 또한 애플리케이션 수준에서 성능을 모니터링하고 SQLcommenter를 사용하여 애플리케이션 스택에서 문제가 있는 쿼리의 소스를 데이터베이스까지 추적할 수 있습니다. 오픈소스 객체 관계형 매핑(ORM) 자동 계측 라이브러리입니다.
또한 쿼리 통계는 개발자가 익숙한 도구를 사용하여 쿼리 문제를 해결할 수 있도록 기존 애플리케이션 모니터링(APM) 도구와 통합될 수 있습니다.
생성형 AI 애플리케이션용 Cloud SQL 사용 시 이점
Cloud SQL을 사용하여 생성형 AI 애플리케이션을 빌드하면 다음과 같은 이점이 있습니다.
- PostgreSQL을 사용하여 생성형 AI 애플리케이션 빌드. PostgreSQL용 Cloud SQL은
pgvector
를 지원하며 Vertex AI 및 LangChain과 모두 통합됩니다. - 엔터프라이즈급 데이터 보호, 보안, 거버넌스가 있는 신뢰할 수 있는 서비스 사용. Cloud SQL을 사용하면 다음과 같은 이점이 있습니다.
- 유지보수가 포함된 99.99%의 고가용성 SLA
- 자동 백업, 복제, 패치, 암호화, 스토리지 용량 자동 증가와 같은 기능을 제공하는 관리형 서비스
- 보안, 거버넌스, 규정 준수 기능
- 상황별 운영 데이터와 결합. 운영 데이터에서 조인과 필터를 사용하는 동시에 벡터 임베딩을 사용하면 생성형 AI 애플리케이션에서 상황별로 정확한 최신 응답을 얻을 수 있습니다.
- 작업 부담 감소. Cloud SQL을 벡터 데이터베이스로 사용하면 데이터를 별도의 벡터 데이터베이스에 내보내는 데 드는 작업 수고가 줄어듭니다.
- 최신 생성형 AI 모델에 액세스. SQL 쿼리를 사용하여 Vertex AI에서 호스팅되는 최신 AI 모델에 액세스합니다.
생성형 AI 애플리케이션용 Cloud SQL 사용 시작하기
생성형 AI 애플리케이션 빌드를 시작하려면 이 샘플 앱을 사용합니다. 이 앱은 Cloud SQL, Vertex AI 및 Google Kubernetes Engine(GKE) 또는 Cloud Run을 사용합니다. 앱을 사용하여 다음과 같은 기본 챗봇 API를 빌드할 수 있습니다.
- GKE 또는 Cloud Run을 Cloud SQL, Vertex AI,
pgvector
와 통합합니다. - 가상 프라이빗 클라우드(VPC)에서 Private Service Connect를 사용하여 Cloud SQL에 연결하는 방법을 보여줍니다.
- Terraform을 사용하여 인프라를 구성합니다.
asyncpg
및FastAPI
와 함께 Python을 사용합니다.- 별도의 Google Cloud 프로젝트에 있는 GKE 또는 Cloud Run에서 실행되는 Cloud SQL 및 앱을 설정할 수 있습니다.
솔루션에는 다음 콘텐츠가 포함되어 있습니다.
- 보안 권장사항으로 인프라를 설정할 수 있는 Terraform 템플릿
- GKE 또는 Cloud Run에 배포할 수 있는 LLM 기반 챗봇용 샘플 앱