반응형
개요
GPT 모델은 input과 output의 토큰 수에 따라 비용을 다르게 책정하고 있다.
여기서 한글은 보통 글자 하나가 토큰 1개로 계산되는 반면, 영어 같은 경우는 단어들이 토큰 1개로 계산되는 경우가 많다.
문제 상황
문서를 요약하기 위해 GPT를 사용 중인데, 일부 문서는 GPT 모델에서 허용하는 최대 토큰 수를 넘는 경우가 있었다.
따라서 문서의 내용을 잘라내서 GPT에 입력해야 했는데, 내용을 최대한 반영하기 위해 token 수를 계산할 필요가 있었다.
방법
구글링해보니 GPT에 사용된 tokenizer 인코딩 방식이 오픈돼 있었고, tiktoken 라이브러리를 통해 토큰 수를 계산할 수 있다.
최신 버전 GPT-4o의 경우 "o200k_base" 인코딩 방식이 적용돼 있다고 한다 (그 외 모델의 인코딩 방식은 다음 페이지를 참조).
아래의 예제 코드는 인코딩 방식(encoding_name) 파라미터를 이용해 주어진 문자열의 토큰 수를 계산하는 코드다.
import tiktoken
def get_token_nums(string: str, encoding_name: str = 'o200k_base') -> int:
encoding = tiktoken.get_encoding(encoding_name)
num_tokens = len(encoding.encode(string))
return num_tokens
print(num_tokens_from_string("I want to know token numbers of this sentence."))
>> 10
조금 더 간편하게 GPT 모델 이름(model_name) 으로도 문자열의 토큰 수를 계산할 수 있다.
import tiktoken
def get_token_numbers(string: str, model_name: str = "gpt-4o") -> int:
encoding = tiktoken.encoding_for_model(model_name)
num_tokens = len(encoding.encode(string))
return num_tokens
print(num_tokens_from_string("I want to know token numbers of this sentence."))
>> 10
참조
반응형
'Study > 딥러닝' 카테고리의 다른 글
[대화형 AI] TaskWeaver에 대해 알아보자. (0) | 2024.03.16 |
---|---|
[대화형 AI] Microsoft Copilot에 대해 알아보자. (0) | 2024.03.11 |
[ChatGPT] Error code 400 Failed to index file: Unsupported file 문제 (0) | 2024.03.05 |
[온라인 강의] 스탠포드 대학 딥러닝 강의 목록 (2) | 2022.11.04 |
[CS230] Deep Learning Lecture 6 Deep Learning Project Strategy (0) | 2022.09.21 |