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

AlloyDB Omni의 AlloyDB AI가 가진 힘

2023년 11월 23일
https://storage.googleapis.com/gweb-cloudblog-publish/images/databases_2022_HTRs5Tr.max-2500x2500_1.max.max-2500x2500.png
Gleb Otochkin

Cloud Advocate, Databases

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

소개

생성형 AI를 실제로 업무에 활용할 수 있을까요? 아니면 그냥 재미로 플레이 하는 미완성 데모의 가치밖에 없을까요?

은행, 소매, 엔터테인먼트 등의 업계에서 AI를 사용하면 운영 데이터를 다른 각도로 바라볼 수도 있고 특정 유형의 작업을 오프로드해 생산성을 높일 수도 있습니다. 전통적으로 사람이 직접 처리하던 여러 일상 업무를 이 새로운 기술로 단순화하고 간소화할 수 있습니다. 이제 모델을 쉽게 사용할 수 있게 되었고 개발자 도구든 데이터베이스의 기본 인터페이스든 이미 익숙한 도구로 바로 사용할 수 있으므로 생성형 AI를 이용하는 애플리케이션을 구축하기가 훨씬 쉬워졌습니다. 최근에 프리뷰 버전으로 발표된 AlloyDB AI 기능을 포함해 PostgreSQL 호환 관계형 데이터베이스인 AlloyDB Omni의 사용 사례를 살펴보겠습니다.

AI의 지원 방식

온라인 판매업체에서 고객 경험을 개선하기 위해 데이터에 정보를 추가하거나, 제품 세부정보를 더 제공하거나, 제품 설명에 짧게 요약을 덧붙이기 원한다고 가정해 보겠습니다. 상품 수가 적을 때는 어렵지 않은 일이지만 인벤토리에 있는 제품이 수천 개라면 일이 커질 수 있습니다. 어떻게 하면 프로세스를 개선하고 효율성을 더 높일 수 있을까요? 이 예시는 생성형 AI의 좋은 사용 사례가 될 수 있을 것으로 보입니다.

이 목표를 달성하기 위해 데이터베이스에서 AI 모델을 호출할 수 있다면 어떨까요? 또한 AlloyDB를 사용해서 다운로드 가능한 버전인 AlloyDB Omni를 통해 자체 데이터 센터나 클라우드에서 이러한 작업을 수행할 수 있다면요? 맞습니다. AlloyDB의 생성형 AI 기능 모음인 AlloyDB AI를 사용하면 데이터베이스에서 직접 이러한 호출을 수행할 수 있습니다. 이제 작동 방식을 설명해 드리겠습니다.

예를 들어 대여 및 스트리밍 서비스의 백엔드로 AlloyDB Omni 데이터베이스를 사용하는 중이며 이 데이터베이스에 'titles'라는 이름의 테이블이 있고 여기에 제공되는 TV 프로그램 목록이 있다고 가정해 보겠습니다. 이 테이블에는 제목 열과 설명 열이 있습니다. 설명이 좀 짧기 때문에 이 설명을 확장하여 각 TV 프로그램에 대해 보다 자세한 내용을 제공하려고 합니다. 생성형 AI를 위한 Vertex AI 기반 모델 중 하나인 'text-bison' 대규모 언어 모델(LLM)을 사용하여 확장된 설명을 작성하고 제목과 원래 설명을 프롬프트로 사용해 AlloyDB Omni 데이터베이스에서 모델을 직접 호출하겠습니다.

배포 및 설치

AlloyDB Omni 배포부터 시작합니다. 설치 및 설정은 프로세스가 간단하며 이 문서에 자세히 설명되어 있으므로 여기에서 중복해 다루지는 않겠습니다. 하지만 최종 'database-server install' 명령어를 실행하기 전에 Vertex AI 통합을 사용 설정하는 몇 가지 추가 단계를 수행해야 합니다.

개략적으로 설명하자면 AlloyDB Omni 인스턴스가 Vertex AI API를 호출할 수 있어야 하며 Google Cloud에서 인증과 승인이 필요 합니다. 이 단계는 AlloyDB Omni 문서에 나와 있습니다.

  • Vertex AI API가 사용 설정된 Google Cloud 프로젝트의 서비스 계정이 필요합니다.
  • 이 서비스 계정에 Vertex AI 사용 권한을 부여합니다.
  • JSON 형식의 서비스 계정 키를 만들어 AlloyDB Omni 데이터베이스 서버에 저장합니다.
  • 그런 다음 AlloyDB CLI 'database-server install' 명령어의 키 경로를 사용해 인스턴스에 Vertex AI 통합을 사용 설정합니다.

다음은 이 아키텍처의 개략적인 다이어그램입니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_v1_27YJyO1.max-1200x1200.jpg

AlloyDB Omni ML 통합

Vertex AI와의 통합을 사용 설정한 후 애플리케이션에 커스텀 또는 사전 빌드된 Vertex AI 기반(foundation) 모델을 사용할 수 있습니다.

데모 실행

첫 번째 시도

다시 예시로 돌아가 보겠습니다. 데모 쿼리를 실행하기 위해 영화와 TV 프로그램 제목 몇 가지를 샘플 AlloyDB Omni 데이터베이스에 로드했습니다. 'titles' 테이블에는 TV 프로그램 이름이 있는 제목 열과 영화 또는 TV 프로그램에 대한 간략한 설명이 있는 설명 열이 있습니다. '피노키오'의 원래 설명은 다음과 같습니다.

로드 중...

이제 웹사이트의 각 영화 또는 TV 프로그램에 대해 보다 자세한 설명을 제공하려고 합니다. 이를 위해 추가 열을 만들고 앞서 설명한 제목 및 설명 열을 프롬프트로 Vertex AI의 ‘text-bison’ 모델을 통해 생성한 데이터를 추가 열에 채웁니다.

개선하기

프롬프트 자체는 매우 간단하며 'Can you create a summary for the <column title value> based on the following description - <column description value>?' 줄을 따릅니다. 이 프롬프트는 'ml_predict_row' 함수의 두 번째 인수로 사용됩니다. 첫 번째 인수는 Vertex AI 모델의 엔드포인트, 즉 Google Cloud에서의 모델 위치를 나타냅니다. 이 경우에는 'publishers/google/models/text-bison'입니다.

이 함수가 '피노키오'에 대해 반환하는 결과는 다음과 같습니다.

로드 중...

정보가 추가되었으며 이것만으로도 충분할 수 있습니다. 하지만 아시다시피 생성형 AI의 모든 것은 프롬프트에 의해 결정됩니다. 좀 더 자세한 설명을 요청하면 어떻게 될까요? 다음은 'elaborate'라는 단어를 추가해 약간 수정한 프롬프트와 그 결과입니다.

로드 중...

이 출력은 '피노키오'의 줄거리를 거의 다 보여주기 때문에 좀 더 주의가 필요할 수 있습니다. 이 모델에서는 요청 및 기타 모델 관련 파라미터에 대해 응답의 관련성을 나타내는 temperature 등 다수의 파라미터를 허용합니다. 'text-bison' 모델과 파라미터에 대한 자세한 내용은 이 문서에서 확인할 수 있습니다.

시작하기

이는 AlloyDB AI가 일부 작업의 속도를 높이는 데 어떤 도움을 주는지 보여주는 간단한 예시에 불과합니다. 훨씬 더 많은 사용 사례를 활용하여 비즈니스 요구사항을 충족하고 아이디어를 구현할 수 있습니다. Vertex AI에는 다양한 유형의 데이터 및 반환되는 값과 함께 사용할 수 있는 기반 모델 모음이 있습니다. 예를 들면 비슷한 값의 벡터 검색 모델과 이미지 작업 모델 등이 있습니다. 자세한 내용은 Vertex AI 문서에서 확인할 수 있습니다.

Vertex AI 문서에 포함된 튜토리얼에 따라 자체 데이터를 가져와 사례에 맞게 기반 모델 중 하나를 튜닝하여 실습해 보세요. 먼저 기반 모델 튜닝 튜토리얼부터 시작하는 것이 좋습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_gkoTj7w.max-1800x1800.png

Vertex AI 기반 모델 조정

AlloyDB 신규 사용자라면 클라우드 기반 버전 무료 체험판 이용 자격이 있을 수 있습니다. 또는 AlloyDB Omni 무료 개발자 버전을 다운로드할 수도 있습니다. 시작하려면 이 페이지로 이동하여 무료 개발자 버전을 선택하고 시작해보세요.

게시 위치