OpenAIモデルで使用するために設計されたJavaトークネイザーライブラリである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カスタムエンコードアルゴリズムの簡単な拡張性
zeroゼロ依存関係
furse java 8以降をサポートします
fast高速で効率的なパフォーマンス
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を拡張して、カスタムエンコーディングをサポートすることをお勧めします。そうするために、2つのオプションがあります。
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ライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。