A Retvec é um vetorizador de texto de última geração, projetado para ser eficiente, multilíngue e fornecer resiliência adversária integrada usando incorporações de palavras robustas treinadas com aprendizado de similaridade. Você pode ler o artigo aqui.
A Retvec é treinada para ser resiliente contra manipulações no nível do caractere, incluindo inserção, exclusão, erros de digitação, homoglifos, substituição do Leet e muito mais. O modelo Retvec é treinado sobre um novo codificador de personagens que pode codificar todos os caracteres e palavras UTF-8 com eficiência. Assim, o Retvec trabalha para fora da caixa em mais de 100 idiomas sem a necessidade de uma tabela de pesquisa ou tamanho fixo de vocabulário. Além disso, o Retvec é uma camada, o que significa que ela pode ser inserida em qualquer modelo TF sem a necessidade de uma etapa de pré-processamento separada.
A velocidade e o tamanho da Retvec (~ 200k em vez de milhões de parâmetros) também a tornam uma ótima opção para casos de uso no dispositivo e na Web. É suportado nativamente no Tensorflow Lite por meio de operações personalizadas no Tensorflow Text e fornecemos uma implementação JavaScript do Retvec, que permite implantar modelos da Web via tensorflow.js.
Consulte nosso exemplo colabs sobre como começar a treinar seus próprios modelos com a Retvec. TRAIN_RETVEC_MODEL_TF.IPYNB é um ótimo ponto de partida para treinar um modelo TF usando Retvec.
Para ver Retvec em ação, visite nossas demos.
Você pode usar pip para instalar a versão mais recente do TensorFlow do Retvec:
pip install retvecRetvec foi testado no Tensorflow 2.6+ e Python 3.8+.
Você pode usar o Retvec como a camada de vetorização em qualquer modelo TensorFlow com apenas uma única linha de código. A Retvec opera em seqüências de caracteres cruas com opções de pré-processamento embutidas (por exemplo, texto inferior). Por exemplo:
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 )Então você pode compilar, treinar e salvar seu modelo como de costume! Conforme demonstrado em nosso artigo, os modelos treinados usando Retvec são mais resilientes contra ataques e erros de digitação adversários, além de eficientes em computação. A Retvec também oferece suporte no TFJS e TF LITE, tornando-o perfeito para casos de uso móvel e web no dispositivo.
Exemplo detalhado colabs para Retvec pode ser encontrado em notebooks. Esta é uma boa maneira de começar o uso do Retvec. Você pode executar os notebooks no Google Colab clicando no botão Google Colab. Se nenhum dos exemplos for semelhante ao seu caso de uso, informe -nos!
Temos o seguinte exemplo colabs:
Cite esta referência se você usar a Retvec em sua pesquisa:
@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 com o projeto, consulte as diretrizes de contribuição. Obrigado!
Este não é um produto oficial do Google.