LlamaIndex로 Vertex AI 엔드포인트에 배포된 임베딩과 상호작용하기

LlamaIndex로 Vertex AI 엔드포인트에 배포된 임베딩과 상호작용하기

Vertex AI 엔드포인트는 임베딩 같은 머신러닝 모델을 배포해 새 데이터에 대한 예측을 할 수 있게 해주는 관리 리소스예요.

이 노트북은 LlamaIndex를 활용해 VertexEndpointEmbedding 클래스로 임베딩 엔드포인트와 상호작용하는 방법을 보여드려요.

출처: 문서

본문

설정 (Setting Up)

Colab에서 이 노트북을 여는 경우라면 LlamaIndex 🦙 설치가 필요할 거예요.

%pip install llama-index-embeddings-vertex-endpoint
! pip install llama-index

Vertex AI에 배포된 모델과 상호작용하려면 엔드포인트 정보(endpoint ID, project ID, region)를 지정해야 해요.

ENDPOINT_ID = "<-YOUR-ENDPOINT-ID->"
PROJECT_ID = "<-YOUR-PROJECT-ID->"
LOCATION = "<-YOUR-GCP-REGION->"

엔드포인트에 연결하려면 자격 증명을 제공해야 해요. 다음 중 하나로 할 수 있어요.

  • service_account_file 파라미터를 지정해 서비스 계정 JSON 파일을 사용하세요.
  • service_account_info 파라미터를 통해 서비스 계정 정보를 직접 제공하세요.

서비스 계정 파일 사용 예시:

from llama_index.embeddings.vertex_endpoint import VertexEndpointEmbedding


SERVICE_ACCOUNT_FILE = "<-YOUR-SERVICE-ACCOUNT-FILE-PATH->.json"


embed_model = VertexEndpointEmbedding(
    endpoint_id=ENDPOINT_ID,
    project_id=PROJECT_ID,
    location=LOCATION,
    service_account_file=SERVICE_ACCOUNT_FILE,
)

서비스 계정 정보 직접 사용 예시:

from llama_index.embeddings.vertex_endpoint import VertexEndpointEmbedding


SERVICE_ACCOUNT_INFO = {
    "private_key": "<-PRIVATE-KEY->",
    "client_email": "<-SERVICE-ACCOUNT-EMAIL->",
    "token_uri": "https://oauth2.googleapis.com/token",
}


embed_model = VertexEndpointEmbedding(
    endpoint_id=ENDPOINT_ID,
    project_id=PROJECT_ID,
    location=LOCATION,
    service_account_info=SERVICE_ACCOUNT_INFO,
)

기본 사용법 (Basic Usage)

get_text_embedding 호출

embeddings = embed_model.get_text_embedding(
    "Vertex AI is a managed machine learning (ML) platform provided by Google Cloud. It allows data scientists and developers to build, deploy, and scale machine learning models efficiently, leveraging Google's ML infrastructure."
)
embeddings[:10]
[0.011612358,
 0.01030837,
 -0.04710829,
 -0.030719217,
 0.027658276,
 -0.031597693,
 0.012065322,
 -0.037609763,
 0.02321099,
 0.012868305]

get_text_embedding_batch 호출

embeddings = embed_model.get_text_embedding_batch(
    [
        "Vertex AI is a managed machine learning (ML) platform provided by Google Cloud. It allows data scientists and developers to build, deploy, and scale machine learning models efficiently, leveraging Google's ML infrastructure.",
        "Vertex is integrated with llamaIndex",
    ]
)
len(embeddings)
2

더 알아보기 (Learn more)