retvec是下一代文本矢量化器,旨在使用具有相似性学习的训练的稳健单词嵌入式,可提供高效,多语言和提供内置的对抗性弹性。您可以在这里阅读论文。
RETVEC受过训练,可以抵抗角色级别的操作,包括插入,缺失,错别字,同义,leet替换等等。 RETVEC模型是在新型字符编码器之上训练的,该编码器可以有效地编码所有UTF-8字符和单词。因此,retvec在不需要查找表或固定词汇尺寸的情况下,在100多种语言上开箱即用。此外,RETVEC是一个层,这意味着可以将其插入任何TF模型,而无需单独的预处理步骤。
RETVEC的速度和尺寸(〜200K而不是数百万个参数)也使其成为设备和Web用例的绝佳选择。它通过TensorFlow文本中的自定义OPS在Tensorflow Lite中本地支持,我们提供了RETVEC的JavaScript实现,该实现使您可以通过TensorFlow.js部署Web模型。
请参阅我们的示例Colabs,介绍如何开始使用RETVEC培训自己的模型。 Train_retvec_model_tf.ipynb是使用RETVEC训练TF模型的绝佳起点。
要查看Retvec的行动,请访问我们的演示。
您可以使用pip安装最新的TensorFlow版本RETVEC:
pip install retvecRETVEC已在Tensorflow 2.6+和Python 3.8+上进行了测试。
您可以将RETVEC用作任何Tensorflow模型中的矢量化层,仅具有一行代码。 RETVEC在RAW字符串上运行,并具有预处理选项(例如下部文本)。例如:
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 )然后,您可以像往常一样编译,训练和保存模型!正如我们的论文所证明的那样,使用RETVEC训练的模型对对抗性攻击和错别字以及计算有效的效果更具弹性。 RETVEC还提供TFJ和TF Lite的支持,非常适合在设备上的移动设备和Web用例中。
详细的RETVEC示例可在笔记本电脑下找到。这些是开始使用RETVEC的好方法。您可以通过单击Google Colab按钮在Google Colab中运行笔记本。如果这些示例都不类似于您的用例,请告诉我们!
我们有以下示例Colabs:
如果您在研究中使用RETVEC,请引用此参考:
@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 }
}为了为该项目做出贡献,请查看贡献指南。谢谢你!
这不是官方的Google产品。