이 페이지에서는 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를 구성하려면 다음 단계를 따르세요.
Google Cloud로 서비스 계정을 만듭니다.
JSON 형식의 서비스 계정 키를 만들고 다운로드합니다.
키를 파일 시스템의 영구 위치에 저장합니다. 이 파일은 AlloyDB Omni 서버의 전체 기간 동안 이 위치에 있습니다.
파일 시스템의 위치를 기록해 둡니다. 다음 단계에서 필요합니다.
적절한 프로젝트 및 서비스 계정에 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를 통합하려면 다음 단계를 따르세요.
클라우드 기반 모델을 쿼리하도록 AlloyDB Omni 구성하기에 나와 있는 모든 단계를 완료했는지 확인합니다.
기본 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
구성 파일 사본을 수정하여 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
키 및 구성 파일의 파일 시스템 권한을 조정합니다.
sudo chmod +r my-postgres.conf
sudo chmod +r KEY_PATH
KEY_PATH
을 호스트 파일 시스템의 서비스 계정 비공개 키 파일 경로로 바꿉니다. 이 키는 이 절차의 앞부분에서 만들고 다운로드한 키입니다.컨테이너에 마운트된 키 및 구성 파일을 설치합니다.
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_dims
는 embedding()
에서 반환된 배열의 크기를 반환합니다.
text-embedding-005
모델은 768개의 측정기준이 있는 출력을 반환하므로 출력은 [768]
입니다.