openai의 웹 tokenizer는 버전 선택이 되지않아 라이브러리 호출로 사용했다.
코드와 결과는 다음과 같다.
import tiktoken
def old_tokenize(prompt):
tz = tiktoken.get_encoding("gpt2")
return len(tz.encode(prompt))
def middle_tokenize(prompt):
tz = tiktoken.get_encoding("cl100k_base")
tz = tiktoken.encoding_for_model("gpt-3.5-turbo")
return len(tz.encode(prompt))
def new_tokenize(prompt):
tz = tiktoken.get_encoding("cl100k_base")
tz = tiktoken.encoding_for_model("gpt-4")
return len(tz.encode(prompt))
if __name__ == "__main__":
result1 = old_tokenize("나는 사과가 좋다")
result2 = middle_tokenize("나는 사과가 좋다")
result3 = new_tokenize("나는 사과가 좋다")
result4 = old_tokenize("do you know kimchi?")
result5 = middle_tokenize("do you know kimchi?")
result6 = new_tokenize("do you know kimchi?")
한국어 문장
gpt-2: 19
gpt-3.5: 8
gpt-4: 8
영어 문장
gpt-2: 7
gpt-3.5: 6
gpt-4: 6
한국어 문장을 넣었을 때는 2와 3.5는 차이가 크고, 3.5와 4는 차이가 없었다.
영어 문장을 넣었을 때는 2와 3.5가 큰 차이가 나지 않았다.
결론
영어로 넣자