jtokkit
1.1.0
歡迎來到Java令牌庫Jtokkit,旨在與OpenAi型號一起使用。
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模型的請求所需的令牌。該庫導致了在JVM生態系統中具有類似能力的必要性,因為Tiktoken為Python提供了類似的能力。
✅通過r50k_base
, p50k_base
, p50k_edit
, cl100k_base
和o200k_base
實施編碼和解碼
✅易於使用的API
✅自定義編碼算法的簡便可擴展性
✅零依賴性
✅支持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許可證的許可。有關更多信息,請參見許可證文件。