ML프로젝트 실현 가능성을 높이는 예산 관리 방법 6가지

ML프로젝트 실현 가능성을 높이는 예산 관리 방법 6가지

데이터 라벨링이 비싸고 시간 소모가 상당한 작업이라는 것은 잘 알려져 있습니다.따라서 라벨링 작업에 무턱대고 뛰어들기 전에 다음 소개할 몇 가지 팁들을 고려해 컴퓨터 비전 학습 데이터와 라벨링 예산을 효율적으로 운용할 수 있도록 신중히 계획을 짜야합니다.

들어가며

‍AI 및 컴퓨터 비전 프로젝트의 성공여부는 궁극적으로 학습 데이터셋의 품질과 대표성 뿐 아니라 데이터셋의 크기가 좌우합니다. 사용하는 알고리즘과 ML 피쳐 엔지니어링에 대해 얼마나 정통한지도 또한 상당한 영향을 미치긴 하지만, 당신이 무엇을 ''투입시키는지”는 프로젝트에서 분명히 우선 순위를 가집니다. 많은 머신 러닝 엔지니어와 데이터 과학자들이 즐겨하는 유명한 말 - “쓰레기를 넣으면, 쓰레기가 나온다" Garbage In, Garbage Out - 도 있듯이요.

그러나 속도, 정확성 및 일관성을 균형 있게 유지하면서 올바른 데이터셋을 수집하고 라벨링 하는 것은 엄청난 작업이 될 수 있습니다. 꽤 많은 경우, 이런 부분을 과소평가하여 프로젝트 실패로 이어지기도 합니다. 프로젝트가 한창 진행된 다음에 다음과 같은 질문들을 던지게 될 수 있겠죠.

- 왜 우리는 이 모든 바운딩박스 작업을 다시 해야 할까?

- 아직 1만 개의 이미지 라벨링 작업이 남아있는데 우리는 어쩌다 이 데이터셋에 5만 달러를 써 버렸을까?

- 왜 우리 팀의 데이터 과학자들은 이번 주 대부분의 시간을 데이터 준비에 사용했을까?

- X 이미지를 충분히 수집하지 못한 이유는 무엇이었을까 또는 모델이 X를 정확하게 예측할 수는 없는 이유는 무엇일까?

다행히도, 여러분은 이 블로그에서 소개할 몇 가지 기본적인 팁과 효과적인 예산 운용에 대한 인사이트를 통해 이런 문제의 대부분을 해결할 수 있을 것입니다. 먼저, 컴퓨터 비전 프로젝트에 예산 편성이 왜 그렇게 중요한지에 대한 근본적인 질문을 던져보도록 하죠.‍

예산이 중요한 이유

플래닝 과정에서 종종 간과되지만, 예산은 AI 및 컴퓨터 비전 프로젝트의 정확한 ROI를 계산하는 데 중요한 역할을 합니다. 예산은 전체 기술스택, 리소스, 인력 운용 등에 따라 상이하기 때문에 얼마를 써도 상관없다고 생각하는 금액과 비교하여, 가용 예산 범위가 결정됩니다. AI 개발을 시도하는 회사 중 26%가 부실하거나 부적절한 예산으로 인해 중간에 실패하는 것으로 추정됩니다. 따라서 기업에서 이 단계를 중요하게 여기고 제대로 준비해야 하지만 안타깝게도 대부분의 기업은 그렇지 않습니다. 실제로 Comet의 최근 ML 실무자 설문조사에 따르면 "68%의 응답자가 실험의 40-80%를 모두 폐기했는데, 원인은 반복적인 실험 프로세스 이외의, 머신 러닝 라이프사이클 전반에 걸쳐 발생하는 오류였습니다. 이는 부족한 인프라와 리소스 혹은 부정확하거나 잘못된 데이터와 관련된 다양한 문제로 인해 종종 발생합니다.

결과적으로 이는 상당한 시간과 리소스 그리고 예산의 낭비를 초래합니다. 예를 들어, 응답자 중 6%만이 30일 이내에 모델을 구현할 수 있을 정도로 업무 지체 현상이 있다는 사실을 발견했습니다. 대부분의 응답자는 단일 ML 프로젝트를 구축하는 데 4~6개월, 최대 3개월(각각 46%와 43%)이 소요되었습니다. 반대로, ML팀의 이런 문제를 해결할 수 있는 툴 유형에 대한 예산은 전반적으로 부족한 것으로 나타났습니다.

본질적으로, 예산이 어디에 쓰이고 있는지, 그 돈이 무엇으로 환산되는지에 대한 지표 및 투명성 부족 문제는 개발 시간을 늦추고 있습니다. 예를 들어, 이 설문 조사에서 응답자들은 리소스 부족이 AI 프로젝트 로드맵을 늦추는 가장 큰 문제점 중 하나라고 주장했습니다. 만약 충분한 예산을 확보하지 못한다면 아마도 데이터 자동화 라벨링이나 사람의 개입(Human in the loop) 과 같은 방법을 통해, 효과적인 예산 운용이 가능할 것입니다. 요약하자면, ML 예산을 늘린다 하더라도 그 예산이 현명하게 사용될 때에 비로소 리소스 부족 문제로 인해 야기되는 문제점들을 바로 잡을 수 있을 것입니다. 다행히도, 예산을 책정하는 과정 중에 이러한 난제를 상당 부분 완화할 수 있습니다. 다음은 그 과정에서 고려해야 할 몇 가지 주요 팁입니다. (나열 순서는 상관이 없습니다)

예산 책정에서 고려해야 할 6가지 팁


팁1: ML 프로젝트를 구축할 때는 신중해야합니다.

‍필요한 학습 데이터의 양은 종종 컴퓨터 비전으로 해결하려는 문제가 얼마나 복잡한지에 정비례합니다. 사용하고자 하는 데이터 내에 클래스의 구성이 어떤지에 따라 얼마나 많은 라벨링이 필요한지 결정하는 데 영향을 미치죠. 또한 프로젝트를 구축할 때 필요한 데이터는 물론 장기적으로 모델을 유지 관리하고 개선하는 데 필요한 데이터의 양은 최종적으로 필요한 비용과 직접적으로 연관돼있습니다. 어떤 라벨링 방식을 취할지와는 관계 없이 본격적으로 프로젝트를 진행하기 전에 먼저 데이터와 관련한 이러한 숫자들을 신중하게 고려해야합니다.

최소 필요한 데이터의 양을 결정할 때 반복되는 실험과 테스트 과정을 제외하면 엄격하게 따라야 할 규칙은 많지 않지만, 다음과 같은 몇 가지를 생각해볼 수 있습니다.

1. 가장 먼저 사내 ML 팀이나 데이터 사이언티스트팀에게 유사한 프로젝트나 실험을 진행해 본 경험이 있는지 물어보세요. 과거의 경험에 기반한 대략적인 수치를 알려줄 수도 있습니다. 또다른 방법으로, 진행하려는 프로젝트와 유사한 ML 또는 컴퓨터 비전 실험을 기반으로 하는 학술 논문을 참고해서 얼마나 많은 데이터를 사용했는지 확인해 볼 수 있을 것입니다.

2. 로우 데이터나 이미 라벨링 된 데이터를 모두 포함하여 현재 활용가능한 데이터가 있는지 파악하고, 데이터와 관련한 초기 비용을 절감할 수 있는지 살펴보세요. (특히 상용 애플리케이션용의 경우) 라이센싱이 문제가 될 수 있지만, 오픈 소스나 학술 데이터셋을 활용할 수 있을지 검토해볼 수 있습니다. 또한 데이터를 수집하는 시스템이 기존에 있는 경우에는 데이터 코퍼스(data corpus, 자연어 분석 작업을 위한 표본 데이터 집합)의 규모를 먼저 정해볼 수도 있을 것입니다.

3. 일반적으로 수용되는 원칙(Rule of Thumb)을 사용해보세요. 완벽한 방법은 아니더라도 근거 없는 추측보다는 도움이 될 수 있습니다. 예를 들어, 필요한 학습 데이터 양은 모델의 파라미터 수나 자유도(degree of freedom, 통계적으로 추정할 때 사용되는 데이터의 정보량)의 10배라는 원칙이 있습니다. 또는 오브젝트 클래스당 적절한 기준선이 이미지 천 장이라는 Peter Warden 사의 분석 결과를 참고해볼 수 있겠죠. 일반적으로는, 고객의 사용 사례에서 실제 있을만한 사례를 찾아 수백 개 이상 반영하는 것이 일반적입니다. 물론 사용하려는 자원의 양뿐만 아니라 질 역시 결과에 영향을 미친다는 사실을 기억해야합니다. 적절한 모델 파라미터의 수 또는 자유도를 결정하는 일도 중요하지만 이는 사용하려는 예산과 장치의 사양에 따라 결정되기도 합니다. 노스캐롤라이나 대학교(UNC at Chapel Hill) 컴퓨터 과학 학부 측에 따르면, 단순 분류 모델의 경우 모델의 자유도는 대체로 파라미터의 수와 동일합니다. 보다 복잡한 사례에서, 예로 딥 네트워크의 경우 모델의 자유도는 보통 모델의 파라미터 수보다 확실히 낮고, 네트워크가 복잡할수록 자유도 역시 낮아진다고 합니다.

4. 러닝 커브(learning curve)를 사용하여 그래프화 하는 것도 시도해봄직한 방법입니다. 이미 데이터를 어느 정도 확보했다면, 데이터셋의 크기를 기반으로 모델의 성능을 평가하기 위한 연구를 설계해볼 수 있을 것입니다. 이를 통해 데이터셋의 규모와 모델의 기술 또는 성능간의 연관성을 대략적으로 파악할 수 있습니다. 더 많은 데이터가 오히려 모델의 성능을 저하시키는 지점을 찾는 데도 도움이 될 것입니다. 다만, 로지스틱 회귀분석 기술이 그 프로젝트에 적합할지는 살펴보셔야 합니다.

5. 마지막으로, 오류에 대한 허용 오차를 정하세요. 모델의 목적에 따라 오류가 발생해도 괜찮은 수준이 달라지기 때문입니다. 예를 들어, 같은 1%의 오류율이라도 자율주행차 모델에서는 치명적일 수 있지만, 생산 라인에서 결함 제품을 잡아내는 모델에서는 허용될 수 있습니다. (물론 이는 인적오류율(human error rate)이 훨씬 높을 때, 즉 컴퓨터 비전과 자동화를 통해 개선이 확실한 경우에 한정됩니다.) 필요한 데이터의 양은 알고리즘이 비즈니스의 성공에 얼마나 위험 회피적이거나 필수적인지와 직접적인 연관이 있습니다.

저희 팀의 경험에 따르면, 위의 단계를 사용하여 기준선을 결정한 후 수집-라벨링-학습-평가의 과정을 반복하여 필요한 데이터 양을 측정하는 방법이 데이터가 (이는 궁극적으로 예산이) 결과적으로 얼마나 필요한지 예상하는 데 가장 효과적입니다. 이 과정이 실제로 어떻게 진행되는지, 또는 컴퓨터 비전 프로젝트에 얼마나 많은 데이터가 필요한지 결정하기 위한 다른 여러 방식들을 설명하려면 그 양이 너무 방대하기 때문에 이번 글에서는 생략하겠습니다.

팁2: 라벨당 비용에 영향을 미칠 수 있는 요소를 정의합니다.

라벨링 방식과는 관계없이 어노테이션 유형 및 개수 그리고 복잡함의 정도는 라벨링의 최종 가격을 결정짓는 주요한 요소로 작용합니다. 정확한 견적을 내기 위해서는 예산을 계획할 때 다음에 보여드릴 예시와 같은 요소들을 고려해야 합니다.

- 데이터셋 출처 정보 중 지리적 위치
- 데이터 정보의 즉시성과 요구되는 데이터의 볼륨
- 라벨당 오브젝트 클래스가 많은 데이터 경우를 고려한 데이터 준비 계획
- 데이터 라벨러가 전체 작업을 완료하는 데 걸리는 시간
- 데이터 작업자를 늘리면 데이터 품질에 영향을 미치는지 여부

예를 들어, 지리적 위치는 로우 데이터 수집에 중요한 역할을 합니다. 접근 가능한 시장에서 데이터를 얻는 것이 (드론을 사용하는 경우를 제외하고) 험한 사막과 같은 희소한 지리적 위치에서 직접 얻는 것보다 훨씬 저렴하기 때문입니다. 예산을 최적화하려면 라벨당 비용 변동을 유발할 수 있는 다양한 요소를 모두 파악하여 그에 따라 미리 계획을 세워야 합니다.

‍팁 3: 프로젝트 계획의 변경에 대비할 수 있도록 예산에 여유를 두세요.

‍적어도 2000년대와 2010년대의 데이터 집약적 모델(data-hungry)과 비교해서 많은 알고리즘이 점점 더 데이터 효율적(data-efficient)이 되고 있지만, 새로운 엣지 케이스(edge case)와 활용 사례는 항상 발생할 수 있습니다. 필요에 따라 더 많은 데이터를 획득하고 라벨링 할 수 있을 여유를 예산에 남겨두면 예상치 못한 비용에 당황하지 않을 수 있습니다. 모델 학습 및 개발은 대부분 일회성 프로젝트라기보다는 긴 여정에 가깝기 때문에 초기 데이터 수집 및 준비에 예산을 모두 사용하지 말아야 합니다. 3번째 또는 4번째 모델 반복에 필요한 데이터 양은 많지 않지만, 아마도 액티브러닝이나 다른 방법들을 사용하면서 모델 성능에 가장 큰 영향을 미치는 경우들을 살펴보기 시작할 시점에서는 더 많은 데이터가 필요할 수 있습니다.

팁 4: 일부 라벨링 워크플로우 과정에서 발생할 수 있는 “숨겨진 비용”에 주의하세요.

‍일반적으로 라벨링 예산이라고 하면 라벨링이 필요한 이미지나 비디오의 수와 그에 따라 필요한 인력에 맞춘 고정 금액만을 생각하는데 이는 지나치게 단순화 한 계산입니다. 계획 과정 혹은 어노테이션 과정을 구체화하는 단계에서 의도치 않게 발생할 수 있는 숨겨진 비용과 비효율성 때문이죠. 몇 가지 생각해볼 수 있는 예시 상황을 살펴보시죠.

- 라벨링 가이드라인이 충분하지 않거나 분명하지 않으면 혼동이 발생하고 재작업이 필요할 수 있습니다 (전반적으로 일관성이 없는 가이드라인의 문제).

- Suite와 같은 데이터 플랫폼은 새로운 라벨러와 관리자를 빠르고 쉽게 교육하고 작업에 착수하게 도와주는 UI를 제공하기 때문에 결과적으로 비용을 절약할 수 있습니다. 이런 플랫폼이 제공하는 사용 편의성을 과소평가하는 경우 비효율이 발생할 수 있습니다.

- 현재 적절한 성능을 내고 있더라도 데이터의 양이나 복잡도가 증가하면 성능이 떨어지는 툴을 선택하는 경우가 있을 수 있습니다.(중간에 툴을 바꾸면 학습 과정은 다시 원점에서 시작해야하는 방법 밖에 없습니다.)

- 비교적 시간당 높은 비용을 요구하는 ML 엔지니어를 관리 및 QA 작업에 투입합니다. 이런 작업들은 경험있는 프로젝트 관리자나 라벨링 리드에게 더 적절하죠.

새 라벨링 프로젝트를 시작하거나 기존 라벨링 프로젝트를 확장하기 전에 이후 발생할 수 있는 위험을 파악하면 목표를 유지하면서 작업 진행 과정 중의 문제나 불필요한 재작업 과정으로 발생하는 추가 비용을 방지할 수 있습니다. 시작 단계부터 적합한 툴을 사용하면, 데이터의 양 증가에 따라 툴 인프라, 인력, 프로젝트 관리 등이 복잡해지더라도 단순하고 반복하기 쉬운 워크플로우를 유지할 수 있습니다.

팁 5: 데이터셋의 균형을 유지하고 QA의 영향을 인지합니다.

‍컴퓨터 비전을 위한 최고의 데이터셋은 정확도, 수량, 및 다양성에 있어서 높은 기준을 요구합니다. Superb AI는 품질을 가장 중요한 요소로 생각합니다. 품질이 낮은 데이터는 문제를 발생시키고 다음과 같이 두 번에 걸쳐 피해를 줄 수 있기 때문입니다. 첫째는 실제 모델을 학습시킬 때 성능과 일관성에서, 두번째는 모델이 해당 데이터를 사용하여 향후 결정을 내릴 때 피해를 주게 됩니다.

또한 QA에 적용할 접근 방식을 신중하게 고려하세요. 특히 크라우드 소싱이나 소프트 라벨과 같은 방법론을 사용할 때 자주 일어나는데, 가장 저렴해보이는 방식을 선택해도 잘못된 라벨을 검수 및 수정하는 데 지나치게 많은 시간을 할애해야 해서 장기적으로 보면 가장 많은 비용이 들어갈 수 있습니다. 계획 단계에서부터 이상적이면서 동시에 실용적인 QA 워크플로우를 설계하면, 향후 발생할 수 있는 골칫거리와 예상치 못한 비용을 절감할 수 있습니다.

팁 6: 라벨링 자동화를 통해 같은 예산으로 더 많은 결과물을 얻어보세요.

‍오늘날 대부분의 데이터 라벨링은 여전히 사람이 직접 작업하는 것이 일반적입니다. 그러나 시간과 비용 측면을 고려할 때 이 방식은 다양한 형태와 규모를 가진 기업이나 팀이 확장하려할 때 걸림돌이 된다는 것은 잘 알려진 사실입니다. 물론 여기서 말하는 비용은 돈만을 의미하는 것은 아닙니다. 현실으로 팀내에 데이터 사이언티스트 및 고급 인력에게 복잡한 데이터의 라벨링 및 라벨링 오류 수정 업무를 맡길 여유를 갖기는 현실적으로 거의 불가능할 것입니다. 사람이 하는 라벨링에도 많은 장단점이 있지만, Superb AI는 데이터 준비 과정을 보다 간소화하는 데 있어 자동화의 가치를 믿고 있습니다. 실제로 고객이 Superb AI의 라벨링 자동화 기술을 광범위한 워크플로우의 일부로 사용하여 다음과 같은 매우 고무적인 결과를 얻은 사례가 있습니다.

‍- 라벨링 처리량 10배 향상
- 라벨당 비용 85% 절감
- 모델 성능 8-10% 향상

그러나 라벨 품질에 있어서, 시작 단계부터 자동화를 도입하는 것만큼 사용하려는 자동화의 유형도 중요합니다. 사전 라벨링한 데이터셋을 기반으로 AI 시스템이 라벨링되지 않은 데이터에 대한 라벨을 예측하도록 훈련시키는 모델 어시스티드 라벨링(model-assisted labeling)과 라벨러가 직접하는 라벨링 작업을 보다 효율적으로 수행하기 위해 AI 어시스티드 소프트웨어(AI-assisted software)를 사용하는 AI 어시스티드 라벨링(AI-assisted labeling)이 분명 도움이 될 수 있습니다. 그러나 두 경우 모두 정답 라벨을 라벨러가 직접 라벨링해야 하며 (예를 들어, 모델 어시스티드 라벨링의 경우 소프트 라벨을 검토하고 확인하는 작업 등), 이미 라벨링된 데이터를 수정하는 작업은 라벨링 하지 않은 로우 데이터를 라벨링하는 것보다 훨씬 많은 시간이 걸릴 수 있습니다. 결과적으로 잘못된 라벨을 처음부터 라벨링하는 것보다 수정하는 데 더 많은 시간을 소비하는 경우가 많고 이는 QA 과정을 효율화하는 부분에 있어 비용적인 어려움을 배가 시킵니다.

Superb AI의 커스텀 오토라벨링은 기본적으로 초기 모델 어시스티드 방식이 심화된 기술로 볼 수 있습니다. 커스텀 오토라벨링을 통해서 커스텀 모델을 대량의 데이터를 라벨링하도록 신속하게 훈련할 수 있습니다. 기존 모델 어시스티드 라벨링과 달리 커스텀 오토라벨링을 사용하면 시작하는 데 많은 라벨링된 데이터가 필요하지 않습니다. 클릭 한 번과 소규모 정답 데이터셋만으로 모델을 학습할 수 있죠.

적은 양의 라벨링된 데이터로 시작하면 점점 더 많은 데이터를 라벨링해나갈 때 더 쉽게 반복 작업이 가능합니다. 또한 커스텀 오토라벨링은 불확실성 측정 메트릭을 제공해서 랜덤 샘플링 등 효율이 떨어지는 방법 대신 검토가 필요할 가능성이 가장 높은 라벨에 집중할 수 있도록 하기 때문에 검수 작업에 들어가는 비용을 크게 단축시킵니다.

마치며

‍데이터 라벨링이나 컴퓨터 비전과 관련한 많은 것들이 대부분 그렇듯이, 효과적인 프로젝트 예산을 세우는 일은 계획 단계에서 얼마나 공을 들이는지에 따라 좌우됩니다. 라벨링 과정에서 시간과 비용에 영향을 줄 수 있는 수 많은 변수(프로젝트 유즈 케이스의 범위, 복잡도 그리고 라벨링 오류에 얼마나 취약한지까지 등과 선호하는 비용 형태, 그리고 그 외의 모든 자잘한 결정 사항들)는 예산을 결정하는 일을 더욱 어렵게 합니다. 하지만 위에서 나열한 팁을 따르면 예상하지 못한 문제가 발생할 위험을 줄이고 라벨링 프로젝트를 성공적으로 이끌 수 있습니다. Superb AI는 현재 고객이 진행하고 있는 프로젝트의 단계에 상관 없이, 고유한 데이터 요구사항과 확실한 계획을 구축할 수 있도록 도와드립니다.