AI Engineering/OpenVINO

반응형

    OpenVINO 뽀개기 (3) OpenVINO Quantization

    OpenVINO 모델을 optimization하기 위한 방법으로 Quantization에 대해 설명드립니다. 1. Quantization이란? 기존 Torch, ONNX model의 parameters(i.e. weights, bias)들은 각각이 float32로 표현되어 있습니다. Quantization은 float32의 data를 그 보다 낮은 bit(e.g. float16, int8)로 표현시켜 경량화시킵니다. 이렇게 함으로써 (1) inference time, (2) model size를 줄일 수 있다는 장점을 가집니다. 단점으로는 data의 정보손실이 발생하므로 Accuracy, mAP는 떨어지게 됩니다. 그럼, 다음과 같은 2가지 궁금증이 생기실 겁니다. 질문과 함께 답변드려볼게요. 몇 bit..

    OpenVINO 뽀개기 (2) OpenVINO Inference

     저번 글에 이어 이번에는 OpenVINO모델을 Inference하는 방법에 대해 설명드리도록 하겠습니다. 1. OpenVINO Runtime OpenVINO (IR)모델을 inference할 수 있도록 하는 것이 OpenVINO runtime입니다. OpenVINO runtime은 C, python의 binding과 함께 C++ library로 구현되어 있습니다. 그리고 위 그림에서 알 수 있듯이 OpenVINO runtime을 통해 IR모델 뿐만아니라 ONNX, PaddlePaddle(바이두)모델도 Inference가능하도록 API를 제공합니다. 또한 plugin architecture를 사용하기 때문에 해당 plugin들은 각 hardware device에 맞춰진 complete한 구현이 되어있습..

    OpenVINO 뽀개기 (1) OpenVINO 이해 및 변환

    1. OpenVINO란? OpenVINO는 intel에서 주도적으로 진행 중인 프로젝트입니다. OpenVINO는 다양한 Deep Learning(DL) framework(e.g. PyTorch, TF)의 모델들을 OPenVINO 모델로 변환하여 intel device에 최적화된 inference를 할 수 있도록 해줍니다. 그래서 intel cpu나 gpu에서 DL 모델을 inference할 경우가 생기신다면 OpenVINO를 사용하셔야 latency성능이 좋아집니다! 추가적으로 OpenVINO는 다음과 같은 특성은 제공합니다. Pruning, Quantization을 통한 model size 및 inference 최적화 Model의 preprocessing, postprocessing 기능 제공 int..

반응형