Codificador/decodificador Swift BPE para modelos OpenAI GPT. Una interfaz programática para tokenizar texto para la API OpenAI GPT.
La familia de modelos GPT procesa texto utilizando tokens, que son secuencias comunes de caracteres que se encuentran en el texto. Los modelos comprenden las relaciones estadísticas entre estos tokens y se destacan en producir el siguiente token en una secuencia de tokens.
Puede utilizar la siguiente herramienta para comprender cómo la API tokenizaría un fragmento de texto y el recuento total de tokens en ese fragmento de texto.
Esta biblioteca se basa en nodeJS gpt-3-encoder y el codificador/decodificador oficial Python GPT de OpenAI.
También creé GPTTokenizerUI, una biblioteca SPM que puede integrar en su aplicación para proporcionar GUI para ingresar texto y mostrar los resultados de tokenización utilizados por la API de GPT.
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 ) " )
Para codificar una String
en una matriz de tokens Int
, simplemente puede invocar encode
pasando la cadena.
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]
Para decodificar una matriz de tokens Int
en String
puede invocar decode
pasando la matriz de tokens.
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."
Internamente, se utiliza un caché para mejorar el rendimiento al codificar los tokens; también puede restablecer el caché.
encoder . clearCache ( )