[AITech][Special Lecture] 20220214 - 서비스 향 AI 모델 개발하기
학습 내용
서비스 향 AI 모델 개발과 수업/학교/연구 AI 모델 개발의 차이
연구 관점에서 AI 개발이란?
보통 수업/학교/연구에서는 정해진 데이터셋과 평가 방식 하에서 더 좋은 모델을 찾는 일을 합니다.
서비스 관점에서 AI 개발이란?
허나, 서비스 개발 시에는 학습 데이터셋/테스트 데이터셋/테스트 방법 모두 주어진 것이 없습니다. 대신에, 서비스 요구 사항만이 존재할 뿐이죠.
실제 서비스될 AI 모델을 개발하는 입장에서는, 이 서비스 요구 사항을 가지고 학습 데이터셋/테스트 데이터셋/테스트 방법을 결정하는 과정이 필요합니다.
학습 데이터셋 준비
데이터셋 종류/수량/정답 결정
첫번째로 학습 데이터셋을 어떻게 준비하는 지 보겠습니다. 좀 더 구체적으로 말하면 우리는 서비스 요구사항으로부터 학습 데이터셋의 종류/수량/정답(라벨) 등을 결정해야 합니다.
예를 들면 다음과 같습니다.
- 데이터셋 종류
- 수식을 사진으로 찍어서 인식하는 기술을 개발해달라. -> 어떤 수식을 말하는가? -> 초중고 수학에 나오는 수식이다. => 초중고 수식들이 필요하다.
- 학생들이 손으로 쓴 수식도 인식해야 하나? -> 인식해야 한다. => ‘그림자, 형관펜, 수식 잘림, 화이트, 종이 구겨짐, 회전, 여러 수식이 함께 있음’ 같은 여러 경우에 대비하여야 함
- 데이터셋 정답
- 수식 인식의 목적은 무엇인가? -> 학생들이 컴퓨터로 수식 입력하는 것을 어려워 한다. => AI 모델의 output은 Latex String이다.
- 데이터셋 수량
- 데이터셋 종류 별로 몇 장씩 수집할 것인지 결정
기술 모듈 설계
위에서의 요구 사항들을 종합하여, 기술 모듈을 설계할 수 있습니다.
처음에는 단순한 input-output 만 결정되었던 기술 모듈이,
요구 사항들을 통해 구체화됩니다.
그리고 각각의 기술 모듈에 들어갈 모델들을 다시 세분화하죠.
그리고 이 과정에서 학습 데이터셋의 정답은 변화하게 됩니다. 각 기술 모듈/AI 모델이 맡은 역할에 따라 학습할 데이터셋이 주어져야 합니다.
이처럼, 학습 데이터셋은 서비스 요구 사항과, 그 과정에서 구체화되는 AI 모듈들에 따라 달라집니다.
그런데, 모델 파이프라인을 설계하려면 어느 정도의 데이터는 준비가 되어있어야 합니다. 결국 여기서 중요한 것은, 학습 데이터와 모델 파이프라인은 서로에게 영향을 주며 계속해서 변화/구체화된다는 것입니다.
테스트 데이터셋/테스트 방법 준비
학습 데이터셋이 준비되고 나면, 테스트 데이터셋과 테스트 방법을 준비해야 합니다. 여기서는 테스트 데이터셋은 학습 데이터셋의 일부를 사용한다고 하고, 테스트 방법에 대한 이야기를 해보겠습니다.
테스트 방법 또한 서비스 요구 사항에서 도출됩니다.
다음과 같은 상황을 생각해봅시다.
- 일대일 대전 게임을 위한 AI 모델을 설계한다.
- 이때 AI 모델의 입력은 게임 화면 이미지, 출력은 스킬셋 중 하나로 정한다.
- 모델의 학습을 위해 프로게이머들의 로그를 받아서 학습시켰고, 99%의 정확도를 기록했다.
- 실제 사용자와 대전을 시켜보니 AI 모델은 아무런 스킬을 사용하지 않고 패배했다.
왜 위와 같은 상황이 벌어진 것일까요? 문제는 학습 데이터로 사용한 프로게이머들의 로그였습니다. 프로게이머들은 스킬을 남발하지 않고 적재적소에서 한 번씩만 사용하였으며, 따라서 로그의 99%가 no_action 에 해당했던 것이었습니다. 그런데 이 경우, 모델이 100% 항상 no_action을 예측하면, 99%의 정확도를 얻을 수 있습니다.
이렇게 실 서비스 적용 전에 개발 환경에서의 정량 평가(OFFLINE 테스트)와 실 서비스 적용 시에 정량 평가(ONLINE 테스트) 사이의 괴리는 매우 클 수 있으며, 이 괴리를 최대한 줄여 ONLINE 테스트와 OFFLINE 테스트의 성능이 비슷하도록 테스트를 설계해야 합니다.
테스트 방법에 대해 다음과 같이 정리할 수 있습니다.
모델 요구사항 도출
추가로, 모델에 관련한 요구사항들을 도출해야 합니다.
- 처리 시간
- OFFLINE TEST: 이미지 입력 후 수식 영역 정보가 출력될 때까지의 시간
- ONLINE TEST: 이미지 촬영 후 이미지에서 수식 영역 정보가 화면 상에 표현되기까지의 시간
- 목표 정확도
- ONLINE TEST: 입력된 이미지 내 카드 번호/유효 기간에 대한 EDIT DISTANCE
- ONLINE TEST: 사용자가 AI 모델의 결과값을 수정할 확률
- 목표 qps(queries per second)
- 장비를 늘린다.
- 처리 시간을 줄인다.
- 모델 크기를 줄인다.
- Serving 방식
- 기술 모듈이 동작하는 환경이 Mobile인지, Local CPU/GPU인지, Cloud CPU/GPU인지 등
- 장비 사양
- Serving 장비조차 없어 장비 구축까지 같은 요구되는 상황들이 있음.
지금까지 살펴본 것처럼, AI 모델 개발에는 모델링 외에도 학습 데이터셋/테스트 데이터셋/테스트 방법 결정 및 모델 요구사항을 충족시키는 과정이 필요합니다.
서비스 향 AI 모델 개발 기술팀의 조직 구성
이 부분에서 우리에게 전달하고자 하는 메세지는 간단합니다. 서비스를 위한 AI 모델을 개발하는 일에는 생각보다 많은 과정이 포함되어 있고, 많은 역할/인력이 필요합니다. 따라서, AI 모델링에만 너무 몰두하지 말고, 그 외에 다른 주변 역량들을 함께 키워나가는 것이 우리의 가치를 올려주는 데 큰 역할을 할 것입니다.
또한, 우리는 AI 기술 트렌드에 민감해야 합니다. AI 기술 발전 속도는 다른 기술에 비해 매우 빠르며, 단순 기술 뿐 아닌 이를 둘러싼 많은 것들도 빠르게 변화합니다. 따라서 우리는 어떻게 하면 효율적으로 변화에 적응할 지 고민해야 합니다.
Leave a comment