콘텐츠로 이동하기
데이터베이스

PostgreSQL 서비스, 애플리케이션에서 AI 기능을 활용할 수 있도록 벡터 지원 발표

2023년 7월 27일
https://storage.googleapis.com/gweb-cloudblog-publish/images/aiml2022.max-2500x2500.jpg
Sandhya Ghai

Product Manager, Google Cloud Databases

Bala Narasimhan

Group Product Manager, Google Cloud

*본 아티클의 원문은 2023년 6월 27일 Google Cloud 블로그(영문)에 게재되었습니다.


생성형 AI는 우리가 정보, 기업 및 조직, 다른 사람과 상호작용하는 방식에 혁신의 물결을 일으키고 있습니다. 앞으로 거의 모든 애플리케이션이 AI에 기반할 것이며 이러한 애플리케이션을 빌드하는 개발자는 애플리케이션에 혁신적인 사용자 경험을 구축하는 데 적합한 도구가 필요할 것입니다.

혁신적인 사용자 경험은 애플리케이션 상태, 사용자의 인풋, 운영 데이터를 활용하여 사용자와 관련성이 높은 컨텍스트를 제공함으로써 니즈에 맞는 더 나은 서비스를 제공할 것입니다. 운영 데이터베이스는 이미 일부 애플리케이션에서 핵심적인 역할을 하고 있기 때문에 새로운 생성형 AI 사용자 경험을 실현하는 데 필수불가결한 요소가 될 것입니다.

오늘 Google은 PostgreSQL용 Cloud SQLPostgreSQL용 AlloyDB에서 벡터 저장과 효율적인 쿼리 작업을 지원한다는 소식을 전해드립니다. 이를 통해 애플리케이션에서 생성형 AI 기능을 활용할 수 있습니다. 이제 데이터베이스를 사용하여 널리 사용되는 pgvector PostgreSQL 확장 프로그램을 통해 대규모 언어 모델(LLM)에서 생성된 벡터 임베딩을 저장하고 색인을 생성할 수 있으며, 정확한 근사 최근접 이웃 검색을 사용하여 유사한 항목을 효율적으로 찾고, 관계형 데이터베이스의 데이터와 기능을 활용하여 데이터를 보강하고 처리할 수 있습니다.

벡터 임베딩은 일반적으로 텍스트, 오디오, 동영상 등 복잡한 사용자 제작 콘텐츠를 쉽게 저장하고 조작하며 색인을 생성할 수 있는 형식으로 변환하는 데 사용되는 숫자 표현입니다. 이러한 표현은 임베딩 모델에 의해 생성되며, 콘텐츠의 두 부분이 의미상 유사하면 각각에 해당하는 임베딩이 임베딩 벡터 공간에서 서로 근접한 위치에 배치됩니다. 그런 다음 벡터 임베딩의 색인이 생성되어 유사성을 기반으로 데이터를 효율적으로 필터링하는 데 사용됩니다.

예를 들어 의류 소매업체가 사용자의 장바구니에 있는 품목과 유사한 제품 추천을 표시하고자 하는 경우를 예로 들어보겠습니다. 이제 Vertex AI의 선행 학습된 텍스트 임베딩 모델을 사용하면 제품 설명을 토대로 임베딩을 생성할 수 있습니다. pgvector 확장 프로그램을 사용하면 Cloud SQL 또는 AlloyDB 데이터베이스에 이러한 임베딩을 저장하고 색인을 생성할 수 있으며 유사한 제품을 쉽게 쿼리할 수 있습니다. 이러한 임베딩은 운영 데이터와 함께 저장되므로 사용자와 제품에 대해 알고 있는 정보를 기반으로 결과를 더욱 적합하게 맞춤설정할 수 있습니다. 예를 들어 가격이나 카테고리 같은 정형 데이터를 필터링하거나 사용자 프로필, 인벤토리 데이터 같은 실시간 운영 데이터와 결과를 조인하여 사용자의 니즈에 해당하면서 재고가 있는 상품만 표시되도록 할 수 있습니다.

또한 벡터 임베딩은 지난해 전 세계적으로 선풍적인 인기를 끌었던 선행 학습된 LLM을 개발자가 활용할 수 있도록 지원하는 데 중요한 역할을 합니다. LLM은 방대한 양의 데이터를 학습한 모델이며 번역, 요약, 질의 응답, 창작과 같은 사용 사례에 적용할 수 있습니다. ML에 대한 전문 지식이나 커스텀 모델 학습 없이도 애플리케이션의 특정 니즈에 맞게 맞춤설정할 수 있기 때문에 ML 기반 애플리케이션 개발에 유용합니다. 사용자는 프롬프트를 전략적으로 작성하여 LLM의 출력을 맞춤설정할 수 있으며, 그런 다음 프롬프트를 통해 문서, 사용자 프로필, 채팅 기록 등과 같은 애플리케이션별 문맥 데이터를 사용하여 LLM의 출력 근거를 제어할 수 있습니다.

한 가지 염두에 두어야 하는 점은 LLM은 상태 개념이 없다는 것입니다. 그러나 모든 챗봇 사용자가 알고 있듯, 대화를 이어가고 관련성 높은 응답을 제공하려면 채팅 기록이 필요합니다. 모델에는 엄격한 입력 토큰 제한이 있기 때문에 프롬프트에 전체 컨텍스트를 제공할 수 없는 경우도 있습니다. 임베딩을 사용하면 문서나 장기간의 채팅 기록과 같은 대규모 컨텍스트를 데이터베이스에 저장하고 필터링하여 가장 관련성 높은 정보를 찾을 수 있습니다.  그런 다음 가장 관련성이 높은 채팅 기록 또는 문서를 모델에 피드하여 장기 메모리 및 비즈니스 관련 지식을 시뮬레이션할 수 있습니다.

주요 이점

Cloud SQL 및 AlloyDB 데이터베이스에 벡터 지원이 기본 제공되므로 애플리케이션과 사용자 상태를 인식하는 AI 지원 경험을 만들 수 있습니다. 기본 벡터 지원 외에도 Cloud SQL 및 AlloyDB는 다음과 같은 이점을 제공합니다.

  • 엔터프라이즈급 서빙 스택: Cloud SQL 및 AlloyDB는 지연 시간이 짧은 서빙 애플리케이션을 구동할 수 있는 완전 관리형 서비스입니다. 두 데이터베이스 모두 자동 프로비저닝 및 유지보수를 제공하여 데이터베이스 비용을 절감할 뿐만 아니라 Google의 SRE팀이 연중무휴 지원하는 고가용성, 데이터 보호, 기본 제공 보안과 같은 엔터프라이즈 기능을 제공합니다.
  • 편의성과 친숙함: PostgreSQL의 벡터 지원은 사용자가 기존 운영 데이터베이스를 사용하여 AI 지원 경험을 제공하고, PostgreSQL 생태계에서 누릴 수 있는 모든 요소를 포함해 기존 PostgreSQL 기술을 활용할 수 있음을 의미합니다. 
  • 운영 데이터와의 긴밀한 통합: Google은 최상 수준의 AI 지원 사용자 경험이 애플리케이션과 긴밀하게 통합되면 실시간 트랜잭션 데이터를 활용하여 사용자 경험을 향상시킬 수 있다고 생각합니다. PostgreSQL용 AlloyDB와 PostgreSQL용 Cloud SQL은 AI를 기존 운영 데이터베이스에 직접 임베딩하고, 정형 및 비정형 운영 데이터에서 강력한 쿼리를 지원하고, 벡터 조건자를 표준 PostgreSQL 필터와 결합하여 이를 실현합니다.

PostgreSQL용 AlloyDB 또는 PostgreSQL용 Cloud SQL에서 엔터프라이즈 워크로드를 실행하면 기존의 완전 관리형 운영 데이터베이스와 함께 벡터 임베딩의 강력한 기능을 활용할 수 있습니다.

Vertex AI와 통합

Cloud SQL 및 AlloyDB의 벡터 지원은 텍스트와 이미지로 선행 학습된 기반 모델과 임베딩 모델을 포함하여 Vertex AI의 생성형 AI와 함께 사용하면 특히 효과적입니다. 또한 AlloyDB를 사용하면 처리량이 높고 지연 시간이 짧은 보강된 트랜잭션을 위해 데이터베이스에서 직접 커스텀 Vertex AI 모델을 호출할 수 있습니다. 이러한 조합은 대규모 언어 모델을 애플리케이션에 통합하는 도구 모음을 제공합니다.

또한 업계를 선도하는 대규모 저지연 벡터 데이터베이스인 Vertex AI Matching Engine과 벡터 지원을 연계하여 사용하면 임베딩을 저장하고 벡터 유사성 일치를 수행할 수 있습니다. 이제 Cloud SQL 및 AlloyDB는 신뢰할 수 있는 PostgreSQL 데이터베이스를 사용해 애플리케이션에서 직접 벡터 임베딩을 사용하고, 실시간 운영 데이터와 관계형 데이터베이스 기능을 활용하여 보다 풍부한 경험을 선사하는 유사한 기능을 제공합니다.

시작하기

간편하게 시작할 수 있습니다. 사용할 수 있는 데이터베이스 인스턴스가 없는 경우 Cloud SQL 또는 AlloyDB 콘솔에서 데이터베이스 인스턴스를 만드세요. 그 외의 경우에는 PostgreSQL psql 도구를 사용해 pgvector 확장 프로그램을 설치하면 바로 시작할 수 있습니다. 시작하는 데 도움이 되는 Google Cloud 블로그 게시물데모 동영상을 참고하고, 상세한 튜토리얼은 Codelab을 살펴보세요.

게시 위치