AI 개발 워크플로우 성공 위한 4단계 고려사항
상태바
AI 개발 워크플로우 성공 위한 4단계 고려사항
  • 데이터넷
  • 승인 2020.11.30 13:59
  • 댓글 0
이 기사를 공유합니다

이웅재 매스웍스코리아 이사, 워크플로우와 데이터 전처리·테스트·배포 등 긴밀한 통합 필요성 강조
이웅재 매스웍스코리아 이사
이웅재 매스웍스코리아 이사

[데이터넷] 점점 더 많은 엔지니어들이 인공지능(AI)에 대한 기술적인 이해를 바탕으로, 자신의 프로젝트 및 응용 분야에 AI를 성공적으로 통합하려고 노력하고 있다. 이들은 기획한 AI 프로젝트를 실행으로 옮기기 이전에 ‘AI가 무엇인지’ 그리고 ‘AI가 현재 워크플로우에 어떻게 적용돼 성과로 이어질 수 있을지’를 최대한 구체적으로 규명하려고 하지만, 이를 성공하지 못하고 PoC 단계에 그치는 경우가 많다.

AI 프로젝트를 위한 워크플로우의 핵심은 ‘모델링’이다. AI 프로젝트의 초점은 AI 모델에 맞춰져 있기 때문에 많은 엔지니어가 AI 모델링에 많은 시간을 투자한다. 그러나 몇몇 스타터 프로젝트를 진행해 본 경험이 있는 엔지니어에 따르면, AI는 모델링뿐 아니라 데이터 준비, 시뮬레이션, 테스트, 배포를 비롯한 수많은 세부 단계와 긴밀하게 통합돼 있다.

머신러닝 및 딥러닝 기술을 활용하는 엔지니어는 보통 모델의 개발과 미세 조정(tuning) 작업에 많은 시간을 소요할 것으로 예상하곤 한다. 물론 모델링은 워크플로우에서 매우 중요한 단계다. 그러나 모델링은 AI 개발 워크플로우의 마지막 단계는 아니다.

실용적인 AI 기술의 구현에 성공하기 위해서는 문제를 초기에 발견하고 최상의 결과를 위해 전체 워크플로우의 어느 특정단계에 보다 많은 시간과 리소스를 집중적으로 투자해야 할 지 사전에 파악해야 한다. 그러나 AI 시스템은 복잡한 하부요소로 구성돼 있으며, 다양한 도메인 엔지니어, 고객 및 사용자의 요구사항들을 반영해야 하며, 더욱이 문제를 조기에 발견하고 이를 해결하기가 쉽지 않다.

전체 워크플로우를 심층적으로 살펴보기 전, 염두에 둬야 할 사항은 다음과 같다.

1. AI는 대부분 대규모 시스템의 일부로서 해당 시스템의 제어, 신호 처리 및 센서 융합 등의 센서 및 알고리즘, 그리고 구동부와 함께 올바르게 작동해야 한다.

2. 엔지니어는 성공적인 AI 통합을 위한 기술을 이미 확보하고 있다. AI 문제와 관련한 지식을 보유하고 있으며, 데이터 준비 지원 도구 및 모델 기반 설계 툴을 통해 AI 전문가가 아니더라도 쉽게 작업을 시작할 수 있다.

AI 주도 워크플로우
이제 전체 AI 워크플로우를 위한 네 가지 단계를 심층적으로 살펴보고, 각 단계가 AI를 원활히 구현하는 데 어떻게 중요한 역할을 하는지 이해해보자.

1단계: 데이터 준비

데이터 준비는 AI 워크플로우에서 가장 중요한 단계라고 할 수 있다. 신뢰도 높으며 정확한 데이터를 기반으로 훈련된 AI 모델이 없다면, 프로젝트의 실패가능성이 더 높다. 엔지니어가 ‘불량’ 또는 ‘오류’ 데이터를 모델에 입력하여 훈련시킨다면 의미 있는 결과를 도출해낼 수 없고, 모델의 비정상적인 작동의 원인을 찾느라 많은 시간을 들여야 할 수 있다.

모델 훈련을 위해 필요한 데이터는 ‘정리’ 및 ‘레이블(Label) 지정’이 완료된 데이터이며, 이러한 데이터를 가능한 많이 수집할수록 지정한 모델의 훈련에 성공할 가능성이 높다. 이러한 데이터 준비 작업은 AI 개발 워크플로우 중 가장 많은 시간을 소모하는 큰 단계가 될 수도 있다.

딥러닝 모델이 예상대로 작동하지 않는 경우, 많은 프로젝트 담당자가 약간의 파라미터 변경, 모델의 미세 조정, 혹은 여러 번에 걸친 훈련 반복과 같은 모델 개선 방법에 초점을 맞추곤 한다. 그러나 이러한 상황에서 엔지니어는 데이터 전처리 및 정확한 레이블 지정을 통해 모델이 쉽게 이해하고 학습할 수 있는 데이터를 생성하는 데 집중하는 편이 더 낫다.

AI 프로젝트 워크플로우를 위해 엔지니어가 고려해야 할 4단계
AI 프로젝트 워크플로우를 위해 엔지니어가 고려해야 할 4단계

데이터 준비의 중요성을 보여주는 사례로는 다양한 기계로부터 방대한 현장 데이터를 수집하는 건설 기계 및 장비업체인 캐터필러(Caterpillar)를 들 수 있다. 캐터필러의 사례처럼 정확한 AI 모델링을 위해서는 엄청난 양의 데이터가 필요하지만, 그 방대한 양 때문에 데이터 정리 및 레이블 지정 과정에 평소보다 훨씬 더 많은 시간이 소요될 수 있다.

이러한 데이터 준비 과정을 간소화하기 위해, 캐터필러는 자동 레이블 지정 및 매트랩(MATLAB)을 통해 머신러닝 모델에 대한 입력으로 사용 가능한 정리 및 레이블 지정 작업 완료된 데이터를 보다 빠른 속도로 개발하고 있다.

또한 이러한 데이터로 현장의 기계로부터 더욱 의미 있는 혜안을 얻을 수 있다. 이러한 데이터 준비 과정은 요구사항에 따라 확장 가능하며, 사용자가 꼭 AI 전문가가 아니더라도 도메인 분야별 전문지식을 적용할 수 있으므로 유연성이 뛰어나다고 할 수 있다.

2단계: AI 모델링

일단 데이터가 정리되고 레이블이 제대로 지정되고 나면, 워크플로우의 모델링 단계로 넘어가야 하는데, 이 단계에서는 데이터가 입력 정보로 사용되고 그 데이터를 토대로 모델 학습이 진행된다.

성공적인 모델링 단계의 목표는 데이터에 기반한 지능적 결정을 할 수 있는 견고하고 정확한 모델을 만드는 데 있다. 그리고 어떠한 학습 결과가 가장 정확하고 견고할지 엔지니어가 결정하게 되는 바로 이때 딥러닝, 머신러닝 또는 그 둘을 조합한 기법이 워크플로우에 적용된다.

이 단계에서는 딥러닝(신경망)과 머신러닝 모델(SVM, 결정 트리 등) 중에서 어떤 선택을 하는지와 관계없이, 분류, 예측, 회귀 등 AI 워크플로우에 사용되는 여러 알고리즘에 직접 액세스할 수 있는 것이 중요하다. 광범위한 커뮤니티에서 개발된 다양한 종류의 이미 사전에 구축된 모델을 출발점 또는 비교 대상으로 활용할 수도 있다.

엔지니어는 매트랩 및 시뮬링크(Simulink)와 같은 유연한 툴을 활용해 반복적인 AI 모델링에 필요한 지원을 받을 수 있다. 알고리즘 및 사전 구축형 모델은 출발점으로 삼기에 좋지만, 이들만으로는 완벽한 결과를 얻기 어렵다. 엔지니어는 예제를 통해 이러한 알고리즘의 사용방법과 함께 특정 문제에 대한 최선의 접근법을 찾는데, 매트랩은 여러 분야에 걸쳐 AI 모델을 구축할 수 있는 수백 가지의 예제를 제공한다.

AI 모델링은 전체 워크플로우 안에서 반복 수행되는 단계이고, 엔지니어는 이 단계 전반에 걸쳐 모델에 적용한 변경 사항을 추적해야 한다. 익스페리먼트 매니저(Experiment Manager) 앱과 같은 툴로 변경 사항을 추적하고, 훈련 반복 사항을 기록하는 작업은 가장 정확한 모델과 재현 가능한 결과를 도출하는 파라미터를 설명하는 데 매우 중요한 역할을 한다.

3단계: 시뮬레이션 및 테스트

AI 모델은 보다 큰 대규모 시스템에 안에 내재해 있으며, 시스템 내 다른 모든 부분과 함께 유기적으로 작동해야 한다. 자율주행 시나리오를 예로 들면, 성공적인 자율주행을 위해서는 위치 추정, 경로 계획 및 제어 등을 위해 객체(보행자, 자동차, 정지 신호) 탐지 역할을 하는 인식(perception) 시스템을 차량 내부의 다른 시스템과 통합해야 한다. 시뮬레이션과 정확성 테스트는 AI 모델의 실제 환경 배포 전에 모델이 제대로 작동하는지, 다른 시스템과 더불어 원활히 작동하는지 검증하는 데 매우 중요하다.

AI 모델의 배포 이전에 이와 같은 수준의 정확도와 견고성을 지닌 AI 모델을 구축하기 위해 엔지니어는 모델이 어떤 상황에서든 예상된 방식으로 반응하는지 확인해야 한다. 이 단계에서는 다음과 같은 질문을 할 필요가 있다.

- 모델은 전반적으로 얼마나 정확한가?
- 모델은 여러 시나리오에서 예상대로 작동하는가?
- 예외적 상황을 전부 고려했는가?

일단 모델이 직면할 것으로 예상되는 모든 케이스에 대한 시뮬레이션 및 테스트가 성공적으로 이뤄지고, 타깃의 모델 성능을 검증할 수 있다면 모델의 신뢰도가 높아지게 된다. 이때 엔지니어는 시뮬링크와 같은 도구를 활용함으로써 예상된 모든 사용 사례에서 모델이 원하는 대로 작동하는지 검증할 수 있으며, 이는 많은 비용과 시간이 드는 모델의 재설계 작업 없이 가능하다.

4단계: 배포

위에서 언급한 1단계부터 3단계를 거쳐 배포 준비를 마친 후, 다음 목표로 타깃 하드웨어를 선정해야 한다. 즉 최종적으로 모델을 구현하는 데 필요한 코딩 언어로 모델을 준비시키는 단계다. 일반적으로 이 단계에서는 즉시 구현 가능한 모델을 공유해 지정된 하드웨어 환경에 그 모델을 맞출 수 있다.

그렇게 지정되는 하드웨어 환경은 데스크톱부터 클라우드, 임베디드, GPU, FPGA에 이르기까지 다양할 수 있으며, 매트랩은 이 모든 시나리오에 대한 최종 코드 생성을 처리할 수 있다. 엔지니어는 이와 같이 유연한 코드 생성 옵션을 제공하는 매트랩을 활용해 코드 재작성 필요 없이 다양한 환경에 걸쳐 모델을 마음껏 배포할 수 있다.

GPU에 모델을 직접 배포하는 경우를 예로 살펴보면, 자동 코드 생성을 통해 수동 변환으로 인한 오류 가능성을 없앨 수 있으며, GPU에서 효율적으로 실행할 수 있는 고도로 최적화된 쿠다(CUDA) 코드를 만들어낼 수 있다.

“엔지니어와 과학자의 도메인 전문지식과 함께 맞춤설계 도구, AI 통합 지원 함수·앱 및 AI 전문가의 경험·리소스 활용 시 성공 확률이 높아진다.”

엔지니어는 데이터 과학자나 AI 전문가가 되지 않아도 AI로 성공을 거둘 수 있다. 엔지니어와 과학자를 위해 설계된 다양한 툴, AI를 워크플로우에 통합하는 함수와 앱, 그리고 AI 통합에 관한 질문에 언제든 답변할 수 있는 전문가들은 AI 모델을 성공으로 이끄는 데 중요한 리소스라 할 수 있다. 결국, 엔지니어는 AI 구현에 도움이 되는 적절한 리소스로 자신이 가장 잘 할 수 있는 부분에 집중하고 이를 토대로 프로젝트를 진행할 때 최고의 성과를 거두게 될 것이다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.