무슨 생각을 해 그냥 하는거지

[학습정리] 2021-09-23/24 특강 본문

Naver AI Tech 2기/Today I Learned

[학습정리] 2021-09-23/24 특강

빛나는콩 2021. 10. 7. 00:56

※ 정보전달이 목적인 포스트가 아니라 개인 학습 기록 및 정리가 목적인 포스트입니다 ※

해당 포스트는 네이버 커넥트 재단의 부스트캠프 특강을 바탕으로 작성되었습니다.

 

1. 특강 복습 내용

[서비스 향 AI 모델 개발하기] - 이활석님

(현) Upstage CTO (전) 네이버 클로바 임원

실제 서비스에서 사용되는 AI 모델 개발 vs 수업/연구 AI 모델 개발

  • 수업/연구: 데이터셋과 평가 방식이 정해져 있고 이를 사용해 더 좋은 모델을 찾으려 함.
  • 실제 서비스 개발: 데이터셋(학습/테스트)도 없고 평가 방식도 결정되어 있는 게 없음. 오로지 주어진 것은 서비스 요구사항!

그래서 실제 서비스에서는,

  1. 학습 데이터셋 준비
  2. 테스트 데이터셋/테스트 방법 준비
  3. 모델 요구사항 준비

이렇게 세 가지가 추가적으로 필요하다. 간단해보이지만 세부적으로 보면 엄청나다...

 

(1-1) 학습 데이터셋 준비 - 종류/정답/수량 결정

서비스 요구사항으로부터 학습 데이터셋의 종류/수량/정답을 정해야 한다.

  • 종류의 예) 수식을 사진으로 찍어서 인식하는 기술을 개발하고자 함 → 어떤 수식? → 초중고 수학, 손글씨, 교과서 등등
  • 정답의 예) 수식 인식을 어디에 사용할 것인가? → 학생들이 직접 수식을 입력하는 게 어려우니, AI가 해주고자 함 → 수식 입력은 주로 Latex를 사용하니, 수식 이미지를 Latex로 변환 (정답이 Latex string이 됨)
  • 수량의 예) 종류와 함께 정의해야 함. 손글씨 수식 이미지는 몇 개, 교과서 이미지는 몇 개... etc

 

(1-2) 학습 데이터셋 준비 - 기술 모듈 설계

데이터를 모으다 보면 고려하지 못했던 것이 나타난다.

  • 원래 수식 이미지를 입력 받아 Latex string을 출력하는 Image to Latex 기술 모듈만을 생각했지만, 수식 이미지에 두 개 이상의 수식이 있거나, 고정된 위치에만 있지 않아서 수식 영역을 검출하는 기술 모듈을 Image to Latex 기술 모듈 전에 추가해야 한다.

 

(1-3) 학습 데이터셋 준비 - 정답

하나의 모델로 성능을 기대하기 어렵다면, 여러 모델을 조합할 수 있다.

  • Image To Latex 모델을 성능이 검증된 네 가지 모델(검출기, 인식기, 정렬기, 변환기) 조합으로 만들 수 있다. 그렇다면 각 모델별 입출력 정의가 필요하다.

그러니까 학습 데이터를 준비하려면 결국 모델 파이프 라인 설계가 되어 있어야 하고...

근데 모델 파이프 라인 설계를 하려면 또 어느 정도 데이터는 있어야 하고... (반복)

 

실제 서비스 개발 과정 - 학습 데이터셋 준비

 

(2-1) 테스트 데이터셋 / 테스트 방법 준비

실제로는 다르겠지만 일단 테스트 데이터셋을 학습 데이터셋에서 일부 사용한다고 해보자.

테스트 방법은 서비스 요구사항으로부터 도출해야 한다.

  • Offline: 서비스 적용 전 성능 평가 (완벽하지 않지만, 모델 후보 선택 목적으로 활용)
  • Online: 서비스 적용 시 성능 평가

offline 테스트와 online 테스트는 이질감이 굉장히 클 가능성이 높음.

 

(3) 모델 요구사항 도출

실제 서비스 개발 과정 - 모델 요구사항 도출

  • 처리 시간: 하나의 입력이 처리되어 출력이 나올 때까지의 시간 (offline test로는 이미지 입력 후 수식 영역 정보가 출력될 때까지의 시간 /  online test로는 이미지 촬영 후 수식 영역 정보가 화면 상에 표현되기까지의 시간)
  • 목표 정확도: 기술 모듈의 정량적 정확도 (offline test로는 입력된 이미지 내의 카드 번호/유효기간에 대한 edit distance / online test로는 실제 사용자가 AI 모델의 결과값을 수정할 확률)
  • 목표 QPS: Queries Per Second, 초당 처리 가능한 요청 수. 장비를 늘리기, 처리 시간이나 모델 크기 줄이기로 향상 가능
  • Serving 방식: Mobile / Local CPU(/GPU) server / Cloud CPU(/GPU) server
  • 장비 사양: 예산이나 QPS에 맞춰서 장비 사양 결정

 

서비스 향 AI 모델 개발 기술팀의 조직은 어떻게 구성되어 있는가?

(1) AI 모델팀

(2) AI 모델 서빙팀

팀 구성을 보면서 내가 어떤 일을 하고 싶은지, 그러려면 어떤 능력을 키워서 경쟁력을 향상시킬지 생각해봐야겠다.

모델링에 대한 전문성도 당연히 중요하지만, 주변 능력을 갖는다면 좋을 것 같다.

 

 

[캐글 그랜드마스터의 경진대회 노하우 대방출] - 김상훈님 (Upstage)

캐글 대회 개최 목적

  • Featured: 상업적 목적의 예측 대회 (기업)
  • Research: 연구 목적의 대회
  • Getting Started & Playground: 초심자를 위한 학습 목적의 대회. 랭킹용 포인트/메달 획득 불가
  • Analytics: 데이터 분석 목적의 대회. 데이터 탐색 & 시각화
  • Recruitment: 리크루팅 목적의 대회

 

캐글 대회 제출 방식

  • General Competition: submission.csv 파일만 제출 (리소스 제약 X)
  • Code Competition: 캐글 노트북에서 코드를 실행시켜 submission.csv 파일을 생성해야 함. (리소스 제약 O)

 

 

[Full Stack ML Engineer] - 이준엽님 (Upstage)

Web application의 일반적인 구조

Full stack ML engineer?

: 딥러닝 research를 이해 + ML Product로 만들 수 있는 engineer

  • 실생활 문제를 ML 문제로 formulation (ML로 해결 가능한가?)
  • Raw Data 수집 (웹에서 학습 데이터를 모아야 하는 경우, Web crawler 사용 - 이때 저작권 주의)
  • Annotation tool 개발 (작업 속도와 정확성을 고려한 UI 디자인)
  • Data version 관리 및 loader 개발
  • 모델 개발 및 논문 작성
  • Evaluation tool / Demo 개발
  • 모델을 실 서버에 배포 (연구용 코드→production 서버)

 

 

 


2. 학습 회고

  • 그동안 어렴풋이 웹을 공부하면 좋다, MLOps를 하면 좋다라고 들어오기만 했는데 이번 특강을 들으니까 확실히 AI 모델링에만 집중하는 것이 아니라 다른 것도 활용할 줄 알아야겠다는 생각이 들었다. 특히 내가 만든 모델을 서빙하려면 웹은 정말 필수라고 느껴졌다.
  • level1 U stage 때부터 캐글은 꼭 해봐야지라고 생각했는데 아직 한 번도 해본 적이 없다. 캐글에 의료데이터도 나오는 것 같으니 부캠 하다가 여유가 좀 생기거나 아니면 끝나고 꼭 참여해볼 것이다.

 

'Naver AI Tech 2기 > Today I Learned' 카테고리의 다른 글

[학습정리] 2021-10-14  (0) 2021.10.15
[학습정리] 2021-10-13  (0) 2021.10.13
[학습정리] 2021-09-13 ~  (0) 2021.09.23
[학습정리] 2021-09-10  (0) 2021.09.12
[학습정리] 2021-09-09  (0) 2021.09.11