OpenAI 모델과 함께 사용하도록 설계된 Java Tokenizer 라이브러리 인 Jtokkit에 오신 것을 환영합니다.
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
Encoding enc = registry . getEncoding ( EncodingType . CL100K_BASE );
assertEquals ( "hello world" , enc . decode ( enc . encode ( "hello world" )));
// Or get the tokenizer corresponding to a specific OpenAI model
enc = registry . getEncodingForModel ( ModelType . TEXT_EMBEDDING_ADA_002 );
빨리 시작하려면 문서를 참조하십시오.
Jtokkit은 OpenAI 모델을 사용하여 자연어 처리 작업에 사용하도록 설계된 빠르고 효율적인 토큰 화기가됩니다. 예를 들어 GPT-3.5 모델에 대한 요청을 준비하는 데 필요한 토큰을 계산하기위한 입력 텍스트 토큰 화를위한 사용하기 쉬운 인터페이스를 제공합니다. 이 라이브러리는 도서관 Tiktoken이 Python에 제공하는 것처럼 JVM 생태계에서 유사한 역량을 가질 필요가있었습니다.
r50k_base
, p50k_base
, p50k_edit
, cl100k_base
및 o200k_base
통한 인코딩 및 디코딩을 구현합니다.
사용하기 쉬운 API
custom 사용자 정의 인코딩 알고리즘에 대한 접근성이 쉽습니다
✅ 제로 의존성
✅ Java 8 이상을 지원합니다
✅ 빠르고 효율적인 성능
Jtokkit은 비슷한 토큰 화기보다 2-3 배 빠릅니다.
벤치 마크에 대한 자세한 내용은 벤치 마크 디렉토리를 참조하십시오.
Maven 프로젝트에 다음 의존성을 추가하여 Jtokkit을 설치할 수 있습니다.
< dependency >
< groupId >com.knuddels</ groupId >
< artifactId >jtokkit</ artifactId >
< version >1.1.0</ version >
</ dependency >
또는 대안 적으로 Gradle 사용 :
dependencies {
implementation ' com.knuddels:jtokkit:1.1.0 '
}
jtokkit을 사용하려면 새로운 EncodingRegistry
만들고 getEncoding
사용하여 사용하려는 인코딩을 검색하십시오. 그런 다음 encode
및 decode
메소드를 사용하여 텍스트를 인코딩하고 디코딩 할 수 있습니다.
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
Encoding enc = registry . getEncoding ( EncodingType . CL100K_BASE );
IntArrayList encoded = enc . encode ( "This is a sample sentence." );
// encoded = [2028, 374, 264, 6205, 11914, 13]
String decoded = enc . decode ( encoded );
// decoded = "This is a sample sentence."
// Or get the tokenizer based on the model type
Encoding secondEnc = registry . getEncodingForModel ( ModelType . TEXT_EMBEDDING_ADA_002 );
// enc == secondEnc
EncodingRegistry
및 Encoding
클래스는 스레드 안전이며 구성 요소간에 자유롭게 공유 할 수 있습니다.
사용자 정의 인코딩을 지원하기 위해 jtokkit을 확장 할 수 있습니다. 그렇게하려면 두 가지 옵션이 있습니다.
Encoding
인터페이스를 구현하고 EncodingRegistry
에 등록하십시오. EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
Encoding customEncoding = new CustomEncoding ();
registry . registerEncoding ( customEncoding );
EncodingRegistry registry = Encodings . newDefaultEncodingRegistry ();
GptBytePairEncodingParams params = new GptBytePairEncodingParams (
"custom-name" ,
Pattern . compile ( "some custom pattern" ),
encodingMap ,
specialTokenEncodingMap
);
registry . registerGptBytePairEncoding ( params );
그런 다음 기본 인코딩과 함께 사용자 정의 인코딩을 사용하여 registry.getEncoding("custom-name")
사용하여 액세스 할 수 있습니다. 자세한 내용은 Javadoc을 참조하십시오.
Jtokkit은 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.