RetVECは、類似性学習で訓練された堅牢な単語埋め込みを使用して、効率的で多言語であり、組み込みの敵対的な回復力を提供するように設計された次世代テキストベクターです。ここで論文を読むことができます。
RETVECは、挿入、削除、タイプミス、ホモグリフ、LEET代替など、キャラクターレベルの操作に対して回復力があるように訓練されています。 RetVECモデルは、すべてのUTF-8文字と単語を効率的にエンコードできる新しい文字エンコーダーの上でトレーニングされています。したがって、RETVECは、ルックアップテーブルや固定語彙サイズを必要とせずに、100を超える言語ですぐに動作します。さらに、RetVECはレイヤーです。つまり、別の前処理ステップを必要とせずに任意のTFモデルに挿入できます。
RetVECの速度とサイズ(数百万のパラメーターではなく〜200k)も、オンデバイスおよびWebユースケースに最適です。 TensorflowテキストのカスタムOPSを介してTensorflow Liteでネイティブにサポートされており、Tensorflow.jsを介してWebモデルを展開できるRetVECのJavaScript実装を提供します。
RetVECで自分のモデルのトレーニングを始める方法についてのコラブの例をご覧ください。 train_retvec_model_tf.ipynbは、RetVECを使用してTFモデルをトレーニングするための優れた出発点です。
RetVECが動作しているのを見るには、デモをご覧ください。
pipを使用して、RetVECの最新のTensorFlowバージョンをインストールできます。
pip install retvecRetVECは、Tensorflow 2.6+およびPython 3.8+でテストされています。
RETVECは、単一のコードを使用してTensorflowモデルのベクトル化レイヤーとして使用できます。 RETVECは、前処理オプションが組み込まれた生文字列で動作します(例:Lowercasing Text)。例えば:
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でのサポートも提供しており、デバイス上のモバイルおよびWebユースケースに最適です。
RetVECの詳細な例は、ノートブックの下にあります。これらは、RetVECの使用を開始するための良い方法です。 Google Colabボタンをクリックして、Google Colabでノートブックを実行できます。例のいずれもユースケースに似ていない場合は、お知らせください!
次の例があります:
研究で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製品ではありません。