서비스 향 AI 모델 개발하기

Andrew·2021년 3월 2일
0

서비스 향 AI 모델 개발하기

  • 회사에서 AI 모델을 개발하는 것이 수업에서 듣는 내용과 무엇이 다른지 살펴본다
  • 가장 큰 차이점은 데이터셋과 평가 방법이 준비되어 있지 않다는 것이다
  • 학습 데이터셋을 준비할 때 실제 회사에서는 어떤 일을 겪게 되는지 자세히 살펴보고, 해당 데이터셋을 학습된 모델의 성능을 평가할 때는 어떠한 점을 고려해야 하는지 사례 중심으로 설명한다
  • 또한, 이러한 업무들의 효율적인 진행을 위한 조직 구성도 제안하면서, AI 상품화 과정 속에 필요한 전체 업무 리스트를 정리해 본다
  • 마지막으로, AI 입문자에게 도움이 될 만한 조언들로 마무리한다

서비스 향 AI 모델 개발 VS 수업/학교/연구 AI 모델 개발

  • 서비스에서 사용되는 AI 모델 개발 일은 현재 수업에서 배우고 있는 AI 모델 개발과 무엇이 다른가?

연구 관점에서 AI 개발이란?

  • 보통 수업/학교/연구에서는 정해진 데이터셋/평가 방식에서 더 좋은 모델을 찾는 일을 한다

서비스 관점에서 AI 개발이란?

  • 서비스 개발 시에는 학습 데이터셋도 없고, 테스트 데이터셋과 테스트 방법도 없다

  • 서비스 개발 시에는 서비스 요구 사항만이 있다

  • 그래서, 첫 번째로 해야 할 일은 학습 데이터셋 을 준비하는 것이다

    • 정확히는 서비스 요구사항으로 부터 학습 데이터셋의 종류/수량/정답 을 정해야 한다
    • 질의응답을 통해 데이터셋의 종류/수량/정답 관련 요구사항을 구체화해야 한다

학습 데이터셋 준비 : 종류/수량

  • 결국, ‘종류’에 대해서도 정의를 해야 한다
    • 어디까지 ‘종류’로 정의해서 각각 몇 장을 수집 할 것인지 정해야 한다

학습 데이터셋 준비 : 기술 모듈 설계

  • 직접 데이터를 모아보면 미리 생각하지 못한 경우도 많이 발견하게 된다!

학습 데이터셋 준비

  • 그런데, 모델 파이프 라인 설계 하려면 어느 정도 데이터가 있어야 한다!

  • 자! 본인이 학습 데이터셋 준비 담당자라고 해보고, 어떤 일을 겪게 되는지 살펴보자

    • 학습 데이터셋을 제작할때 외주업체를 많이 사용한다
      • 학습 데이터셋에 대한 정답을 매겨주는 일
      • 작업 가이드 - 학습 데이터에 대한 정답을 어떻게 매길지

테스트 데이터셋 / 테스트 방법 준비

  • 테스트 데이터셋은 학습 데이터셋에서 일부 사용한다고 하고, (사실은 이것도 할 얘기가 많지만..) 서비스 요구사항으로부터 테스트 방법을 도출해야 한다

  • 이것도 이해를 위해서 하나 예시를 들어 보자!

    • 1 vs 1 대전 게임을 위한 AI 모델을 만든다고 생각해 보자.
  • 이때 AI 모델의 입출력은 다음과 같다

  • 이 AI를 학습시키기 위해서 프로게이머들의 로그를 받아서 AI를 학습시켰다

    • 그 결과 모델의 분류 정확도가 무려 99%!!
    • 이 AI 모델을 실제 사용자와 대전을 붙였을 경우 결과가 어떻게 되었을까?
  • 결과는 완패!!

    • 이 AI 모델은 아무런 스킬도 사용하지 않았답니다
    • 왜냐하면, 프로게이머의 로그를 살펴보니..
    • 고수일 수록 스킬을 남발 하지 않고, 적재적소에서만 사용 ➔ 로그 대부분 no_action
    • 그래서 모델이 항상 no_action을 예측하게 학습이 되었고, 모델 정확도는 99% 실제 승률은 0%
  • 이렇게 실 서비스 적용 전에 개발 환경에서의 정량 평가와 (OFFLINE 테스트) 실 서비스 적용 시에 정량 평가는 (ONLINE 테스트) 이질감이 굉장히 클 수 있다

  • 결국, 서비스에서의 품질이 중요하기 때문에 OFFLINE 테스트 결과가 ONLINE 테스트 결과와 유사하게 OFFLINE 테스트를 잘 설계해야 한다

  • 테스트 방법에 대해 다음처럼 정리할 수 있다

모델 요구사항 도출

  • 추가로, 모델에 관련한 요구사항을 도출해야 한다

  • 처리 시간 / 목표 정확도

  • 목표 qps

  • Serving 방식 / 장비 사양

  • AI 모델 개발에는 수업에서 익히는 것 외에 정말 많은 일들이 존재



서비스 향 AI 모델 개발 기술팀의 조직 구성

  • 서비스에서 사용되는 AI 모델을 개발하기 위한 바람직한 조직 구성

AI 모델팀

  • AI 기술팀에게는 서비스 요구사항이 오고, 이에 맞는 AI 모델을 개발해야 한다
    • 당연히, AI 모델을 개발하는 인력이 필요하다
    • 다음으로는, 앞서 설명드린 데이터를 준비하고 품질을 관리하는 인력이 필요하다
    • 추가로, 데이터/모델과 관련된 업무의 효율성을 위한 툴을 개발하는 인력도 필요하다
    • 마지막으로 이 전체를 총괄하여 모델의 품질을 관리하는 사람이 필요하다

AI 모델 서빙팀

  • 그런데, 기술팀에 AI 모델 Serving까지 요구되면 필요한 인력은 늘어난다
  • 우선 Serving HW향으로 모델을 최적화하는 인력이 필요하다
  • 마지막으로 모델을 실제 서빙하기 위한 추가 작업들이 end device에 맞춰 더 있다


당부의 말씀 몇가지

  • AI쪽으로 커리어를 쌓고자 하시는 분들에게 드리고 싶은 말씀

개발자 ⇒ AI 관련 전환

  • Model Engineering / Tool / Serving 은 개발력이 많이 필요한 일이고, 앞으로 점차 니즈가 많아질테니 너무 AI 모델링 쪽으로 한 번에 넘어 가시지 말아라

모델러

  • 한 분야의 모델링에 대한 전문성도 중요하지만, 점점 해당 업무는 자동화되고 (AutoML, 관련 툴) 관련 인력 수도 늘어나니 주변으로 역량을 확대하라

All

  • 특히나, AI 기술트렌드에 민감해야 한다
  • AI 기술 발전 속도는 다른 기술에 비해 훨씬 빠르고 변화무쌍하다
  • 단순히 기술 뿐만 아니라, 이를 둘러싼 많은 것들도 빠르게 변한다
  • 이것을 당연하게 받아들이고, 어떻게 하면 효율적으로 변화에 적응할 지 고민해야 한다
  • 예전에 경험하지 못한 늘 새로운 일이 생겨나고, 기존 사례도 없는 경우도 많으니 새로운 길을 개척하는 경우도 적지 않다
profile
아기개발자

0개의 댓글