RetVec adalah vektorer teks generasi berikutnya yang dirancang untuk menjadi efisien, multibahasa, dan memberikan ketahanan permusuhan bawaan menggunakan embeddings kata yang kuat yang dilatih dengan pembelajaran kesamaan. Anda dapat membaca kertas di sini.
RETVEC dilatih agar tangguh terhadap manipulasi tingkat karakter termasuk penyisipan, penghapusan, kesalahan ketik, homoglif, substitusi leet, dan banyak lagi. Model RETVEC dilatih di atas encoder karakter baru yang dapat mengkode semua karakter dan kata-kata UTF-8 secara efisien. Dengan demikian, RETVEC bekerja di luar kotak pada lebih dari 100 bahasa tanpa perlu tabel pencarian atau ukuran kosa kata tetap. Selain itu, RetVec adalah lapisan, yang berarti dapat dimasukkan ke dalam model TF apa pun tanpa perlu langkah pra-pemrosesan yang terpisah.
Kecepatan dan ukuran Retvec (~ 200k, bukan jutaan parameter) juga menjadikannya pilihan yang bagus untuk kasus penggunaan dan penggunaan web. Ini didukung secara asli dalam TensorFlow Lite melalui OP khusus dalam teks TensorFlow, dan kami memberikan implementasi JavaScript dari RETVEC yang memungkinkan Anda menggunakan model web melalui TensorFlow.js.
Silakan lihat contoh kami Colabs tentang cara memulai dengan melatih model Anda sendiri dengan RetVec. train_retvec_model_tf.ipynb adalah titik awal yang bagus untuk melatih model TF menggunakan retvec.
Untuk melihat RETVEC beraksi, kunjungi demo kami.
Anda dapat menggunakan pip untuk menginstal versi TensorFlow terbaru dari RetVec:
pip install retvecRETVEC telah diuji pada TensorFlow 2.6+ dan Python 3.8+.
Anda dapat menggunakan RETVEC sebagai lapisan vektorisasi dalam model TensorFlow apa pun hanya dengan satu baris kode. RetVEC beroperasi pada string mentah dengan opsi pra-pemrosesan bawaan (misalnya teks lowercase). Misalnya:
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 )Kemudian Anda dapat mengkompilasi, melatih dan menyimpan model Anda seperti biasa! Seperti yang ditunjukkan dalam makalah kami, model yang dilatih menggunakan RetVEC lebih tangguh terhadap serangan dan kesalahan ketik permusuhan, serta efisien secara komputasi. RetVec juga menawarkan dukungan di TFJS dan TF Lite, menjadikannya sempurna untuk kasus penggunaan seluler dan web di perangkat.
Contoh Colabs RETVEC yang terperinci dapat ditemukan di bawah notebook. Ini adalah cara yang baik untuk memulai dengan menggunakan RetVec. Anda dapat menjalankan notebook di Google Colab dengan mengklik tombol Google Colab. Jika tidak ada contoh yang mirip dengan kasus penggunaan Anda, beri tahu kami!
Kami memiliki contoh Colabs berikut:
Harap kutip referensi ini jika Anda menggunakan retvec dalam penelitian Anda:
@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 }
}Untuk berkontribusi pada proyek, silakan periksa pedoman kontribusi. Terima kasih!
Ini bukan produk Google resmi.