sbert

    [MLops]. ONNX Runtime 문장 임베딩(sentence embedding) 속도 및 연산량 개선하기

    BackGround 우리 회사는 SentenceTransformer를 기반으로 파인튜닝한 문장 임베딩 모델을 사용하고 있다. 하지만 모델의 크기가 커질 수록 임베딩 시간은 늘어나고 많은 연산량을 요구하게된다. 그렇다고 모델의 크기를 줄이면 정확도가 떨어진다. 하지만 ONNX는 Inferance 속도를 최대한으로 높히면서 정확도 손실을 최소화하는 여러 가지 기능을 가지고있다. Sentence-Transfomer 모델을 ONNX Runtime으로 변환하면서 얻었던 장점들을 정리해보고자 한다. What is ONNX ? ONNX는 Open Neural Network Exchange의 줄인 말로서 이름과 같이 다른 DNN 프레임워크 환경(ex Tensorflow, PyTorch, etc..)에서 만들어진 모델들..

    [NLP]. SentenceTransformer 모델 TensorFlow로 불러오기

    참고 : https://www.philschmid.de/tensorflow-sentence-transformers HuggingFace 에는 Tensorflow 모델 형식인 h5 파일이 없는상태 h5 모델이 없는 상태에서도 Tensorflow 모델로 불러올 수 있다. 클래스 구현 import tensorflow as tf from typing import Union , List from transformers import TFAutoModel from transformers import AutoTokenizer class TFSentenceTransformer(tf.keras.layers.Layer): def __init__(self, model_name_or_path): super(TFSentenceT..

    [NLP]. Sentence-Transformer 모델 onnx 형식으로 변환하기

    HuggingFace에 등록된 모델을 불러와 onnx 파일 형식으로 저장하기 from pathlib import Path from transformers.convert_graph_to_onnx import convert convert(framework="pt", model="j5ng/sentence-klue-roberta-base", output=Path("onnx_models/trfs-model.onnx"), opset=11)​ Logs ransformers.convert_graph_to_onnx` package is deprecated and will be removed in version 5 of Transformers warnings.warn( ONNX opset version set to: 11..