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许可证的许可。有关更多信息,请参见许可证文件。