Search

서비스 향 AI 모델 개발하기 (3)

#조직구성 #AI모델팀 #AI모델서빙팀



안녕하세요! 업스테이지입니다.


지난 (1) 학습 데이터셋 준비, (2) 모델 테스트 & 모델 요구사항 포스트를 통해 서비스 향 AI 모델을 만드는 과정을 소개해드렸습니다. 학습 데이터셋, 테스트 데이터셋이 없고, 오직 서비스 요구사항만 주어진 상황에서 AI 모델을 개발하기 위해 필요한 수많은 작업에 대해 알아보았습니다.




<서비스 향 AI 모델 개발 전 과정 Review>



물론 이 수많은 일들을 혼자서 처리할 수 없습니다. 여러 사람들이 하나의 팀으로 움직이며 서비스를 만들어나가야 합니다. 그렇다면 어떻게 팀이 구성되어야 모델 개발에 필요한 일들을 효율적으로 처리할 수 있을까요? 이번 포스트에서는 ‘서비스향 AI 모델 개발을 위한 바람직한 조직 구성은 무엇인가’라는 주제를 다뤄보겠습니다. 조직구성과 직함의 경우 각 회사와 프로젝트 마다 달라질 수 있으니 이번 포스트는 하나의 참고자료 정도로 봐주시면 감사하겠습니다. (이번 글은 (1) 학습 데이터셋 준비, (2) 모델 테스트 & 모델 요구사항 포스트를 읽었다는 전제 하에 전개되므로, 읽지 않으신 분들은 읽고 와주세요.)



[기술팀 조직 구성: AI 모델 팀]


1. Modeler

서비스 요구사항을 충족시키는 AI 모델을 개발하는 인력입니다. 이들은 서비스 요구사항을 만족시킬 수 있는 AI 모델 구조를 제안하고 개발합니다. 또한 모델의 성능을 끌어올릴 수 있는 다양한 방법을 찾고 이를 위해 데이터 및 모델을 분석합니다.



2. Data Curator

Data Curator는 모델 학습 및 평가에 필요한 데이터셋을 준비하는 역할입니다. 학습 데이터셋 준비는 깊은 고민과 많은 커뮤니케이션, 그리고 노하우가 필요하기 때문에 데이터셋 준비 인력을 별도로 두는 것이 좋습니다. Data Curator들은 서비스 기획팀과 커뮤니케이션 하며 데이터셋의 종류, 수량, 정답을 정의해 나가고 그에 알맞는 데이터셋을 확보합니다. 만약 외주업체를 통해 데이터를 제작할 경우 데이터 어노테이션 가이드라인을 제작하여 업체에게 전달해야 하며, 데이터를 제작하면서 들어오는 외주 인력의 Q&A에 대응 해야 합니다. (더욱 자세한 학습 데이터셋 준비 과정을 알고 싶으시다면 (1) 학습 데이터셋 준비 포스트를 참고해주세요)


또한 Data Curator은 모델 및 서비스 평가에 관여하기도 하는데, 이는 Data Curator가 데이터를 제일 많이 들여다 본 사람 중에 하나이며, 서비스 기획팀과의 지속적인 커뮤니케이션 덕분에 서비스에 대한 이해도가 내부에서는 제일 높기 때문입니다. 주 업무는 AI 모델 후보들 중에서 서비스 출시 버전을 골라낼 수 있는 정량, 정성 평가를 기획하고 실시하는 것 입니다. 또한 AI 서비스 출시 이후에도 지속적으로 모델 성능에 대한 피드백을 트래킹 하며 모델, 학습 및 평가 데이터셋에 대한 개선책을 유관인력들과 함께 도출하고 이를 모델, 데이터셋에 반영합니다.


3. IDE Developer

모델을 개발하고 데이터를 제작하다보면 반복적인 업무가 많이 발생합니다. IDE Developer는 이런 반복적인 업무를 효율적으로 처리하고 관리할 수 있는 툴을 개발하여 팀의 퍼포먼스를 비약적으로 상승시키는 역할을 수행합니다.


AI 모델 제작 시 IDE Developer가 개발하면 좋은 툴은 다음과 같습니다.

  • 어노테이션 툴: 모델 성능을 개선하는 방법 중에 하나가, 모델의 출력물에 대한 정의를 바꾸는 것도 있습니다. 모델 출력물의 정의가 바뀌게 되면 그에 맞게 어노테이션을 달리 해야 할 필요가 있고, 그 말은 어노테이션 툴의 변경이 필요하다는 이야기입니다. 이에 대한 효율적 대응을 위해서는 자체 어노테이션 툴을 가지고 있는 것이 좋습니다.

  • 모델/데이터 분석 툴: 모델의 성능은 모델의 구조와 학습 데이터, 그리고 학습 방법론에 의해 결정됩니다. 모델 성능 개선을 위해서는 당연히 데이터에 대한 다양한 분석이 필요하며, 이를 효율적으로 진행할 수 있는 툴이 있으면 모델 개선이 훨씬 수월하게 진행됩니다. 모델 또한 학습된 웨이트, 학습 과정에 남겨진 로그, 데이터 샘플 별 반응 등 다양한 분석이 필요하고, 상당 수의 작업은 반복적이기에 관련 툴이 있으면 개발 효율이 증대됩니다. 더군다나 여러 개의 모델이 동시에 사용되는 경우 콘솔창, 주피터 노트북으로는 상세한 분석과 디버깅이 너무나 힘듭니다. 별도의 분석 툴을 개발하여 활용할 경우 각 모델의 분석과 디버깅을 더욱 효율적으로 할 수 있습니다.

  • 모델 개발 자동화 파이프라인: 모델 간의 연결 작업, 모델의 배포 전까지의 준비 작업 등의 모델 개발 자체의 업무 외에 여러 백엔드 작업이 필요한데, 이 작업 또한 반복적인 경우가 많아서 관련 파이프라인을 자동화 해 둔 되면, 모델 실험 후 서비스 적용까지의 기간을 줄일 수 있습니다.


4) Model Quality Manager

AI 모델 팀의 궁극적인 목적은 비지니스의 요구사항을 충족시키는 모델을 개발하는 것이므로 조직 내의 여러 업무 진행 현황을 파악하고 목표달성을 위해 방향성을 잡아주는 업무가 필요한데 Model Quality Manager가 이 업무를 수행합니다.





<AI 모델 팀 구성 예시>



[기술팀 조직 구성: AI 모델 서빙 팀]

기술 팀에 AI 모델 개발뿐만 아니라 모델의 서빙까지 요구될 때도 많습니다. 이럴 경우 AI 모델 팀에서 제작한 모델을 받아 서빙을 위한 장치에 맞춰 서빙 작업을 수행할 별도의 개발 인력이 필요합니다.


1. Model Engineer

서빙 목표 장치 향으로 모델을 최적화하는 인력입니다. 모바일에서 구동하는 AI 서비스를 예로 들면 Pytorch로 작업한 모델을 Tensorflow로, 그 모델을 다시 TFLite로 변환하는 작업이 필요합니다. 만약 모델에서 TFLite로 변환이 불가한 오퍼레이션을 사용하는 경우 모델 구조를 변경하여 재학습하거나, 해당 오퍼레이션을 Custom Layer로 구현하기도 합니다. 이외에 Distillation이나 Quantization과 같은 모델 경량화, GPU 고속 처리를 위한 CUDA 프로그래밍 작업을 담당하기도 합니다.



2. App Developer/ BE Engineer

서빙 목표 장치에 맞춰 최적화된 모델이 나오더라도, 실제 모델이 서빙되기 위해서는 별도의 엔지니어링 작업들이 필요합니다. 모바일 서비스를 개발할 경우 어떤 모바일 디바이스에서 동작할 것인가(Android or ios)에 따라 필요한 작업이 다를 것입니다. 만약 API 서빙을 계획하고 있다면 CPU 서빙이냐 GPU 서빙이냐, 또한 Public Cloud냐 Private Cloud냐에 따라 각기 다른 백엔드 작업이 필요합니다.




<AI 모델 서빙 팀 구성 예시>



지금까지 총 세 편에 걸쳐 서비스 향 AI 모델을 개발하는 과정을 소개해드렸습니다. 오직 서비스 요구사항만 주어진 상황에서 어떻게 데이터셋을 구축하고 그를 바탕으로 모델을 제작할 수 있는지 자세히 설명드렸습니다. 나아가 이 과정을 효과적으로 수행할 수 있는 조직 구성에 대해서도 말씀드렸습니다.


앞으로도 AI 기술, AI 비지니스에 대한 업스테이지만의 인사이트를 공유하여 Making AI Beneficial이라는 미션에 한 발짝 더 다가가겠습니다.