tokenizer는 문자열을 여러개의 token으로 변환하는 것을 말함


예를들어 hello를 나타내는 토큰 값이 79이고 wolrd를 나타내는 토큰값이 213이라면

"hello world" 라는 문자열을 입력 받았을때 [79, 213]로 변환 된다



24b0d121e09c28a8699fe8b115ef0469943ef3


24b0d121e09c28a8699fe8b115ef046f564f9d



한글 tokenizer (영어는 데이터를 잃어버렸음...)


버전: 1.21.4+


첨부파일
function.zip
파일 다운로드


다운로드 후 폴더 안의 내용물을

[세계이름]\datapacks\minecraftGPT\data\minecraftgpt\function에 넣어줘라



예시


24b0d121e09c28a8699fe8b115ef046a7b6fe8


24b0d121e09c28a8699fe8b115ef046c60f4294d9d


24b0d121e09c28a8699fe8b115ef0469973ef0






사용방법


책에 글을 적고 손에 든채로 minecraftgpt:run_book 을 실행시키면 동작함


function minecraftgpt:tokenize/debug_on 을 사용하여 로그를 볼 수 있음


import 함수는 책에 있는 내용을 한글자씩 분리하여 데이터 배열을 만듬

tokenize 함수는 import함수에서 만들어진 배열을 통해 토큰화를 진행함


사용하기 위해서는 trie 형식의 데이터가 필요함

아래 데이터를 맵에 넣고 사용해줘라







예시 데이터


아래 mcfunction을 사용하여 예시 데이터를 맵에 다운로드 할 수 있음

install 함수 실행및 로딩시 매우 심한 렉이 유발 될 수 있기 때문에 나누어 실행 하고

실행 후에는 맵에서 함수를 제거하기를 권장함


첨부파일
trie_install_functions.zip
파일 다운로드


첨부파일
tokens.txt
파일 다운로드


예시 데이터는 아래 데이터셋을 이용해 만들어졌음

https://huggingface.co/datasets/heegyu/open-korean-instructions





직접 token.txt를 만들어 사용할 경우


아래 코드는 token.txt를 trie 형식으로 변환하여 맵에 다운로드 할 수 있도록 mcfunction으로 파일을 만들어 준다

token.txt는 어떻게 만드냐? : AI에게 물어보셈


첨부파일
generate_trie.py
파일 다운로드


24b0d121e09c28a8699fe8b115ef046a7f6fe3

24b0d121e09c28a8699fe8b115ef046a7a6eefc5


24b0d121e09c28a8699fe8b115ef046a756ce3ce



데이터에 한글이 아니거나 tokenize폴더에 존재하지 않는 문자가 존재 하는 경우

token.txt를 이용하여 tokenize 폴더 일부를 다시 만들어야 할 수 있음


아래 코드를 실행한후 출력되는 폴더를 기존 tokenize 폴더의 advance부분과 교체하여 주면 된다


첨부파일
generate_tokenizer_functions_advence.py
파일 다운로드





그래서 이거 어디다가 쓰냐?


tokenizer(토큰화)는 ai에게 글을 입력할때 흔히 사용된다

글을 자유롭게 입력하고 이를 인식 한다던가

더 나아가서 embedding과 이것저것을 붙여 마인크래프트에서 작동하는 ai를 만들 수도 있음

(사실 마인크래프트로 ai만들다가 너무 오래걸려서 얘만 빼왔음)


하드코딩으로 맥락 파악하고 정답인식하는 정도는 할 수 있지 않을까?





만들면서 chatgpt codex와 gemini를 사용 하였음 그랬더니 버그가 진짜 많더군

따라서 비효율적이고 쓸때없이 함수가 많이 나뉘어 있거나

필요 이상으로 주석이 있거나 임시 방편으로만 땜빵이 불안정하게 되어있거나

렉이 과하게 걸린다던가 필요 없는 연산을 한다던가

기타 등등의 문제가 산재해 있음

만든 이의 부족함 때문임 양해 부탁함