Twelve Labs의 인공지능은 서비스로 제공되기 까지 굉장히 많은 과정을 거쳐 완성됩니다. 수 많은 데이터와 큰 모델을 학습하기 위한 training system 과 학습이 완료된 모델을 서빙하기 위한 deployment 과정이 필요하고 이러한 일련의 과정을 효율적으로 하기 위한 여러가지 challenge가 존재합니다.
Large-scale Training & Finetuning System. Foundation 모델을 만들기 위해서 필요한 대량의 video data 수집 그리고 수집된 데이터를 이용해 많은 GPU를 사용한 large model training, 그리고 foundation 모델을 더 잘 활용할 수 있도록 고객의 데이터에 맞춰 finetuning 시스템을 개발합니다.
Automated MLOps System. 완성된 모델을 production에서 serving 하기 위해 모델 단위의 테스트를 자동화 하고 무중단 배포를 진행합니다. 그리고 모델과 dataset 에 대한 version control등을 통해 모델을 서빙하는데 필요로하는 것들에 대한 관리를 진행하고 안정성을 높입니다.
Video는 다양한 종류의 데이터를 가지고 있고, 각기 다른 특성을 지니고 있습니다. 이러한 특성에 맞춰 제공 되는 모델이 필요하고 이에 따라 복잡하고 다양한 data pipeline이 요구 됩니다.
Complex and Various Data Processing Pipeline. 비디오 안에는 다양한 형태의 데이터가 합쳐져 만들어집니다. 그리고 이러한 데이터들은 서로 다른 포맷으로 다른 정보를 담고 있기 때문에 각 형태에 맞는 processing 방법이 존재하며, 경우에 따라 한 모델에 output을 이용해 다른 모델의 input으로 사용하기도 합니다. 따라서 이런 요구 조건들을 만족한 복잡한 파이프라인을 필요로 합니다.
Diverse Model Serving. Twelve Labs 는 수 많은 모델을 같이 serving 하고 있고, 이 경우 하나의 모델을 서빙할 때와 달리 시간적, 공간적 요소로 최적화 및 형식화를 필요로 합니다. 또 하나의 machine으로 관리 되지 않아 multi-node 간에 management 또한 필요하게 됩니다.
Aggregation Outputs with Different Formats 모델 serving 과정에서 마지막으로 다양한 모델에서 부터 나온 결과값을 고객의 원하는 형태에 맞춰 다시 한번 정제가 필요합니다. 이 과정에서 서로 다른 데이터 형식을 지닌 경우 하나의 형식으로 맞춰주고, 그 결과 속의 시간적, 공간적 차이를 통합해 결과를 도출합니다.
비디오와 거대 인공지능 모델에 특성상 수 많은 computing resource를 필요로 하고 이에 따라 높은 cost가 발생합니다. Video를 다루기 위한 decoding, encoding 과정에서부터 Foundation model을 서빙하기 위한 Tensor processing 부분까지 다양한 최적화가 진행됩니다.
Video Decoding and Processing. Video는 다른 데이터에 비해 무겁기 때문에 다양한 Compression Algorithm이 존재하고, 이것을 처리하는 과정에서 인공 지능 모델이 잘 활용할 수 있도록 Decoding 과정에서의 최적화를 필요로 합니다.
GPU-centric Computation. 인공 지능 모델이 커졌을 때 Tensor를 processing 하는 단계에서 cost가 크게 증가하게 됩니다. 따라서 Tensor 처리 비용에 최적화를 위해 여러가지 기법을 사용합니다. model의 설계과정에서의 최적화와 Runtime 단계에서 computation graph optimization 등 다양한 기법 활용합니다.