Superb AI와 Comet ML이 만나다 - 데이터 플랫폼과 모델 실험 플랫폼의 결합

Superb AI와 Comet ML이 만나다 - 데이터 플랫폼과 모델 실험 플랫폼의 결합

들어가며

머신러닝 프로젝트에 있어서, 데이터셋 버전 하나에 하나의 모델만 학습시켜서는 실용화 모델을 만들 수 없다는 것은 불가피한 진리입니다. 머신러닝 라이프사이클은 그 특성상 매우 반복적이고 상호 의존적입니다. 어떤 프로젝트든 데이터셋 구축과 모델을 개발하는 과정에 있어, 수많은 반복 순환 작업이 요구됩니다.

거기에 더해 머신러닝 워크플로우에서는 한 부분에만 변화를 줘도 나머지 모든 부분에도 영향이 가게 됩니다. (Hidden Technical Debt in Machine Learning Systems 논문 참조)

새로운 학습 데이터가 있나요? 새 데이터가 모델 성능에 어떤 영향을 줄지 판단하기 위해서 먼저 여러차례 모델 학습 실험을 해 볼 필요가 있습니다. 모델의 성능이 좋지 않은가요? 그렇다면, 다시 정답 데이터용 데이터 샘플을 수집하고 라벨링을 수정하는 등 데이터셋 수정 작업을 시도해볼 수 있습니다. 이렇게 데이터 작업(수집 및 관리)와 모델 작업 (모델 학습 및 실험) 사이의 피드백 루프는 머신러닝 라이프사이클에서 가장 중요하고, 동시에 아마 가장 큰 비용이 들어가는 과정입니다.

더 나은 모델을 빠르게 구축하기 위해, 각 개인과 팀이 각 워크플로우 단계별 작업이 투명하게 공유될 수 있게 하는 것은 물론 매 단계마다의 작업이 재현 가능하고 변경사항을 추적가능한 형태로 설계될 수 있도록 하는 툴과 역량이 필요할 것입니다. 그리고 이는 여러분의 팀에게 Superb AI의 Suite나 Comet과 같은 툴을 함께 사용할 때, 달성 가능한 목표가 됩니다.

그럼 지금부터 머신러닝 라이프사이클에서 이 두 가지 툴이, 다르지만 깊이 연결된 데이터와 모델이라는 두 과정을 어떻게 가속화하고 개선시킬 수 있는지 살펴보겠습니다. 또한, Superb AI와 Comet을 활용해서 모델 예측, 데이터셋의 반복 구축 작업, 그리고 이를 토대로 모델을 재학습시키는 계속되는 반복 과정 사이의 피드백 루프를 생성하는 방법도 소개드릴 예정입니다.


Superb AI의 데이터셋 준비 플랫폼 Suite

Source: https://www.superb-ai.com/product/automate

Superb AI는 머신러닝 팀이 높은 품질의 학습 데이터셋을 구축하는 데 드는 시간을 획기적으로 줄일 수 있는 혁신적인 방법을 소개합니다. 머신러닝 팀은 데이터 준비 워크플로우의 대부분을 사람 라벨러에게 의존하는 대신 Superb AI Suite을 활용해 시간과 비용면에서 더 효율적인 파이프라인을 적용할 수 있습니다.

일반적인 데이터 준비 파이프라인은 다음과 같은 과정을 거칩니다.

• 인풋 데이터 업로드 (Data ingestion) : 이미지, 비디오 등의 인풋 데이터는 주로 다양한 출처를 통해 수집됩니다. 사용자는 Super AI Suite에 인풋 데이터를 클라우드(AWS 혹은 GCP)나 Suite의 SDK/API를 통해 로우 파일 그대로 업로드할 수 있습니다.

• 정답 데이터 생성 (Ground-truth data creation) : 적은 양의 초기 정답 데이터는 라벨링 작업에 있어 필수적입니다. 사용자는 필터링 기능을 제공하는 Suite 내장 라벨링 툴을 이용해서 정답 데이터를 생성할 수 있습니다. Suite는 이미지 분류, 객체 탐지, 객체 분할 등을 위한 라벨링 작업이 가능한데, 바운딩 박스·폴리라인·폴리곤·키포인트 등을 지원합니다.

• 오토 라벨링 (Automatic labeling) : Superb AI의 맞춤형 오토라벨링 기술은 전이학습과 퓨샷러닝, 자기지도 학습을 조합한 고유의 학습법을 사용합니다. 이는 모델이 소규모의 고객 소유 데이터셋을 이용해서 높은 수준의 정확도에 빠르게 다다를 수 있게 해줍니다. 게다가 커스텀 오토라벨링은 학습용 초기 데이터셋이나 재학습 목적으로 엣지 케이스를 라벨링하는 작업 등 어떠한 프로젝트든 즉시 시작할 수 있도록 해줍니다. 이는 데이터셋을 준비하는 시간을 획기적으로 줄여줍니다.

• 라벨링된 데이터 전달 (Labeled data delivery) : 데이터 라벨링에서 검수와 검토 과정은 데이터셋의 품질에 필수적입니다. 현실적으로 모든 라벨을 일일이 검토하는 일은 불가능합니다. Superb AI Suite은 여러 머신 러닝 모델을 통해 평가한 라벨 정확도 지표를 활용해서 검수 과정을 간소화시켜줍니다. 이렇게 엄격한 품질 관리 과정을 거친 이후 완전히 라벨링을 완료한 데이터는 MLOps 파이프라인으로 넘겨집니다.


모델 실험 관리 플랫폼 Comet

머신 러닝은 소프트웨어 공학에서 명확하게 정의될 수 없는 문제들을 동반합니다. 전통적인 소프트웨어 공학에서는 추상화라는 접근 방식을 취할 수 있는데, 이는 개별적 변화에 대한 효과를 따로 분리해내기 위해서, 시스템 내의 각기 다른 요소들을 간추려내는 것을 의미합니다. 반면 머신러닝 시스템은 데이터셋의 사이즈, 데이터셋 내 기능 분포도, 데이터 스케일링, 분리 기법, 옵티마이저 유형 등 수많은 업스트림 의존관계로 형성되어 있습니다. 이렇게 머신러닝 시스템에서는 명확한 분류가 어려운데다 데이터 수집 과정은 불완전한 과정이고, 효과적인 머신러닝 모델은 매우 복잡하기 때문에 모델 실험은 필수입니다.

Source : https://bit.ly/3ID8DKy

모델 실험의 목표는 점진적인 변화가 시스템에 어떤 영향을 주는지 이해하는 것입니다. 다양한 모델 유형, 데이터 변환, 피쳐 엔지니어링 유형 및 최적화 기법 등에 걸친 모델 실험을 신속하게 하게 함으로써, 팀은 무엇이 제대로 작동하고 있고 그렇지 않은지 쉽게 분별할 수 있습니다.

머신러닝은 실험적이고 반복적인 과정이기 때문에 이렇게 다양한 변동성의 근원을 추적하는 일은 필수적입니다. 매 과정을 일일이 추적하는 것은 반복적이고 늘어지는 작업인데, 이러한 현상은 머신러닝 팀의 규모가 커지고 팀원간의 협업이 변수가 되면서 더욱 심해질 수 있습니다. 머신러닝 논문의 재현성에 문제가 있다는 사실은 잘 알려져있고 문제 해결을 위해 여러 방법이 제시되고 있기는 하지만, 우리는 인간이기에 간과하는 경우가 많습니다.

바로 여기서 Comet과 같은 플랫폼이 등장할 차례입니다. Comet은 실무자들이 실험, 소스코드, 데이터셋, 모델 등을 추적 및 비교하고 시각화해서 공유하는 작업을 자동화할 수 있도록 지원하는 실험 관리 플랫폼입니다.


Comet을 통한 일반적인 실험은 다음과 같은 과정을 따릅니다.

1. 프로젝트 범위와 연관 메트릭을 정의합니다. 이 작업은 보통 모델 개발 과정에서 가장 어려운 과정입니다. 다양한 이해관계자와 소통하고 모델에서 얻고자 하는 결과를 세우고 이를 어떤 지표를 통해 측정할 것이지 설계하는 과정을 포함하죠.

2. 연관 데이터셋을 Comet에 Artifact로 기록합니다. Comet Artifacts는 데이터셋 계보뿐만 아니라 모델 실험 과정에서 생성된 다른 데이터셋(모델 체크포인트, 중간 데이터셋 등)을 추적하는 데 이용하는 툴입니다.

3. 여러가지 모델 유형, 데이터 변환, 피쳐 엔지니어링 유형, 최적화 기법을 이용해서 반복적으로 실험합니다. 이미 언급했듯이 데이터셋에 어떤 모델 유형이 가장 적합할지 분별해내기 위해서는 실험이 필수입니다. 이러한 변수를 추적하는 과정을 자동화하게 되면 신속하게 반복 작업을 할 수 있습니다.

4. 실제 프로덕션 환경에서 모델을 평가합니다. 사용하고자 하는 모델 후보가 정해졌다면 이를 프로덕션 환경으로 배포해서 추적 관찰 해보아야 합니다. 그래야 리얼 월드 데이터에 적용했을 때의 성능을 평가하고 실험 과정에서와 실제 프로덕션 환경에서의 모델 성능 차이를 비교해볼 수 있기 때문이죠.

5. 데이터를 업데이트 합니다. 시간이 흐르고 들어오는 리얼 월드 데이터가 계속 변함에 따라 모델의 성능이 떨어지는 것은 피할 수 없습니다. 이러한 성능 차이를 해결하기 위해서는 해당 모델을 위한 학습용 데이터셋을 업데이트하는 것이 필수입니다.

6. 모델을 재학습시킵니다. 학습용 데이터셋이 업데이트 되면, 위의 1단계부터 4단계까지의 과정을 반복해서 모델을 업데이트합니다.



Superb AI Suite와 Comet을 활용한 데이터와 모델간의 파이프라인과 피드백 루프 구축

Superb AI Suite와 Comet을 활용한 데이터와 모델간의 파이프라인

Superb AI와 Comet은 각각 데이터 준비와 모델 실험 과정의 워크플로우를 하나의 파이프라인으로 결합해줄 수 있습니다. 위 그림의 워크플로우 도표 순서를 따라 설명을 드려보겠습니다.

1. 여러분이 데이터 소스를 통해 수집한 로우(raw) 데이터셋이 있다고 가정해봅시다. 우선 Superb AI의 Suite를 통해 그 데이터를 넣고, 적은 양의 초기 정답 데이터셋을 생성합니다. Suite만의 오토라벨링 기술을 통해 로우 데이터셋을 빠르고 쉽게 라벨링하고, 그 중 작업이 까다로운 라벨만 수동으로 검수하는 작업을 거치면, 여러분은 쉽게 학습용 데이터셋을 구축할 수 있습니다.

2. 이후 라벨링된 데이터셋은 Superb AI의 Suite에서 Comet 플랫폼으로 넘어갑니다.

3. Comet Artifacts를 통해 라벨링된 데이터셋 아티팩트를 생성하고 그 아티팩트를 통해 모델 실험을 진행한 뒤 모델 성능을 평가할 수 있습니다. 모델 예측 시각화는 물론 예측된 실패 케이스를 가시화할 수 있습니다.

4. 모델 예측 실패 케이스를 Comet에서 다시 Superb AI에 넘겨 주면, Suite에서 이를 토대로 정답 데이터를 구축한 후 모델을 재학습하는 과정을 시작할 수 있습니다.

이러한 과정을 통해, DataOps 팀과 MLOps 팀 사이의 워크플로우를 분리하면서 동시에 전체 데이터-모델 파이프라인은 투명하게 공유되고 검수가 가능한 형태로 팀간 협업을 진행할 수 있습니다. 이런 파이프라인을 구축하면 팀은 과학자와 엔지니어 간의 빠르고 원활한 협업이 가능해지므로 팀의 생산성은 현저히 높아집니다.


마치며

팀에게 가장 필요한 플랫폼을 선택하면 머신러닝 개발을 훨씬 실현 가능한 작업으로 만들어줍니다. 특히 머신러닝 전략을 스케일 업하려고 하는 경우는 말이죠. Superb AI의 데이터셋 구축 플랫폼 기능과 Comet의 모델 개발 기능을 활용하면 여러분의 머신러닝 팀은 다음과 같은 결과를 달성할 수 있습니다.

• 학습용 데이터셋을 가능한 빠르게 구축하고 검수할 수 있습니다.

• 데이터셋에 준 변화가 학습된 모델의 성능에 어떤 영향을 미치는지 알 수 있습니다.

• 특정 데이터셋에 대한 선택이 모델 성능에 어떤 영향을 미치는지에 대해 더 자세히 이해하기 위해서 모델을 학습시키는 실험 과정을 가시적으로 살펴볼 수 있습니다.

• 학습용 데이터셋의 어느 부분에서 차이가 발생하는지 알고, 그 부분에 중점을 두고 반복 개선 과정을 진행한 후 각각의 모델 학습 사이의 성능을 비교 할 수 있습니다.

Comet 플랫폼에 대해 더 자세히 알아보고 싶으시다면, 무료로 제품에 가입하고 Comet이 발행하고 있는 Heartbeat를 참고해보세요.

Superb AI Suite에 대해 더 자세히 알아보고 싶으시다면, 지금 무료로 가입하고 저희가 만들어가는 콘텐츠가 가득한 Superb AI 블로그를 참고해보세요.