해당 글은 Transformers 기반의 Tokenizer를 Java에서 구현하는 방법을 소개한다.
참조 사이트
HuggingFace Transformers(Python)
@xenova/transformers(Javascript)
NLP support with Huggingface tokenizers(Java)
DJL NLP Utilities For Huggingface Tokenizers Maven
// build.gradle의 Dependencies에 추가
implementation "ai.djl.huggingface:tokenizers:0.23.0"
src/resouces/
경로 이하에 사용하고자 하는 Transformer 기반 tokenizer.json
을 넣어둔다@Configuration
클래스에 작성@Bean
public HuggingFaceTokenizer huggingFaceTokenizer() throws IOException {
ClassPathResource tokenizerResource = new ClassPathResource(
"docs/tokenizer/tokenizer.json"
);
HuggingFaceTokenizer tokenizer = HuggingFaceTokenizer.newInstance(
tokenizerResource.getInputStream(),
Map.of("modelMaxLength", "2048")
);
return tokenizer;
}
int tokenLength = tokenizer
.encode("안녕하세요")
.getTokens()
.length;
위 메소드 이외에도 다양한 기능이 제공된다.
DJL NLP Utilities For Huggingface Tokenizers
라이브러리는 libgcc1
를 참조하므로 해당 라이브러리가 설치되어 있어야 한다.# Ubuntu 기준
sudo apt install -y libgcc1
# Dockerfile
FROM ubuntu:20.04
RUN SILENT=1 apt update -qq && SILENT=1 apt install -qqy openjdk-17-jre-headless libgcc1
유익한 글이었습니다.