tokenizer는 문자열을 여러개의 token으로 변환하는 것을 말함
예를들어 hello를 나타내는 토큰 값이 79이고 wolrd를 나타내는 토큰값이 213이라면
"hello world" 라는 문자열을 입력 받았을때 [79, 213]로 변환 된다
한글 tokenizer (영어는 데이터를 잃어버렸음...)
버전: 1.21.4+
다운로드 후 폴더 안의 내용물을
[세계이름]\datapacks\minecraftGPT\data\minecraftgpt\function에 넣어줘라
예시
사용방법
책에 글을 적고 손에 든채로 minecraftgpt:run_book 을 실행시키면 동작함
function minecraftgpt:tokenize/debug_on 을 사용하여 로그를 볼 수 있음
import 함수는 책에 있는 내용을 한글자씩 분리하여 데이터 배열을 만듬
tokenize 함수는 import함수에서 만들어진 배열을 통해 토큰화를 진행함
사용하기 위해서는 trie 형식의 데이터가 필요함
아래 데이터를 맵에 넣고 사용해줘라
예시 데이터
아래 mcfunction을 사용하여 예시 데이터를 맵에 다운로드 할 수 있음
install 함수 실행및 로딩시 매우 심한 렉이 유발 될 수 있기 때문에 나누어 실행 하고
실행 후에는 맵에서 함수를 제거하기를 권장함
예시 데이터는 아래 데이터셋을 이용해 만들어졌음
https://huggingface.co/datasets/heegyu/open-korean-instructions
직접 token.txt를 만들어 사용할 경우
아래 코드는 token.txt를 trie 형식으로 변환하여 맵에 다운로드 할 수 있도록 mcfunction으로 파일을 만들어 준다
token.txt는 어떻게 만드냐? : AI에게 물어보셈
데이터에 한글이 아니거나 tokenize폴더에 존재하지 않는 문자가 존재 하는 경우
token.txt를 이용하여 tokenize 폴더 일부를 다시 만들어야 할 수 있음
아래 코드를 실행한후 출력되는 폴더를 기존 tokenize 폴더의 advance부분과 교체하여 주면 된다
그래서 이거 어디다가 쓰냐?
tokenizer(토큰화)는 ai에게 글을 입력할때 흔히 사용된다
글을 자유롭게 입력하고 이를 인식 한다던가
더 나아가서 embedding과 이것저것을 붙여 마인크래프트에서 작동하는 ai를 만들 수도 있음
(사실 마인크래프트로 ai만들다가 너무 오래걸려서 얘만 빼왔음)
하드코딩으로 맥락 파악하고 정답인식하는 정도는 할 수 있지 않을까?
만들면서 chatgpt codex와 gemini를 사용 하였음 그랬더니 버그가 진짜 많더군
따라서 비효율적이고 쓸때없이 함수가 많이 나뉘어 있거나
필요 이상으로 주석이 있거나 임시 방편으로만 땜빵이 불안정하게 되어있거나
렉이 과하게 걸린다던가 필요 없는 연산을 한다던가
기타 등등의 문제가 산재해 있음
만든 이의 부족함 때문임 양해 부탁함
토큰화를 마크로 ㄷㄷ AI를 썼다지만 좋은 시도노!