RetVec은 효율적이고 다국어로 만들어 지도록 설계된 차세대 텍스트 벡터 라이저로 유사성 학습으로 훈련 된 강력한 단어 임베딩을 사용하여 내장 적대적 탄력성을 제공합니다. 여기서 논문을 읽을 수 있습니다.
RETVEC는 삽입, 삭제, 오타, 균질, LEET 대체 등을 포함한 문자 수준 조작에 대해 탄력적 인 교육을 받았습니다. RETVEC 모델은 모든 UTF-8 문자와 단어를 효율적으로 인코딩 할 수있는 새로운 캐릭터 인코더 위에 훈련됩니다. 따라서 RetVec은 조회 테이블 또는 고정 어휘 크기없이 100 개가 넘는 언어로 제공됩니다. 또한 RetVec은 레이어이며, 이는 별도의 사전 프로세싱 단계가 필요없이 TF 모델에 삽입 될 수 있음을 의미합니다.
RetVec의 속도와 크기 (수백만 개의 매개 변수 대신 ~ 200k)는 또한 기기 및 웹 사용 사례에 적합한 선택입니다. Tensorflow 텍스트의 Custom Ops를 통해 Tensorflow Lite에서 기본적으로 지원되며 Tensorflow.js를 통해 웹 모델을 배포 할 수있는 RETVEC의 JavaScript 구현을 제공합니다.
RETVEC로 자신의 모델을 훈련시키는 방법에 대한 예제 Colabs를 참조하십시오. Train_Retvec_model_tf.ipynb는 retvec을 사용하여 TF 모델을 훈련시키는 데 좋은 출발점입니다.
Retvec의 행동을 보려면 데모를 방문하십시오.
pip 사용하여 최신 TensorFlow 버전의 RetVec을 설치할 수 있습니다.
pip install retvecRetVec은 Tensorflow 2.6+ 및 Python 3.8+에서 테스트되었습니다.
단일 줄의 코드만으로 ensorflow 모델에서 retvec을 벡터화 층으로 사용할 수 있습니다. 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는 또한 TFJ 및 TF Lite에 대한 지원을 제공하여 기기 모바일 및 웹 사용 사례에 적합합니다.
RETVEC에 대한 자세한 예제 Colabs는 노트북 아래에서 찾을 수 있습니다. 이것들은 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 제품이 아닙니다.