RETVEC es un vectorizador de texto de próxima generación diseñado para ser eficiente, multilingüe y proporciona una resistencia adversaria incorporada utilizando incrustaciones de palabras robustas capacitadas con aprendizaje de similitud. Puedes leer el documento aquí.
RETVEC está entrenado para ser resistente a las manipulaciones a nivel de carácter, incluida la inserción, la eliminación, los errores tipográficos, los homoglíficos, la sustitución de LEET y más. El modelo RETVEC está entrenado en la parte superior de un codificador de caracteres novedoso que puede codificar todos los caracteres y palabras UTF-8 de manera eficiente. Por lo tanto, RETVEC funciona fuera de la caja en más de 100 idiomas sin la necesidad de una tabla de búsqueda o un tamaño de vocabulario fijo. Además, RETVEC es una capa, lo que significa que se puede insertar en cualquier modelo de TF sin la necesidad de un paso de preprocesamiento separado.
La velocidad y el tamaño de RetVEC (~ 200k en lugar de millones de parámetros) también lo convierte en una excelente opción para los casos de uso en disposición y web. Se admite de forma nativa en TensorFlow Lite a través de OPS personalizadas en el texto TensorFlow, y proporcionamos una implementación de JavaScript de RetVEC que le permite implementar modelos web a través de TensorFlow.js.
Consulte nuestro ejemplo de Colabs sobre cómo comenzar con la capacitación de sus propios modelos con RetVEC. Train_retvec_model_tf.ipynb es un excelente punto de partida para entrenar un modelo TF usando RETVEC.
Para ver a RetVec en acción, visite nuestras demostraciones.
Puede usar pip para instalar la última versión de TensorFlow de RetVec:
pip install retvecRETVEC ha sido probado en TensorFlow 2.6+ y Python 3.8+.
Puede usar RETVEC como la capa de vectorización en cualquier modelo TensorFlow con una sola línea de código. RETVEC opera en cadenas sin procesar con opciones de preprocesamiento incorporadas (por ejemplo, texto en cuestión inferior). Por ejemplo:
import tensorflow as tf
from tensorflow . keras import layers
# Define the input layer, which accepts raw strings
inputs = layers . Input ( shape = ( 1 , ), name = "input" , dtype = tf . string )
# Add the RETVec Tokenizer layer using the RETVec embedding model -- that's it!
x = RETVecTokenizer ( sequence_length = 128 )( inputs )
# Create your model like normal
# e.g. a simple LSTM model for classification with NUM_CLASSES classes
x = layers . Bidirectional ( layers . LSTM ( 64 , return_sequences = True ))( x )
x = layers . Bidirectional ( layers . LSTM ( 64 ))( x )
outputs = layers . Dense ( NUM_CLASSES , activation = 'softmax' )( x )
model = tf . keras . Model ( inputs , outputs )¡Entonces puede compilar, entrenar y guardar su modelo como de costumbre! Como se demuestra en nuestro documento, los modelos entrenados con RETVEC son más resistentes a los ataques adversos y errores tipográficos, así como computacionalmente eficientes. RETVEC también ofrece soporte en TFJS y TF Lite, lo que lo hace perfecto para casos de uso móvil y web en el dispositivo.
Ejemplo detallado que los colabs para RETVEC se pueden encontrar en debajo de los cuadernos. Estas son una buena manera de comenzar con el uso de RetVEC. Puede ejecutar los cuadernos en Google Colab haciendo clic en el botón Google Colab. Si ninguno de los ejemplos es similar a su caso de uso, ¡háganoslo saber!
Tenemos el siguiente ejemplo de Colabs:
Cite esta referencia si usa RETVEC en su investigación:
@article { retvec2023 ,
title = { RETVec: Resilient and Efficient Text Vectorizer } ,
author = { Elie Bursztein, Marina Zhang, Owen Vallis, Xinyu Jia, and Alexey Kurakin } ,
year = { 2023 } ,
eprint = { 2302.09207 }
}Para contribuir al proyecto, consulte las pautas de contribución. ¡Gracias!
Este no es un producto oficial de Google.