Swift BPE Encoder/Decoder für OpenAI GPT-Modelle. Eine programmgesteuerte Schnittstelle zum Tokenisieren von Text für die OpenAI GPT-API.
Die GPT-Modellfamilie verarbeitet Text mithilfe von Token, bei denen es sich um häufig in Texten vorkommende Zeichenfolgen handelt. Die Modelle verstehen die statistischen Beziehungen zwischen diesen Token und sind hervorragend darin, den nächsten Token in einer Folge von Token zu erzeugen.
Mit dem folgenden Tool können Sie nachvollziehen, wie ein Textabschnitt von der API tokenisiert wird und wie viele Tokens insgesamt in diesem Textabschnitt enthalten sind.
Diese Bibliothek basiert auf dem nodeJS gpt-3-encoder und dem offiziellen OpenAI Python GPT Encoder/Decoder
Ich habe auch GPTTokenizerUI erstellt, eine SPM-Bibliothek, die Sie in Ihre App integrieren können, um eine GUI zur Eingabe von Text bereitzustellen und die von der GPT-API verwendeten Tokenisierungsergebnisse anzuzeigen.
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 ) " )
Um einen String
in ein Array von Int
-Tokens zu kodieren, können Sie einfach encode
aufrufen und den String übergeben.
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]
Um ein Array von Int
-Tokens zurück in den String
zu dekodieren, können Sie decode
aufrufen, indem Sie das Token-Array übergeben.
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."
Intern wird ein Cache verwendet, um die Leistung beim Codieren der Token zu verbessern. Sie können den Cache auch zurücksetzen.
encoder . clearCache ( )