Published on

GPT 토큰의 비밀. 한국어는 왜 더 느리고 요금도 더 많이 나올까?

Authors
  • 테크버킷
    Name
    테크버킷
    Twitter

요약

OpenAI API를 사용시 한국어 문장을 사용하면 더 많은 비용이 나오게 됩니다. 이와 관련하여 토큰의 개념, 영어와 한글의 토큰 수 비교, Tokenizer에 대한 내용을 정리하였습니다.

배경

OpenAI의 API 사용요금은 질문과 응답에 사용된 토큰 수에 따라 책정됩니다. 쉽게 말하면 사용된 글자 수가 많으면 토큰이 많아지고 요금도 많이 청구된다는 것입니다. OpenAI(What are tokens and how to count them?)에 따르면 영어 단어 4개 정도를 처리하는데 1개의 토큰이 사용된다고 합니다.

한국어는 어떨까요? OpenAI에서 제공하는 토크나이저(Tokenizer)에 텍스트를 입력하면 사용되는 토큰을 계산해볼 수 있는데 한국어를 입력했을때에는 음절당 2-3토큰이 나왔습니다. 영어 단어에 비하면 상당히 많은 양의 토큰입니다.

이러한 차이 때문에 OpenAI API를 사용시 한국어 문장을 사용하면 더 많은 비용이 나오게 됩니다. 또한 ChatGPT를 웹을 통해 사용시에 한국어 답변의 최대 길이가 짧은 것도 이 때문일 것 같습니다.

토큰이란

Tokens는 API가 입력을 처리하는 데 사용되는 단어 조각입니다. 이들은 단어가 시작하거나 끝나는 정확한 위치에서 잘려 나가지 않을 수 있으며, 뒤에 공백이나 하위 단어가 포함될 수도 있습니다. Token 수를 계산하는 데 사용할 수 있는 규칙으로는, 하나의 Token이 대략 4자 이나 ¾의 단어에 해당하는 것 등이 있습니다. 특정 텍스트에 포함된 Token 수는 언어 및 Token-to-char 비율에 따라 다를 수 있으며, 영어 이외의 언어에 대한 API 구현 비용에 영향을 미칠 수 있습니다. Tokenization을 더 자세히 알아보려면 OpenAI의 인터랙티브 Tokenizer 도구를 사용하거나 Tiktoken, transformers 패키지 또는 gpt-3-encoder 패키지와 같은 라이브러리를 프로그래밍적으로 사용할 수 있습니다.

영어 vs 한글

영어와 한글의 토큰 수를 비교해보면 한글이 훨씬 많은 토큰을 사용한다는 것을 알 수 있습니다. 왜 이런 차이가 나는지 궁금증을 다 풀지는 못했습니다. 좀 더 알아 볼만한 부분이 존재하기는 하지만 그래도 한글과 영어의 사용된 토큰을 비교해본 내용을 공유합니다.

Playground

OpenAI에서 제공하는 Playground에서 API사용을 실험하는 것 뿐만아니라 토큰이 어떻게 사용되는지도 시각적으로 표시해줍니다. 플레이그라운드에서 확인해보면 한글은 한 글자당 2-3토큰이 사용되며 UTF-8 segment로 분리 된다는 정보를 볼 수 있었습니다.

playground의 토큰 분석
이미지-2글자 입력시 6토큰 사용
이미지-4글자 사용시 10토큰 사용

Tokenizer

OpenAI에서 제공하는 토큰에 대한 설명에서 한국어를 어떻게 처리하는지 알 수 없어서 그들이 사용하는 토크나이저 모델에 대한 정보를 알아보았습니다.

이러한 Tokenizer를 실제로 적용해 보면서 알아보면 좀더 실마리가 풀릴 것 같지만 시간 관계상 더 알아보지는 못했습니다.

비용 차이

위의 실험 결과처럼 gpt모델은 한국어로 된 문장을 처리하는데 훨씬 더 많은 토큰을 사용합니다. 이러한 차이 때문에 한국어로 된 문장을 처리하는데 더 많은 비용이 발생합니다. openAI API를 사용 할때 사용한 토큰에 따라 비용을 청구하는데, 한국어로 된 문장을 처리할때에는 훨씬 더 많은 비용이 발생한다는 것입니다. 한국어 질문을 좀더 느리게 처리하는것, 그리고 최대 답변의 길이가 짧아지는 것도 토큰의 처리 방법과 관련이 있을 것 같습니다. (번역 과정 등의 영향도 있을 수 있지만 이 글에서는 토큰과 관련해서만 다루어 보았습니다. 또한 필자의 추측일 뿐 정확한 사실은 아닙니다.)

마무리

여기까지 토큰에 대한 글을 마칩니다. 궁금증이 아직 풀리기에는 부족하지만 시간 관계상 리서치의 진행이 어려워서 업로드하기로 결정했습니다. Tokenizer에 대해서 더 알아보지는 못했지만 한글이 영어에 비해 훨씬 토큰을 많이 필요로 하는 점은 확실합니다. chatGPT에게 한글로 질문을 하면 왜 느려지고 요금이 많이 나오는지는 토큰으로 설명할 수 있을 것 같습니다. 추후에 이 글이 업데이트 될 수 있습니다.

레퍼런스