RETVEC-это текстовый векторизатор следующего поколения, предназначенный для эффективного, многоязычного, и обеспечивает встроенную состязательную устойчивость с использованием надежных вторжений слов, обученных обучением сходства. Вы можете прочитать бумагу здесь.
RETVEC обучен быть устойчивым к манипуляциям на уровне характера, включая вставку, делецию, опечатки, гомоглифы, замену лита и многое другое. Модель RETVEC обучается на вершине нового энкодера символов, который может эффективно кодировать все символы UTF-8 и слова. Таким образом, RETVEC работает из более чем 100 языков без необходимости в таблице поиска или фиксированного словаря. Кроме того, RETVEC является слоем, что означает, что его можно вставить в любую модель TF без необходимости отдельного этапа предварительной обработки.
Скорость и размер RETVEC (~ 200 тыс. Вместо миллионов параметров) также делают его отличным выбором для вариантов использования на грани и веб-сайта. Он изначально поддерживается в Tensorflow Lite через Custom Ops в Tensorflow Text, и мы предоставляем реализацию RETVEC JavaScript, которая позволяет развертывать веб -модели через tensorflow.js.
Пожалуйста, посмотрите наш пример Colabs о том, как начать работу с обучением ваших собственных моделей RETVEC. train_retvec_model_tf.ipynb - отличная отправная точка для обучения модели TF с использованием RETVEC.
Чтобы увидеть ретрансляцию в действии, посетите наши демо.
Вы можете использовать pip для установки последней версии RetVec TensorFlow:
pip install retvecRETVEC был протестирован на TensorFlow 2.6+ и Python 3.8+.
Вы можете использовать RETVEC в качестве слоя векторизации в любой модели TensorFlow только с одной строкой кода. RETVEC работает на необработанных строках со встроенными параметрами предварительной обработки (например, текст с более низким уровнем. Например:
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 также предлагает поддержку в TFJS и TF LITE, что делает ее идеальным для мобильных и веб-вариантов использования в области мобильных устройств.
Подробный пример Colabs для ретрансляции можно найти в ноутбуках. Это хороший способ начать с использования ретрансляции. Вы можете запустить ноутбуки в 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.