[특강] 서비스 향 AI 모델 개발하기

서비스 향 AI 모델 개발하기

공부를 할 때는 기존의 학습 데이터를 사용할 수 있지만 새로운 서비스 개발할 땐 학습 데이터셋이 없는 경우가 많아서 직접 만들어야 하는 경우가 대부분이다. 당연히 테스트 데이터셋도 없고 테스트 방법도 모른다. 다만 개발하려는 서비스 요구 사항만 알고 있을 뿐이다. 따라서 AI 모델을 개발한다면 거기에 필요한 학습 데이터셋을 준비하는 게 첫 번째 할 일이다(종류, 수량, 정답 정하기).

데이터 준비

데이터 종류와 수량

예시)

기획팀 : 수식을 사진으로 찍으면 그걸 인식하는 기술을 개발해 주세요.
- 어떤 수식을 원하나요?
- 초중고 수학이요.
- 이 서비스를 구체적으로 어떻게 사용하실 건가요?
- 학생들이 수식 입력을 힘들어해서 ai가 대신해주면 좋을 거 같아서요.
- 음… 수식은 보통 Latex로 입력하니 수식 이미지를 Latex로 변경하면 되겠네요.

(잠시 후)

개발팀 : 아 혹시 학생들 손글씨 수식도 인식할 필요가 있을까요?
-기획팀 : 네, 그렇습니다 -> (학습 데이터 종류가 재정의 된다. : 초중고 수식, 손글씨 포함)

위와 같은 과정을 거치면서 데이터를 준비하는 동안 종류에 따라 데이터를 분류하고 각각의 종류에 대해 얼마나 데이터를 수집할지 결정해야 한다.

기술 모듈 설계

앞서 언급한 예시 상황에서는 수식 이미지를 입력 받아서 Latex String으로 출력하는 기술 모듈을 개발해야 한다. 그런데 생각해보니까 하나의 수식만 나오게 사진 찍기 어렵거나, 혹은 여러 수식을 함께 찍는 효율이 더 좋을 수도 있지 않은가.

그래서 아래와 같이 더 복잡한 과정으로 계획을 수정할 수 있다.

전체 이미지 > 수식 영역 검출(기술 모듈 1) > 수식 이미지 > Latex로 변환(기술 모듈 2) > Latex string

학습 데이터셋의 정답

학습 데이터의 정답은 AI 모델별로 입력에 대한 출력 쌍이다. 수식 영역 검출 모듈 부분을 예로 들면 결과가 수식 영역의 위치가 되어야 한다. 그리고 영역을 설정할 때 그 영역을 좌상단과 우하단의 점 두 개로 정의할 건지, 그냥 점 네 개의 사각형으로 할 건지 혹은 그냥 픽셀 단위로 추출할 건지 등등의 선택지가 있겠다.

한편, 두 번째 기술 모듈은 하나의 모델로 하지 않고, 검증된 성능을 가진 네 모델로 조합할 수도 있다.
예) 검출기(Latex symbol별 검출) + 인식기(symbol 분류) + 정렬기(symbol 정렬) + 변환기(Latex String 생성)

따라서 모델 파이프 라인 설계가 되어 있어야 한다. 물론 이 설계 검증을 하려면 학습 데이터셋이 필요하기에 결국 데이터 준비와 설계 검증을 반복하면서 충분한 상태로 수렴해가는 과정이 되겠다.

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

테스트 데이터셋은 학습 데이터를 모으면서 마련할 수도 있다.

문제는 테스트 방법.

  • 서비스 적용 전 성능 평가
    • 정량 평가 : 미완성 상태이기에 AI 모델 후보 선택 목적으로 실시한다.
    • 정성 평가 : 각 후보 모델을 면밀히 검토한 후에 서비스 출시 버전을 선택한다.
  • 서비스 적용 후 성능 평가
    • 정량 평가 : 해당 모델을 서비스 시나리오에서 자동 정량 평가한다.
    • 정성 평가 : 고객으로부터 모델 개선 사항을 수집한다.

모델 요구사항 도출

  • 처리 시간
  • 목표 정확도
  • QPS(Queries Per Second) : 장비 증가, 처리시간 줄이거나, 모델 크기를 줄인다.
  • serving 방식 : 어떤 환경에서 동작하길 원하는지
  • 장비 사양