이 문서에서는 Vertex AI 텍스트 임베딩 API를 사용하여 텍스트 임베딩을 만드는 방법을 설명합니다.
Vertex AI 텍스트 임베딩 API는 밀집 벡터 표현을 사용합니다. 예를 들어 gemini-embedding-001에서는 3072차원 벡터를 사용합니다. 고밀도 벡터 임베딩 모델은 대규모 언어 모델에서 사용하는 것과 유사한 심층 학습 방법을 사용합니다. 단어를 숫자에 직접 매핑하는 희소 벡터와 달리 밀집 벡터는 텍스트의 의미를 더 잘 나타내도록 설계되었습니다. 생성형 AI에서 밀집 벡터 임베딩을 사용할 때의 이점은 직접 단어 또는 문법 일치를 검색하는 대신 문구의 언어가 다른 경우에도 쿼리의 의미와 일치하는 문구를 더 효과적으로 검색할 수 있다는 것입니다.
벡터가 정규화되므로 코사인 유사성, 내적 또는 유클리드 거리를 사용하여 동일한 유사성 순위를 제공할 수 있습니다.
- 임베딩에 대해 자세히 알아보려면 임베딩 API 개요를 참고하세요.
- 텍스트 임베딩 모델에 대한 자세한 내용은 텍스트 임베딩을 참조하세요.
- 각 임베딩 모델에서 지원하는 언어에 대한 자세한 내용은 지원되는 텍스트 언어를 참조하세요.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
- 임베딩 작업의 태스크 유형을 선택합니다.
- 비율 제한에 대한 자세한 내용은 Vertex AI의 생성형 AI 비율 제한을 참조하세요.
- 임베딩을 일괄 예측하려면 일괄 텍스트 임베딩 예측 가져오기를 참조하세요.
- 멀티모달 임베딩에 대한 자세한 내용은 멀티모달 임베딩 가져오기를 참조하세요.
- 임베딩을 조정하려면 텍스트 임베딩 조정을 참조하세요.
text-embedding-005
및text-multilingual-embedding-002
에 대한 관련 연구에 대해 자세히 알아보려면 연구 논문 Gecko: 대규모 언어 모델에서 추출한 다목적 텍스트 임베딩을 참조하세요.
지원되는 모델
다음 모델을 사용하여 텍스트 임베딩을 가져올 수 있습니다.
모델 이름 | 설명 | 출력 측정기준 | 최대 시퀀스 길이 | 지원되는 텍스트 언어 |
---|---|---|---|---|
gemini-embedding-001 |
영어, 다국어, 코드 작업에서 최첨단 성능을 제공합니다. 이전의 전문 모델(예: text-embedding-005 , text-multilingual-embedding-002 )을 통합하고 각 도메인에서 더 나은 성능을 달성합니다. 자세한 내용은 기술 보고서를 참고하세요. |
최대 3,072개 | 토큰 2048개 | 지원되는 텍스트 언어 |
text-embedding-005 |
영어 및 코드 작업에 특화되어 있습니다. | 최대 768 | 토큰 2048개 | 영어 |
text-multilingual-embedding-002 |
다국어 작업에 특화되어 있습니다. | 최대 768 | 토큰 2048개 | 지원되는 텍스트 언어 |
우수한 임베딩 품질을 위해 gemini-embedding-001
은 최고의 성능을 제공하도록 설계된 대규모 모델입니다. gemini-embedding-001
는 요청당 하나의 인스턴스를 지원합니다.
텍스트 스니펫의 텍스트 임베딩 가져오기
Vertex AI API 또는 Python용 Vertex AI SDK를 사용하여 텍스트 스니펫의 텍스트 임베딩을 가져올 수 있습니다.
API 한도
요청마다 입력 텍스트가 250개로 제한됩니다.
API의 최대 입력 토큰 한도는 20,000개입니다.
이 한도를 초과하는 입력은 400 오류가 발생합니다. 각 개별 입력 텍스트는 토큰 2,048개로 제한되며 초과하는 부분은 자동으로 잘립니다. autoTruncate
를 false
로 설정하여 자동 잘림을 사용 중지할 수도 있습니다.
자세한 내용은 텍스트 임베딩 한도를 참고하세요.
임베딩 차원 선택
모든 모델은 기본적으로 전체 길이 임베딩 벡터를 생성합니다. gemini-embedding-001
의 경우 이 벡터는 3,072차원이고 다른 모델은 768차원 벡터를 생성합니다. 하지만 output_dimensionality
매개변수를 사용하면 사용자가 출력 삽입 벡터의 크기를 제어할 수 있습니다.
더 작은 출력 크기를 선택하면 저장용량을 절약하고 다운스트림 애플리케이션의 계산 효율성을 높일 수 있으며 품질 면에서는 거의 손실이 없습니다.
다음 예시에서는 gemini-embedding-001
모델을 사용합니다.
Python
설치
pip install --upgrade google-genai
자세한 내용은 SDK 참고 문서를 참조하세요.
Vertex AI에서 Gen AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
벡터 데이터베이스에 임베딩 추가
임베딩을 생성한 후 벡터 검색과 같은 벡터 데이터베이스에 임베딩을 추가할 수 있습니다. 이렇게 하면 지연 시간이 짧은 검색이 가능하며, 데이터 크기가 커질수록 매우 중요합니다.
벡터 검색에 대한 자세한 내용은 벡터 검색 개요를 참조하세요.