AI 일반 (기술외)

AI 외주는 어떻게 하면 좋을까?

작동미학 2021. 1. 13. 00:44
반응형

 대부분의 회사에서 여전히 AI라고 하면 외주를 검토하기가 쉽다. 내부 역량도 아직은 더 키워야하고, 솔루션이 같이 들어온다는 장점도 있고, 대내외의 AI 도입에 대한 관심도 많기 때문이다. 그리고 단언하겐데 이미 많은 회사들이 벌써 외주를 주어서 AI 프로젝트를 진행했었다는 사실이 드러나는게(?) 일반적이다. 고급통계나 머신러닝, 전문가 시스템 등 과거에도 AI프로젝트와 유사한 성격의 프로젝트가 있었을 것이다.

 이렇듯 AI 프로젝트 외주는 생각보다 흔하게 진행되어 왔으며 앞으로 진행될 일이다. 그런데 어떻게 접근하면 좋을까?

 

파트너사와 AI 해결하기

 맨 먼저 가장 중요한 것은 두 가지라고 생각한다. 바로 지속 가능하도록 하는 것과 그 지속 가능함이 비즈니스 가치를 지녀야 한다는 것이다. 이러한 기준 하에 모든 계약이나 프로젝트 결과를 고민해야 한다.

 

 그러면 왜 이 두 가지가 중요할까?

 

 그것은 많은 AI 프로젝트들이 상기 두 가지 원인에 의해 최종 실패하기 때문이다. 의외로 지속 가능하게 운영되는 AI 프로젝트가 흔하지 않은데, 이것은 운영에 필요한 해당 분야의 기술이나 환경 관리가 어렵기 때문에 유지보수를 풀어나가기 더 복잡하기 때문이다. 일반적으로 정해진 로직을 완성하는 IT 구축 프로젝트에 비해, 해당 로직이 데이터로 인해 지속 변경되는 구조인 이 AI 시스템은 운영 특성이 많이 다르다.

 

 즉, AI가 제대로 작동하기 위해서는 머신러닝 기술 외에도 의외로 많은 기초공사가 필요하다. 데이터가 잘 수집 및 정제되어야 하고, 관리되어야 한다. 데이터 거버넌스(데이터 관리 정책 전반) 전체가 잘 작동될 필요는 없더라도, 해당 업무 분야에 필수인 몇몇 요소들은 일정 수준 이상 관리되어야 한다. 초기에 한번 머신러닝 모델을 학습시켰더라도 일정 수준 이하의 정확도로 내려가는 경우, 다시 훈련시키고 정비해야 하는데, 이를 위해서는 또다시 데이터를 다시 수집하고 label을 정비하고 다시 모델을 튜닝해서 학습시킨 후 다시 시스템에 재적용하는 과정이 필요하다. 이 모두가 초기 구축 계약 시에는 필요한 인력에 의해서 그나마 진행되기 마련인데, 프로젝트가 종료되어 관련 인력이 철수하면 도무지 다시 재현을 하기가 어렵게 된다. 도입된 모델링 툴 재사용이나, 기술변화 대응, 관련 데이터 정비 등 전체 모델링 과정이 신규 구축만큼 다시 벌어지는 상황이 발생할 수 있는데 남아있는 소수 운영 인원이 인계받아 처리할 수 없는 경우가 많다는 것이다. 더군다나 이 분야의 신기술은 계속 쏟아져나와서 이미 몇년 지나면 툴도 기술도 오래된 것이 되어버린다.

 

 그렇다. 이렇게 구축 성공에 집중하기 보다는 그 시스템 완료 이후에 해당 모델을 다시 학습하고 비즈니스 가치를 지속 향상할 수 있도록 전체 관점에서 계약되고, 완료되는 것을 고려하지 않으면, 초기 구축 이후 제대로 운영되지 않게 되기 쉬운 것이 AI프로젝트 속성이다.

 

 달리 말하면 타 IT 프로젝트 대비 구축보다 운영에 더 많은 비용이 소모된다. 일단 관련 AI전문인력이 존재하지 않는 상황이라면 그 리스크는 급격히 높아지기 시작하고, 익숙하지 않은 툴에 의해 구축되었다면 AI담당자가 존재한다고 해도 어려울 수 있다. 시장의 솔루션은 제각기의 툴을 탑재하고 있는 경우가 많아서 담당자가 그것을 모두 익히는 것도 쉽지 않다.

 

 일반적인 IT 프로젝트가 구축 후 유지보수 비용을 20% 정도 잡는다고 치면, AI 프로젝트는 두세 배가 넘게 소요될 수도 있는 것이다. AI모델 유지보수의 경우 데이터가 극적으로 변하면 모델을 완전히 변경해야 할 수도 있는데 그런 경우 대규모의 변경이 필요하다. 즉 데이터가 어떻게 변화하느냐에 따라서도 운영비용이 극단적으로 변하게 된다. 이러한 리스크를 간과하면 장기적인 관점에서 프로젝트가 실패하고 AI 시스템은 애물단지로 전락하게 된다. AI모델이 관리가 되지 않으면 판정 정확도가 지속 떨어지기 때문이다. 새롭게 발생하는 데이터들은 AI시스템을 빠르게 낡게 만든다. 얼마나 빠르게 낡아 질지는 데이터의 변화 정도별로 각 도메인별로 다르다.

 

 어떤 경우는 데이터만 다시 학습시키면 되므로 운영이 쉽다고 솔루션사에서 광고하는 경우도 있다. 그러나 많은 AI 시스템은 충분한 비즈니스 가치를 갖기 위해서는 입력 데이터 자체도 확장하는 노력이 필요하다고 생각한다. 즉 feature set을 고정하는 것은 feature 정답지가 존재하는 잘 알려진 분야가 아니면 아쉬움이 많은 방법이다. 데이터 모델을 외주사가 외부데이터로 관리하여 패치 형태로 바꿔주는 특이 케이스가 아니면(그나마 이미지나 자연어 처리, 음성 등은 이런 일이 일부 가능하다. 고객사에서 자체 재학습하지 않아도 되는 AI 시스템은 온전히 외주사에 맡기기가 훨씬 수월하다.) 대부분 제대로 운영하기위해 AI모델의 전체적인 feature engineering, label정비, 재학습 및 재적용이 필수이다. 

 

 따라서 구축 과정에서 AI모델이 만들어지는 과정을 충분히 이해하고, 그 과정이 최소 몇 번 이상 반복되도록 지원 조건에 아예 명시한다던가, 그러한 전 과정을 장기적으로 해당 파트너사로부터 독립하여 내재화 수행할 수 있도록 준비를 해야 한다. 내부 역랑이 부족해 외주를 진행했는데 내재화 준비를 해야하다니 좀 당혹스러운 상황일 수도 있겠지만 그렇지 않고는 일부 AI 시스템을 제외하고는(앞서 밝힌 외주사에서 외부학습된 모델을 시스템 패치 형태로 바꿔주는 것이 아닌한) 유지되기 어려운 것이 현실이다 그리고 이 대책 이야기는 조금 더 뒤에서 이어보자.

 

 

 그러면 두 번째 조건인 비즈니스 가치를 지녀야 한다는 의미는 무엇인가? 이는 해당 모델의 정확도와 직결된다. 간단히 예를 들면 10%의 오류를 발생시키는 AI모델 대비 5%의 오류를 발생시키는 AI모델의 경제성 차이는 얼마일까? 무려 2배에 달한다. 왜냐하면 오류(잘못된 판정)는 일반적으로 처리 비용을 의미하는데 10%의 오류가 5%의 오류로 감소하면 실제 처리해야 할 오류는 절반으로 감소한다. 따라서 해당 프로젝트가 성공이라고 평가할만한 이러한 오류율 기대치를 미리 어느 정도 예상(계산)해두어야 전 과정에서 경제성을 맞추고 필요하면 조율해 나갈 수 있다. (관련해서는 Accuracy나 Recall 같은 AI모델 정확도 관련 용어는 숙지해둘 필요가 있다. 이러한 기준에 의한 명확한 평가 수준을 정의해야 한다.)

 

 반대로 이 정확도 수준에 따른 경제성을 알면, 이를 달성하기 위하여 가용한 비용 즉, 데이터를 어느 정도까지 정제하고, 얼마의 추가 비용을 들여서 데이터를 확보할 수 있는지 등 모든 것이 연이어서 결정될 수도 있다. 예컨데, Fraud Detection 같은 사례를 보자. Fraud의 오류 판결은, Fraud인 것을 잡지 못했거나(Type II Error), Fraud가 아닌 것을 Fraud라고 판정했을 때(Type I Error) 두 가지에 의해서 영향을 받는다. Type I Error가 많아지면, 오경보가 많아 확인 비용이 들고, Type II Error가 많아지면 시스템의 존재 가치가 점점 더 약해진다. 그러면 과연 이 둘을 고려해 어느 정도의 성능을 확보해야 이 시스템의 도입 가치가 있는가?

 

 여기에 대해 미리 정한 경제성 확보 가능한 예상 정확도를 알고 이 프로젝트에 임하여 유의미한 수준을 달성해야 하는 것이다.

 

 이 과정에서는 가능하다면 파트너사에게 공개되지 않은 validation set을 따로 운영하는 것도 방법이다. 실제로 촉박한 AI프로젝트를 하다 보면 파트너사 입장에서는 의도했건 그렇지 않았건 데이터가 왜곡된 상황에서 정확도가 보고될 수 있는데, 미리 공개된 데이터를 학습/테스트 셋으로 모두 사용하면, 중립적으로 정확도를 알 수가 없게 되어버릴 수 있다. 이럴 때는 고객 쪽에서 직접 비공개된 validation set으로 파트너사에 판정 결과를 요구해 자체 대사하면, 왜곡되지 않은 최종의 정확도를 언제나 뽑을 수 있게 된다.

 

 이 비즈니스 가치(목표 정확도 충족)에 대한 부분은 역으로 앞서 지적한 운영 가능한 부분에서도 큰 판단 기준이 된다. 정확도 목표가 경제성에 미치지 못하는 경우 새로 튜닝되기 어렵다면, 해당 AI 시스템을 통한 비즈니스 가치가 지속되지 못할 수 있다.

 

 

간단하게 일반 외주 프로젝트 대비하여 AI 프로젝트에서 보다 더 중시해야 할 것을 살펴보았다. 그런데 의외로 이 두 가지를 잘 가져가는 것이 쉽지 않다. 그러면 어떤 대안으로 이런 문제들을 극복할 수 있을까?

 

 첫 번째로 경제성을 가늠해보기 위해 내부의 간단한 파일럿을 진행하면 도움이 된다. 시장에 잘 알려진 도메인이 아니면(그래서 성공 사례가 흔한) 간단한 모델을 통해 확보한 데이터로 어느 정도 정확도가 가능한지 확인한 후에 정확도 향상 가능성이 있는 경우 프로젝트를 수행하는 것이 과제의 실패 리스크를 줄여준다. 이 과정에서 회사 내의 데이터의 품질이나 양도 평가될 수 있으며, 신규 프로젝트의 인력들이 과제에 훨씬 더 빠르게 적응할 수 있도로 가이드를 줄 수도 있다. 해당 프로젝트 추진에 필요한 사전 업무 조율도 가능하다. 이러한 사전 확인 없이 시작되는 프로젝트는 실패 가능성을 안고 갈 수밖에 없다. 

 

 두 번째로는 결국 파일럿 진행도 그렇고 일정 규모 이상의 내재화 조직이 필수라고 생각한다. 해당 내재화 조직이 AI 프로젝트 전체 라이프 사이클을 이해하고, 종료후 인도받아 유지보수 할 수 있어야 한다. 가급적이면 해당 프로젝트에서 사용되는 툴이나 여러 가지 기술들도 내재화 그룹이 사용 가능한 것이 좋다. 시장에 다양한 솔루션이 나오고 있는 만큼 지속 가능하지 않은 솔루션이 있을 수 있는데, 내부적으로 여러 가지 파일럿을 하면서 AI 프로젝트를 맡아 수행하고 종료후 교육받아 이어받을 수 있도록 해야 한다. 외주 형태의 운영도 방법이기는 하나 실제로는 미리 언급되었듯이 회사 전체의 데이터 거버넌스와도 연결된 부분이 많기 때문에, 외주사 독단적으로 일괄적으로 다 해소하기가 어렵고, 외주사 직원이 내부 비 전문가를 이해시켜 이를 해소시키는 것도 적지않은 커뮤니케이션 비용을 낳는다. 결국 소수라도 내부 전문가 인원이 없으면 해당 프로젝트의 유지 가능성이 낮아지게 된다. 비즈니스 관련 가치에 맞는 정확도를 정의하는 문제도 처리할 수 없게 되는 것은 상황을 더 악화시킬 수 있다.

 

 세 번째 제안은, 내재화 조직이 표준의 코어 시스템(AI 엔진부, 예를 들면 python기반의 분석 서버 클러스터 등)을 갖추고 문제를 해결해나가는 방식이다. 이렇게 되면 다수의 AI프로젝트 핵심 영역을 소수의 팀으로도 감당할 수 있게 된다. 개인적으로는 잘 알려진 오픈소스 형태의 eco-system이나 클라우드 툴을 활용할 것을 권장한다. 외부의 다양한 최신 코드를 사용할 수 있고, 경험자도 더 많이 섭외할 수 있다. 많은 솔루션들이 다양한 형태로 존재하지만, 입력 데이터로 모델을 돌려 출력을 만들고 이것을 API 형태로 처리하는 범용의 머신러닝 프레임웍을 갖추고 운영 및 신규 시스템이 그에 기반하여 동작하도록 유도해 나가면, 해당 핵심 모델 영역만 내재화 조직이 담당해내면서 지속 가능하게 운영할 수 있다.

 하지만 이렇게 하기 위해서는 팀 단위의 인력 구성과 그에 맞는 공통 인프라 준비가 필수인 점은 어쩔 수 없다. 큰 회사의 경우 인프라(DB/하둡 등 전반)와 데이터 엔지니어(ETL/쿼리/SW 등 전문가), 데이터 사이언티스트(분석가)가 나뉘어 있어서 더 어려움이 있을 수 있으나 여하튼 협업 체계를 갖추어야 한다. 개인적으로는 이 정도 규모의 인력 운영 준비는 되어야만 회사 내부에 지속 가능한 AI 프로젝트가 가능하다고 생각한다. 아니면 가능한 분야는 이전에 언급했듯이 외주사에서 자체적으로 AI모델을 관리할 수 있는 이미지나 자연어 같은 외부 데이터에 의지되는 AI모델 등 내부 데이터의 중요도가 낮은 분야 정도가 아닐까. 

 

 아마 개인별로 경험차가 다양할 수 있겠으나, 이 정도의 전체 윤곽은 잡고 프로젝트를 시작하면 어떨까 하는 내용으로 서술해보았다. 그러나 역시 상황에 따라 정답은 없고 훨씬 더 디테일한 내용들을 만나게 된다. 그리고 이 글에서는 외주 형태의 AI프로젝트는, 지속가능 관점에서 운영관점에서 타 프로젝트 대비 신중하게 접근되어야 한다고 주장한다. 초기 구축 후 투자 부족으로 경제성이 떨어지고 운영에 어려움을 겪는 경우를 종종 목격했기 때문이다. 물론 외주사의 운용 전략은 계속 진화 할 수 있고, 정형화된 AI모델 분야에서는 여전히 효과적인 체계를 제공할 수도 있다. 하지만 내재화 담당자 없이 그렇게 효과적인 AI프로젝트는 필자에게는 낯설다. 그래서 여전히 꼭 기억해야 할것으로 보인다. "프로젝트 종료 후에도 현실적으로 지속 운영 가능한가? 비즈니스 가치를 지니게 프로젝트를 종료시키고, 유지할 수 있는가"가 궁극적으로 프로젝트의 성공을 결정할 질문이다. 그것이 일반 IT 프로젝트와 다른, AI 프로젝트 계약의 처음과 끝, 그리고 종료 후 해결해야 할 모든 것이 아닌가.

 

 

반응형