GPTEncoder
1.0.4
OpenAI GPT モデル用の Swift BPE エンコーダ/デコーダ。 OpenAI GPT API のテキストをトークン化するためのプログラム インターフェイス。
GPT ファミリのモデルは、テキスト内にある一般的な文字のシーケンスであるトークンを使用してテキストを処理します。モデルはこれらのトークン間の統計的関係を理解し、一連のトークンの次のトークンを生成することに優れています。
以下のツールを使用すると、テキストが API によってどのようにトークン化されるか、およびそのテキスト内のトークンの合計数を理解できます。
このライブラリは、nodeJS gpt-3-encoder および OpenAI 公式 Python GPT エンコーダ/デコーダに基づいています。
また、GPTTokenizerUI も作成しました。これは、テキストを入力し、GPT API で使用されるトークン化の結果を表示するための GUI を提供するためにアプリに統合できる SPM ライブラリです。
platform :ios , '15.0'
use_frameworks!
target 'MyApp' do
pod 'GPTEncoder' , '~> 1.0.3'
end
let encoder = SwiftGPTEncoder ( )
let str = " The GPT family of models process text using tokens, which are common sequences of characters found in text. "
let encoded = encoder . encode ( text : str )
print ( " String: ( str ) " )
print ( " Encoded this string looks like: ( encoded ) " )
print ( " Total number of token(s): ( encoded . count ) and character(s): ( str . count ) " )
print ( " We can look at each token and what it represents " )
encoded . forEach { print ( " Token: ( encoder . decode ( tokens : [ $0 ] ) ) " ) }
print ( encoded )
let decoded = encoder . decode ( tokens : encoded )
print ( " We can decode it back into: n ( decoded ) " )
String
Int
トークンの配列にエンコードするには、単にencode
呼び出して文字列を渡すだけです。
let encoded = encoder . encode ( text : " The GPT family of models process text using tokens, which are common sequences of characters found in text. " )
// Output: [464, 402, 11571, 1641, 286, 4981, 1429, 2420, 1262, 16326, 11, 543, 389, 2219, 16311, 286, 3435, 1043, 287, 2420, 13]
Int
トークンの配列をデコードしてString
に戻すには、トークン配列を渡してdecode
呼び出します。
let decoded = encoder . decode ( tokens : [ 464 , 402 , 11571 , 1641 , 286 , 4981 , 1429 , 2420 , 1262 , 16326 , 11 , 543 , 389 , 2219 , 16311 , 286 , 3435 , 1043 , 287 , 2420 , 13 ] )
// Output: "The GPT family of models process text using tokens, which are common sequences of characters found in text."
内部的には、トークンをエンコードする際のパフォーマンスを向上させるためにキャッシュが使用されます。キャッシュをリセットすることもできます。
encoder . clearCache ( )