Google VertaxAI Python SDK
gemini tokenizer๋ ์๋ ๊ณต๊ฐ๋์ง ์์ token์ ๊ณ์ฐํ๋ ค๋ฉด API๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์๋ค. ๊ทธ๋์ Google Cloud Community์ ์ง๋ฌธ์ ๋ฑ๋กํ๋ค. ์๋ tiktoken๊ณผ ๊ฐ์ด token ๊ณ์ฐ์ local๋ก ํ ์์๊ฒ ๊ณต๊ฐํด ๋ฌ๋ผ๋ ๊ฒ์ด์๋ค. token ์๋ฅผ ์ ์ ์์ผ๋ฉด gemini-api๋ฅผ ์ฌ์ฉํ ๋ max_token์ ๋ง๊ฒ ๊ณ์ ์กฐ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ฐจ๋ก API๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ์์ํ๋์ง token ์๋ฅผ API๋ก ํ์ฉํ ์ ์๊ฒ ๊ณต๊ฐํ์ง๋ง ๋ฌธ์ ๋ ๋ ๋ฒ์ API ์ฌ์ฉ๋ ๋ง์์ ๋ค์ง ์์๋ค.
tiktoken์ผ๋ก OpenAI์์๋ tokenizer์ vocab์ ๊ณต๊ฐํด ํฌ๋ช ํ๊ฒ API ๋น์ฉ์ ์ฒญ๊ตฌํ๊ณ ์๋ค. chatGPT์ vocab์ cl100k_base 10๋ง 256๊ฐ์ vocab์ ๊ฐ์ง๊ณ ์ถ๋ก ์ ์ฌ์ฉํ๋ค. ์ด ์ค ํ๊ตญ์ด๋ 281๊ฐ๋ก GPT3.5์ GPT 4.0 ์ฌ์ฉํ ๋ ์์ฒญ ๋๋ฆฌ๊ณ ํ ํฐ์๋ฅผ ๋ง์ด ์ฐจ์งํด ์ฑ๋ฅ์ ์ข์ง๋ง ์๋น์ค๋ก ์ฌ์ฉํ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ ๋ง์ ๋ง์ด ๋ค์์ ๊ฒ์ด๋ค. ์๋ ๋ต๋ณ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๊ฐ๋จํ ๋ต๋ณ์๋ 40ํผ์ผํธ๋ ์ฐจ์ด๊ฐ ๋๋ค.
cl100k_base์๋ ํ๊ตญ์ด๊ฐ 281๊ฐ์ ํ ํฐ์ด o200k_base_vocab์๋ 2360๊ฐ๋ก ์ฝ 8๋ฐฐ ์ ๋ ๋ง์ด ๋ฐ์์ด ๋์๋ค. ์ถ๋ก ์์ ํ ํฐํ๋ ์ ๋ง ์ค์ํ๋ฐ ์ด์ ์์ผ ๋ฐ์์ด ๋ ๊ฒ 1๋ ๋์ ์ผ๋ง๋ ๋ง์ ํ ํฐ์ด ๋ญ๋น๋ ๊ฒ์ธ์ง ์์ฝ์ง๋ง ๊ฐ์ ํด ์ค ๊ฒ๋ง์ผ๋ก๋ ๊ฐ์ฌํ๋ค.
token์ ์ค์์ฑ์ ์์์ผ๋ Google VertaxAI Python SDK๋ฅผ ํตํด gemini tokenizer๋ฅผ local์์ ์ฌ์ฉํด๋ณด์.
1. vertaxai ์ค์น
python -m pip install --upgrade "google-cloud-aiplatform[tokenization]"
2. tokenization ๋ชจ๋ ์คํ
from vertexai.preview import tokenization
model_name = "gemini-1.5-flash-001"
tokenizer = tokenization.get_tokenizer_for_model(model_name)
contents = "์๋
ํ์ธ์. ์๋
ํ์ธ์! ๊ถ๊ธํ ์ ์ด ์๋์? ์ด๋ป๊ฒ ๋์๋๋ฆด๊น์?"
result = tokenizer.count_tokens(contents)
print(f"{result.total_tokens = :,}")
#result.total_tokens = 28
๊ฐ์ input token๊ณผ output token์ ์ฐจ๋ฅผ ๋ณด๋ฉด. ์์ ๋น๊ตํ cl100k_base(39), o200k_base_vocab(25)๊ฐ์ ๋น๊ตํ์ ๋ ํจ์จ์ ์ธ ํ๊ตญ์ด tokenzier๋
o200k_base > gemini-tokenizer > cl100k_base
๋ผ๊ณ ํ ์ ์๋ค.
๊ฐ์ฅ ์ต๊ทผ์ ๋์จ ๋ชจ๋ธ์ด GPT4o(o200k_base)์ธ๋งํผ ๋ ๋ง์ ๊ฒ์ด ๋ฐ์๋์ด ์๊ฒ ์ง๋ง ์์ง ์์ด์ ๋นํด ๋ง์ด ๋นํจ์จ์ ์ธ ๊ฒ ์ฌ์ค์ด๋ค. ํ๊ตญ์ด Foundation ๋ชจ๋ธ์ด ๋์์ผ ์ด๋ฐ ๋ฌธ์ ๊ฐ ๊ฐ์ ๋ ์ ์๋๋ฐ ๊ทธ๋ฌ๊ธฐ์๋ ํ์ค์ ์ผ๋ก ์ด๋ ค์ด ํ์ค์ด๋ค. ์ธ๊ตญ์์ ๋ง๋ ๋ฒ ์ด์ค ๋ชจ๋ธ๋ค์ด ํ๊ตญ์ด๋ฅผ ๋ ์ํ๋ ๊ฒ์ด ์์ฝ์ง๋ง ๊ทธ๋ผ์๋ ์ฐ๊ตฌ๋ ๊ณ์๋์ด์ผ ํ๋ค๊ณ ์๊ฐ๋๋ค. ํน์ ๊ตญ๊ฐ์ ์ค๋ฆฌ๊ด์ด๋ ์ญ์ฌ์์์ด ๋ฐ์๋ LLM์ด ๋ค๋ฅธ ๊ตญ๊ฐ์์ ๊ต์ก์ฉ์ผ๋ก ์๋ฆฌ์ก๊ฑฐ๋ ์๋น์ค๊ฐ ๋๋ค๋ฉด ๋ฌธ์ ๊ฐ ์ฌ๊ฐํ ๋ฐ์๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ๋ค์ด๋ฒ์ ํ์ดํผํฌ๋ก๋ฒ X, LG AI ์ฐ๊ตฌ์์ ์์ฌ์ 2.0, ์ผ์ฑ์ ์์ Gauss, NC์ํํธ์ VARCO ๋ฑ ์ฑ๋ฅ์ด ์ข์ง ์๋๋ผ๋ ๋์ค์๋ ๋ฐ๋ผ์ก์ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ ๊ฐ๊ณ ์์ํ๋ค.
์ฐธ๊ณ ๋ฌธํ )
https://www.googlecloudcommunity.com/gc/AI-ML/Please-share-Gemini-tokenize-information/m-p/773390
https://platform.openai.com/playground/chat?models=gpt-3.5-turbo&models=gpt-4o
https://orange-mansion.com/news/240418_fm/
'๐ ๏ธ Tools' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Jupyterhub] ๊ณ์ ์์ฑ ์ค๋ฅ (0) | 2024.08.15 |
---|---|
[Ollama] Response Structure Answer (0) | 2024.07.01 |
[OpenAI] ๋ชจ๋ธ๋ณ ์ง์ ์ค๋จ ์์ ๋ ์ง, Model deprecations (0) | 2024.06.15 |
[draw.io] sql๋ฌธ ๊ฐ์ ธ์ค๊ธฐ (0) | 2024.06.03 |
[crewAI] Multi-agent Custormer Support Automation (3) (0) | 2024.05.25 |