토큰 나열 및 집계

Python용 Vertex AI SDK (1.60.0 이상)에는 통합 토큰라이저가 포함되어 있어 API를 호출하지 않고도 로컬에서 프롬프트의 토큰을 나열하고 집계할 수 있습니다. 이 페이지에서는 Python용 Vertex AI SDK를 사용하여 프롬프트의 토큰 및 토큰 ID를 나열하는 방법과 프롬프트의 총 토큰 수를 가져오는 방법을 보여줍니다.

토큰 및 토큰 목록 및 집계의 중요성

생성형 AI 모델은 처리를 위해 프롬프트의 텍스트 및 기타 데이터를 토큰이라는 단위로 분할합니다. 데이터가 토큰으로 변환되는 방식은 사용된 토크나이저에 따라 달라집니다. 토큰은 문자, 단어, 어구일 수 있습니다.

각 모델에는 프롬프트 및 응답에서 처리할 수 있는 최대 토큰 수가 포함됩니다. 프롬프트의 토큰 수를 알면 이 한도를 초과했는지 여부를 알 수 있습니다. 또한 토큰을 집계하면 프롬프트의 청구 가능 문자도 반환되므로 비용을 추정하는 데 도움이 됩니다.

토큰 목록은 프롬프트가 분류된 토큰 목록을 반환합니다. 나열된 각 토큰은 문제 해결을 수행하고 모델 동작을 분석하는 데 도움이 되는 토큰 ID와 연결됩니다.

지원되는 모델

다음 표에는 토큰 목록 및 토큰 집계를 지원하는 모델이 나와 있습니다.

토큰 나열 토큰 수 집계
gemini-1.5-flash-002 gemini-1.5-flash-002
gemini-1.5-pro-002 gemini-1.5-pro-002
gemini-1.0-pro-002
gemini-1.0-pro-vision-001

프롬프트의 토큰 및 토큰 ID 목록 가져오기

다음 코드 샘플은 프롬프트의 토큰 및 토큰 ID 목록을 가져오는 방법을 보여줍니다. 프롬프트에는 텍스트만 포함되어야 합니다. 멀티모달 프롬프트는 지원되지 않습니다.

Python

Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.

from vertexai.preview.tokenization import get_tokenizer_for_model

# init local tokenzier
tokenizer = get_tokenizer_for_model("gemini-1.5-flash-001")

# Count Tokens
prompt = "why is the sky blue?"
response = tokenizer.count_tokens(prompt)
print(f"Tokens count: {response.total_tokens}")
# Example response:
#       Tokens count: 6

# Compute Tokens
response = tokenizer.compute_tokens(prompt)
print(f"Tokens list: {response.tokens_info}")
# Example response:
#     Tokens list: [TokensInfo(token_ids=[18177, 603, 573, 8203, 3868, 235336],
#          tokens=[b'why', b' is', b' the', b' sky', b' blue', b'?'], role='user')]

프롬프트의 토큰 수 및 청구 가능한 문자 가져오기

다음 코드 샘플은 프롬프트의 토큰 수 및 청구 가능한 문자 수를 가져오는 방법을 보여줍니다. 텍스트 전용 프롬프트와 멀티모달 프롬프트가 모두 지원됩니다.

Python

Vertex AI SDK for Python을 설치하거나 업데이트하는 방법은 Vertex AI SDK for Python 설치를 참조하세요. 자세한 내용은 Python API 참고 문서를 확인하세요.

from vertexai.preview.tokenization import get_tokenizer_for_model

# Using local tokenzier
tokenizer = get_tokenizer_for_model("gemini-1.5-flash-002")

prompt = "hello world"
response = tokenizer.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")
# Example response:
# Prompt Token Count: 2

prompt = ["hello world", "what's the weather today"]
response = tokenizer.count_tokens(prompt)
print(f"Prompt Token Count: {response.total_tokens}")
# Example response:
# Prompt Token Count: 8