AlloyDB Omni에 AlloyDB AI 설치

이 페이지에서는 AlloyDB Omni를 설치하고 AlloyDB AI를 통합하는 방법을 보여줍니다.

AlloyDB AI는 엔터프라이즈 생성형 AI 애플리케이션을 빌드할 수 있는 AlloyDB Omni에 포함된 기능 모음입니다. AlloyDB의 ML 기능에 관한 자세한 내용은 생성형 AI 애플리케이션 빌드를 참고하세요.

AlloyDB AI가 포함된 AlloyDB Omni를 사용하면 원격 ML 모델을 쿼리하여 ML 모델에서 생성된 온라인 예측 및 텍스트 임베딩을 사용할 수 있습니다. AlloyDB AI가 포함된 AlloyDB Omni는 이미지와 같은 다른 콘텐츠의 벡터 임베딩도 처리할 수 있습니다(예: google_ml.predict_row 인터페이스를 사용하고 쿼리에서 직접 번역하는 경우).

AlloyDB AI와 함께 AlloyDB Omni를 설치할 위치에 따라 다음 옵션 중 하나를 선택합니다.

원격 모델을 쿼리하도록 AlloyDB Omni 인스턴스 구성

원격 모델을 쿼리하도록 AlloyDB Omni를 구성하려면 다음 단계를 따르세요.

  1. Google Cloud로 서비스 계정을 만듭니다.

  2. JSON 형식의 서비스 계정 키를 만들고 다운로드합니다.

  3. 키를 파일 시스템의 영구 위치에 저장합니다. 이 파일은 AlloyDB Omni 서버의 전체 기간 동안 이 위치에 있습니다.

    파일 시스템의 위치를 기록해 둡니다. 다음 단계에서 필요합니다.

  4. 적절한 프로젝트 및 서비스 계정에 Vertex AI Identity and Access Management (IAM) 권한을 추가합니다.

       gcloud projects add-iam-policy-binding PROJECT_ID \
           --member="serviceAccount:SERVICE_ACCOUNT_ID" \
           --role="roles/aiplatform.user"

    다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.

    • SERVICE_ACCOUNT_ID: 이전 단계에서 만든 서비스 계정의 ID입니다. 여기에는 전체 @PROJECT_ID.iam.gserviceaccount.com 접미사가 포함됩니다(예: my-service@my-project.iam.gserviceaccount.com).

AlloyDB AI로 AlloyDB Omni 설치

AlloyDB Omni를 설치하고 AlloyDB AI를 통합하려면 다음 단계를 따르세요.

  1. 클라우드 기반 모델을 쿼리하도록 AlloyDB Omni 구성하기에 나와 있는 모든 단계를 완료했는지 확인합니다.

  2. 기본 AlloyDB Omni 구성 파일의 로컬 사본을 만듭니다.

    Docker

       docker run -i --rm google/alloydbomni cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf

    Podman

       podman run -i --rm google/alloydbomni cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
  3. 구성 파일 사본을 수정하여 AlloyDB AI 통합을 위한 디렉티브를 추가합니다.

       echo "omni_enable_ml_agent_process = 'on'" >> my-postgres.conf
       echo "omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json'" >> my-postgres.conf
  4. 키 및 구성 파일의 파일 시스템 권한을 조정합니다.

       sudo chmod +r my-postgres.conf
       sudo chmod +r KEY_PATH

    KEY_PATH을 호스트 파일 시스템의 서비스 계정 비공개 키 파일 경로로 바꿉니다. 이 키는 이 절차의 앞부분에서 만들고 다운로드한 키입니다.

  5. 컨테이너에 마운트된 키 및 구성 파일을 설치합니다.

    Docker

      docker run --name CONTAINER_NAME -e POSTGRES_PASSWORD=NEW_PASSWORD -p HOST_PORT:5432 -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -v "FULL_KEY_PATH":/etc/postgresql/private-key.json -d google/alloydbomni -c 'config_file=/etc/postgresql/postgresql.conf'

    다음을 바꿉니다.

    • CONTAINER_NAME: 호스트 머신의 컨테이너 레지스트리에 이 새로운 간소화된 AlloyDB Omni 설치 방법 컨테이너를 할당할 이름입니다(예: my-omni-1).

    • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.

    • HOST_PORT: * HOST_PORT: 컨테이너가 포트 5432를 게시하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.

    • FULL_KEY_PATH: 호스트 시스템의 서비스 계정 비공개 키 파일에 대한 전체 파일 시스템 경로입니다.

    Podman

      podman run --name CONTAINER_NAME -e POSTGRES_PASSWORD=NEW_PASSWORD -p HOST_PORT:5432 -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -v "FULL_KEY_PATH":/etc/postgresql/private-key.json -d google/alloydbomni -c 'config_file=/etc/postgresql/postgresql.conf'

    다음을 바꿉니다.

    • CONTAINER_NAME: 호스트 머신의 컨테이너 레지스트리에 이 새로운 간소화된 AlloyDB Omni 설치 방법 컨테이너를 할당할 이름입니다(예: my-omni-1).

    • NEW_PASSWORD: 새 컨테이너의 postgres 사용자 생성 후 할당된 비밀번호입니다.

    • HOST_PORT: 컨테이너가 자체 포트 5432를 게시해야 하는 호스트 머신의 TCP 포트입니다. 호스트 머신에서도 PostgreSQL 기본 포트를 사용하려면 5432를 지정합니다.

    • FULL_KEY_PATH: 호스트 시스템의 서비스 계정 비공개 키 파일에 대한 전체 파일 시스템 경로입니다.

컨테이너화된 psql를 사용하여 연결

자체 컨테이너화된 psql 사본을 사용하여 AlloyDB Omni 데이터베이스 서버에 연결하려면 다음 명령어를 실행합니다.

Docker

  docker exec -it CONTAINER_NAME psql -U postgres

CONTAINER_NAME을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름으로 바꿉니다.

Podman

  podman exec -it CONTAINER_NAME psql -U postgres

CONTAINER_NAME을 AlloyDB Omni 컨테이너를 설치할 때 할당한 이름으로 바꿉니다.

AlloyDB AI 설치를 통해 AlloyDB Omni 확인

설치가 완료되었으며 모델 예측을 사용하는지 확인하려면 다음을 입력합니다.

   CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

   SELECT array_dims(embedding( 'text-embedding-005', 'AlloyDB AI')::real[]);

결과는 다음과 유사합니다.

      array_dims
      ------------
      [1:768]
      (1 row) 

이전 쿼리에서 embedding() 호출은 입력 텍스트 AlloyDB AI의 임베딩을 생성합니다. array_dimsembedding()에서 반환된 배열의 크기를 반환합니다. text-embedding-005 모델은 768개의 측정기준이 있는 출력을 반환하므로 출력은 [768]입니다.

다음 단계