가끔 프로젝트를 하다보면 tiktoken을 오프라인으로 사용해야될 경우가 필요하다.
주로 캐시파일에 저장되기 때문에 시간이 지난다면 tiktoken이 알아서 새롭게 다운 받으려고 하는데… 이 경우 오프라인 PC에서 사용하게 되거나 제한된 인터넷 환경에서는 좀 귀찬게 된다.
첫번째. tiktoken 파일 다운로드
import tiktoken_ext.openai_public
import inspect
print(dir(tiktoken_ext.openai_public))
print(inspect.getsource(tiktoken_ext.openai_public.cl100k_base))
# >>>
# 이하 생략
def cl100k_base():
mergeable_ranks = load_tiktoken_bpe(
"https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken"
mergeable_ranks 속에 있는 링크를 얻게 된다. tiktoken에서 사용될 토크나이저 파일을 다운 받는 URL을 얻을 수 있다.
두번째. 캐시 파일 이름 가져오기
blob를 통해서 아까 mergeable_ranks 속에 있는 url을 blob path로 사용해서 캐시 키를 얻습니다. 캐시키값을 아까 다운 받은 파일의 이름으로 변경합니다.
import hashlib
blobpath = "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken"
cache_key = hashlib.sha1(blobpath.encode()).hexdigest()
print(cache_key)
>>>9b5ad71b2ce5302211f9c61530b329a4922fc6a4
세번째. tiktoken 캐시 설정
마지막으로 원하는 위치에 환경변수로 TIKTOKEN_CACHE_DIR을 설정해준다면 이제 계속 사용할 수 있는 상태가 됩니다.
import os
tiktoken_cache_dir = "path_to_folder_containing_tiktoken_file"
os.environ["TIKTOKEN_CACHE_DIR"] = tiktoken_cache_dir
encoding = tiktoken.get_encoding("cl100k_base")
encoding.encode("안녕하세요 여러분!!!")
정말 필요한 자료를 여기서 얻어서 한글화 시켜서 저장합니다. 감사합니다.
↓ ↓ ↓ ↓ ↓
https://stackoverflow.com/questions/76106366/how-to-use-tiktoken-in-offline-mode-computer