-
Notifications
You must be signed in to change notification settings - Fork 0
ByteTok
김동규 edited this page Oct 13, 2024
·
4 revisions
Bytecode Tokenization Tool
-
ByteTok은 자바로 작성된 소스코드를 컴파일하여 얻는 클래스 파일(바이트 코드) 단계에서의 작업에 초점을 맞춥니다.
-
자연어와는 다른 바이트코드의 특성으로 인해 자연어 처리에서 사용하는 tokenization tool을 이용할 수 없다는 점에서 프로젝트를 시작하였습니다.
-
바이트코드의 여러 section을 모두 분석하여 새로운 representation을 생성합니다.
-
바이트코드 분석을 통한 새로운 representation을 생성합니다.
- 사용자가 여러 형태로 representation을 변경하여 사용할 수 있고, 이를 print/txt file 등 여러가지 형태로 가져올 수 있습니다.
- JVM에서 정의한 모든 data structure를 자바 클래스로 구현하여 각 data structure에 대한 구조적인 분석이 가능합니다.
-
LLM 학습을 위한 vocabulary를 생성합니다.
- 자연어와 다른 바이트 코드만의 토큰화 기법을 사용하여 instruction 단위의 semantic을 가지고 있는 vocabulary를 생성합니다.
- 각 data structure 뿐만 아니라 instruction까지 분석하여 생성하기 때문에 자연어 처리에서 주로 사용되는 word embedding/BPE와는 다른 자체적인 구조를 가지고 있습니다.
-
ByteTok은 Handong Software Foundation(HSF)에서 공개되어 개발이 진행중인 오픈소스 프로젝트입니다. ByteTok의 기여 방법은 HSF의 규칙을 다릅니다.
-
https://hsf.handong.edu/_pages/contributor/ 이 주소로 방문하시면 HSF 프로젝트의 기여 방법에 대해서 확인할 수 있습니다.
-
추가적으로 ByteTok은 어떤 종류의 bug report는 환영합니다. Issue 작성이나 직접적인 PR을 통해서 쉽게 프로젝트에 참여할 수 있습니다.
-
ByteTok은 어디에 주로 사용되나요?
- 자바의 바이트코드 단위에서의 모든 작업에 사용될 수 있습니다. 자연어와는 다른 바이트코드의 특성으로 인해 주로 사용되는 자연어 처리 도구를 사용할 수 없기 때문에 만들어진 프로그램입니다.
-
ByteTok의 추가적인 기능은 어떤 것이 있나요?
- 현재는 자바로 컴파일 된 바이트코드를 기반으로 개발을 진행 중에 있지만, JVM을 이용하는 다른 모든 프로그래밍 언어에도 적용할 수 있도록 확장할 예정입니다.