주요 컨텐츠로 이동
Engineering blog

데이터 레이크하우스를 통한 컴퓨터 비전 애플리케이션 활성화

Paulo Borges
Bala Amavasai
Bryan Smith
이 포스트 공유하기

번역:HaUn Kim  -  Original Blog Link

Rise of the Data Lakehouse를 통해 데이터 웨어하우스의 창시자인 빌 인몬과 함께 레이크하우스가 미래의 데이터 아키텍처인 이유를 살펴보세요.


컴퓨터 비전 애플리케이션은 레이크하우스가 지원하는 컴퓨터 비전으로 품질, 운영 및 안전 문제 해결하기 블로그에서 보실 수 있듯이 리테일과 제조 업계를 혁신할 수 있는 잠재력을 가지고 있습니다. 그러나 수많은 기술적 문제로 인해 기업들은 이러한 잠재력을 실현하지 못하고 있는데요. 이에 대한 기술 시리즈의 첫 번째 소개 편에서는 컴퓨터 비전 애플리케이션의 개발과 구현에 관련된 문제를 자세히 살펴보고, 데이터 수집, 모델 훈련 및 모델 배포에 사용되는 기본 패턴을 알아보도록 하겠습니다.

이미지 데이터는 고유한 특성으로 인해 보다 더 신중하게 관리해야 하며, 학습된 모델을 일선 애플리케이션과 통합하기 위해 다양한 비전통적인 배포 경로를 고려해야 합니다. 모든 컴퓨터 비전 문제에 대한 만능 해결책은 없지만, 실제 비즈니스 문제를 해결하기 위해 컴퓨터 비전 시스템 사용을 선도해온 기업들은 다양한 기법과 기술을 개발해 왔습니다. 이러한 기술을 활용하면 데모에서 운영 단계로 더욱 신속하게 전환할 수 있으며 이는 앞서 언급한 블로그의 내용과 일치합니다.

데이터 수집

일반적으로 컴퓨터 비전 애플리케이션 개발의 첫 번째 단계는 이미지 데이터의 축적입니다. 이미지 파일은 카메라 기능이 있는 장치로부터 캡처되어 중앙 스토리지 저장소로 전송되며, 이 저장소에서 모델 훈련을 위해 사용할 수 있도록 준비됩니다.

널리 사용되는 PNG 및 JPEG와 같은 대부분의 이미지 포맷은 임베디드 메타데이터를 지원합니다. 이미지의 기본 메타데이터에는 이미지의 높이와 너비와 같은 정보가 포함되어 있으며, 이러한 정보는 픽셀 값을 2차원 표현으로 변환하는 데 사용됩니다. 또한 Exif(Exchangeable Image File Format)와 같은 추가 메타데이터를 통해 카메라, 카메라 설정 및 장치에 GPS 센서가 있는 경우 잠재적인 카메라 위치와 같은 추가 세부 정보도 제공할 수 있습니다.

이미지 라이브러리를 구축할 때 메타데이터와 통계는 레이크하우스 스토리이제 도착하는 즉시 처리되는 것이 유용합니다. 왜냐하면 데이터 사이언티스트들은 일반적으로 수천 또는 수백만 개의 이미지를 거치며 이러한 데이터를 살펴봐야 하기 때문입니다. Pillow와 같은 일반적인 오픈 소스 라이브러리를 사용하면 메타데이터와 통계를 추출하여 레이크하우스 환경에서 쿼리 가능한 테이블에 저장하고 쉽게 액세스할 수 있습니다. 이미지를 구성하는 바이너리 데이터도 스토리지 환경의 원본 파일 경로 정보와 함께 해당 테이블에 유지될 수 있습니다.

Typical computer image data processing workflow for incoming image files. 그림 1. 수신 이미지 파일에 대한 데이터 처리 워크플로

모델 트레이닝 

개별 이미지 파일의 크기와 강력한 모델을 훈련하는 데 필요한 이미지 파일의 수가 많기 때문에 모델 훈련 중에 이러한 파일을 어떻게 처리할지 신중하게 고려해야 합니다.

엔터프라이즈 규모에서는 데이터 사이언스 과제에 일반적으로 사용되는 기술인 판다 데이터 프레임에 모델 입력을 수집하는 것이 개별 컴퓨터의 메모리 제한으로 인해 작동하지 않을 수 있습니다. 이런 경우에는 컴퓨팅 클러스터로 구성된 여러 컴퓨터 노드에 데이터 볼륨을 분산하는 Spark™ 데이터프레임을 사용하는 것이 일반적입니다. 그러나 대부분의 컴퓨터 비전 라이브러리에서는 Spark™ 데이터프레임을 액세스할 수 없기 때문에 다른 솔루션이 필요합니다.

이러한 문제를 극복하기 위해 특별히 구축된 데이터 캐싱 기술인 Petastorm을 사용할 수 있습니다. Petastorm은 레이크하우스에서 대용량의 데이터를 검색하여 임시 스토리지 기반 캐시에 저장합니다. 이는 고급 딥러닝 모델 유형의 대규모 학습을 위해 특히 유용합니다. Tensorflow와 PyTorch와 같은 가장 많이 사용되는 딥 뉴럴 네트워크 개발 라이브러리는 Petastorm 데이터 세트를 반복할 때 작은 데이터 하위 집합을 캐시에서 일괄적으로 읽을 수 있습니다.

따라서 Petastorm과 같은 데이터 캐싱 기술을 활용하면 대규모 이미지 파일을 효율적으로 처리하고 모델 훈련에 활용할 수 있습니다.

Lakehouse data persisted to temporary Petastorm cache, commonly used with computer vision use cases.

그림 2. 레이크하우스 데이터가 임시 Petastorm 캐시에 영속됨

데이터 볼륨을 관리할 수 있는 경우, 다음 과제는 모델 학습 자체를 가속화하는 것입니다. 머신러닝 모델은 반복적인 학습을 통해 예측 정확도를 향상시키기 위해 입력 데이터 세트에 대한 일련의 반복된 "통과 (pass)"로 구성된다고 볼 수 있습니다. 각 통과를 거칠 때마다 모델은 다양한 기능에 대해 최적화된 가중치를 학습하게 되어 예측 정확도를 향상시킵니다.

하이퍼파라미터 튜닝은 모델의 학습 알고리즘을 제어하기 위해 사용되는 파라미터들의 최적값을 찾는 과정입니다. 이를 통해 모델의 성능을 향상시킬 수 있습니다. 하이퍼파라미터 값은 도메인 지식만으로는 설정하기 어려운 경우가 많기 때문에 여러 모델을 학습시켜 어떤 모델이 가장 우수한 성능을 보이는지 결정하는 것이 일반적입니다.

하이퍼파라미터 튜닝을 수행하기 위해 많은 반복이 필요하며, 이를 효율적으로 처리하기 위해서는 병렬 처리가 필요합니다. 하이퍼옵트(Hyperopt)는 이러한 실행을 웨이브 단위로 분산하여 병렬 방식으로 처리할 수 있는 도구입니다. 하이퍼옵트는 각 하이퍼파라미터 값이 어떤 결과를 가져오는지 평가한 후, 다음 웨이브에서는 지능적으로 하이퍼파라미터 값을 설정합니다. 이를 통해 더욱 빠르게 최적의 하이퍼파라미터 값을 찾아갈 수 있습니다. 반복된 웨이브 실행이 끝나면, 소프트웨어는 철저한 평가를 통해 최적의 하이퍼파라미터 값 집합에 수렴하게 됩니다. 따라서 하이퍼파라미터 튜닝은 모델의 학습에 있어서 매우 중요한 과정이며, 병렬 처리를 통해 효율적으로 수행될 수 있습니다. 하이퍼옵트와 같은 도구를 활용하면 최적의 하이퍼파라미터 값을 더욱 빠르게 찾을 수 있습니다.

Leveraging Hyperopt and Horovod to distribute hyperparameter tuning and model training for computer vision tasks, respectively 그림 3. 하이퍼옵트와 Horovod를 활용하여 각각 하이퍼파라미터 튜닝과 모델 학습을 배포하는 방법

 

최적의 하이퍼파라미터 값이 결정되면 Horovod를 사용하여 클러스터 전체에 최종 모델의 학습을 분산시킬 수 있습니다. Horovod는 입력 훈련 데이터를 겹치지 않는 하위 집합으로 나누어 클러스터의 각 컴퓨팅 노드에서 모델의 독립적인 훈련을 조율합니다. 이러한 병렬 실행을 통해 학습된 가중치는 전체 입력 집합을 통과할 때마다 통합되며, 모델은 집단 학습을 기반으로 재조정됩니다. 최종 결과는 클러스터의 집단적인 계산 능력을 활용하여 학습된 최적화된 모델입니다.

모델 배포

컴퓨터 비전 모델의 경우, 주로 사람이 시각적으로 검사하는 영역에 모델의 예측 기능을 도입하는 것이 목표입니다. 일부 시나리오에서는 이미지를 중앙에서 채점하는 것이 적합할 수 있지만, 일반적으로는 로컬(엣지) 디바이스가 이미지를 캡처하고 학습된 모델을 호출하여 실시간으로 검사 결과를 생성하는 역할을 맡게 됩니다. 엣지 배포는 모델의 복잡성, 로컬 디바이스의 용량, 지연 시간 및/또는 네트워크 중단에 대한 허용 오차에 따라 일반적으로 두 가지 형태 중 하나를 선택합니다.

마이크로서비스 배포에서는 모델이 네트워크에 액세스할 수 있는 서비스로 제공됩니다. 이 서비스는 중앙 집중식 위치에서 호스팅되거나 일부 엣지 디바이스와 더 밀접하게 연계된 여러 위치에서 호스팅될 수 있습니다. 그런 다음 디바이스에서 실행 중인 애플리케이션이 이미지를 서비스로 전송하고 필요한 점수를 받도록 구성됩니다. 이 접근 방식은 애플리케이션 개발자에게 모델 호스팅의 유연성을 높여주며, 일반적으로 엣지 디바이스에서 사용 가능한 리소스에 비해 더 많은 서비스 리소스에 액세스할 수 있는 이점이 있습니다. 그러나 추가 인프라가 필요하다는 단점과 네트워크 지연 및/또는 중단이 애플리케이션에 영향을 줄 수 있는 위험이 있습니다.

Edge deployment paths facilitated by MLflow, commonly used for computer vision tasks. 그림 4. MLflow로 활성화되는 엣지 배포 경로

엣지 배포를 사용하면 이전에 학습된 모델이 직접 로컬 디바이스로 전송됩니다. 이 방식을 통해 모델이 전송된 후 네트워킹에 대한 우려를 줄일 수 있지만, 디바이스의 하드웨어 리소스가 제한되어 있어 제약이 있을 수 있습니다. 또한, 많은 엣지 디바이스는 모델이 학습되는 시스템과 다른 프로세서를 사용하기 때문에 소프트웨어 호환성 문제가 발생할 수 있으며, 이러한 배포에 리소스를 투입하기 전에 신중하게 검토해야 할 수 있습니다.

두 시나리오 모두 모델 관리 리포지토리인 MLflow를 활용하여 모델의 패키징 및 전달을 지원할 수 있습니다. 

데이터브릭스로 통합하기 

다양한 과제를 해결하기 위해 PiCamera가 장착된 Raspberry Pi 장치에서 캡처한 데이터를 활용하는 일련의 노트북을 개발했습니다. 이 장치에서 촬영한 이미지는 클라우드 스토리지 환경으로 전송되며, 앞서 설명한 기능들을 사전 구성된 데이터브릭스 ML 런타임을 사용하여 이미지 수집, 모델 훈련 및 배포 패턴을 시연할 수 있습니다. 자세한 내용은 아래의 노트북을 참조해주세요:

Get the notebook

Databricks 무료로 시작하기

관련 포스트

Engineering blog

데이터 레이크하우스를 통한 컴퓨터 비전 애플리케이션 활성화

번역:HaUn Kim - Original Blog Link Rise of the Data Lakehouse 를 통해 데이터 웨어하우스의 창시자인 빌 인몬과 함께 레이크하우스가 미래의 데이터 아키텍처인...
모든 엔지니어링 블로그 포스트 보기