RETVEC est un vectorisateur de texte de nouvelle génération conçu pour être efficace, multilingue et fournit une résilience adversaire intégrée en utilisant des incorporations de mots robustes formées avec un apprentissage de similitude. Vous pouvez lire le journal ici.
RETVEC est formé pour être résilient contre les manipulations au niveau des caractéristiques, notamment l'insertion, la suppression, les fautes de frappe, les homoglyphes, la substitution Leet, etc. Le modèle RETVEC est formé au-dessus d'un nouvel encodeur de caractères qui peut coder efficacement tous les caractères et mots UTF-8. Ainsi, RETVEC fonctionne à l'extérieur de la boîte sur plus de 100 langues sans avoir besoin d'une table de recherche ou d'une taille de vocabulaire fixe. De plus, RETVEC est une couche, ce qui signifie qu'il peut être inséré dans n'importe quel modèle TF sans avoir besoin d'une étape de prétraitement distincte.
La vitesse et la taille de RETVEC (~ 200K au lieu de millions de paramètres) en font également un excellent choix pour les cas sur disque et d'utilisation Web. Il est pris en charge nativement dans TensorFlow Lite via des opérations personnalisées dans TensorFlow, et nous fournissons une implémentation JavaScript de RETVEC qui vous permet de déployer des modèles Web via Tensorflow.js.
Veuillez consulter notre exemple Colabs sur la façon de commencer la formation de vos propres modèles avec RETVEC. Train_retvec_model_tf.ipynb est un excellent point de départ pour la formation d'un modèle TF à l'aide de RETVEC.
Pour voir RETVEC en action, visitez nos démos.
Vous pouvez utiliser pip pour installer la dernière version TensorFlow de RETVEC:
pip install retvecRETVEC a été testé sur TensorFlow 2.6+ et Python 3.8+.
Vous pouvez utiliser RETVEC comme couche de vectorisation dans n'importe quel modèle TensorFlow avec une seule ligne de code. RETVEC fonctionne sur des chaînes brutes avec des options de prétraitement intégrées (par exemple, le texte de casse inférieur). Par exemple:
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 )Ensuite, vous pouvez compiler, entraîner et enregistrer votre modèle comme d'habitude! Comme démontré dans notre article, les modèles formés à l'aide de RETVEC sont plus résilients contre les attaques adversaires et les fautes de frappe, ainsi que efficaces sur le plan informatique. RETVEC offre également un support dans TFJS et TF Lite, ce qui le rend parfait pour les cas d'utilisation mobile et Web sur disque.
Exemple détaillé Les colabs pour RETVEC peuvent être trouvés dans Under Notebooks. C'est un bon moyen de commencer à utiliser RETVEC. Vous pouvez exécuter les ordinateurs portables dans Google Colab en cliquant sur le bouton Google Colab. Si aucun des exemples n'est similaire à votre cas d'utilisation, veuillez nous le faire savoir!
Nous avons l'exemple suivant Colabs:
Veuillez citer cette référence si vous utilisez RETVEC dans votre recherche:
@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 }
}Pour contribuer au projet, veuillez consulter les directives de contribution. Merci!
Ce n'est pas un produit Google officiel.