Special stage Day 1 (Day 35)


AI 엔지니어로서 알면 좋은 지식들에 대하여 학습한다.

부스트 캠프 35일차 학습 요약

  • 학습 : 서비스 향 AI 모델 개발하기, 캐글 노하후 대방출, Quatn Trading, 내가 만든 AI 모델은 합법일까, 불법일까
  • 피어 세션

목차

1. 서비스 향 AI 모델 개발하기

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

  • 실제 현업에서는 학습 데이터셋은 물론이고 테스트 데이터셋과 테스트 방법도 주어지지 않는 경우가 많다.
  • 흔히 학습 데이터셋, 테스트 데이터셋, 테스트 방법 등은 주어지지 않고 서비스 요구사항만 오게된다. 1
  • 서비스 요구사항으로부터 학습 데이터셋을 어떻게 구성할 것인지 정한다.
    • 학습 데이터셋의 종류는 무엇이 되어야 하는지.
    • 각 종류별로 수량은 어느 정도 확보해야 하는지.
    • 정답을 어떻게 정해줘야 하는지.

1-2. 학습 데이터셋 준비

수식을 사진으로 찍어서 인식하는 기술을 개발하고 싶다고 할 때, 다음과 같은 준비과정이 필요로 된다.

  • “어떤 수식인가?” : 초중고 수학!
    • 이러한 질문과 답변으로 부터, 어떤 종류의 학습 데이터셋을 준비할 것인지에 대한 힌트를 얻을 수 있다.
  • “수식을 어떻게 사용할 것인가?” : 학생들이 인터넷에 직접 수식을 입력하는 것을 AI가 대신 해주면 좋을 것 같다.
    • 이런 식으로 질답을 해줌으로서, ‘수식 이미지를 Latex로 변경하면 될 것 같다’라는 정답 힌트를 얻을 수 있다.
  • “인쇄 수식뿐만 아니라 손글씨 수식도 인식해야하는가?” : 손글씨 수식도 인식할 수 있어야 한다.
    • 인쇄 수식뿐만 아니라 손글씨 데이터셋도 필요하므로, 학습 데이터셋에 대한 구체화를 이렇게 진행할 수 있다.
  • 이 뿐만 아니라, 그림자, 형광펜, 화이트 등등의 다양한 종류를 고려해야한다.
  • 결국, 학습 데이터 셋에 대한 ‘종류’에 대해서도 정의를 해야하며, 이를 얼마나 수집할 것인지 등도 정해주어야 한다.

1-3. 기술 모듈 설계

  • 수식 이미지 -> 기술모듈(Image to Latex) -> Latex String
  • 하지만, 이렇게 단순하게 할 수 있는 것이 아니라 이미지를 찾다보면 여러 수식이 하나의 이미지에 있는 경우도 있고, 회전되어 있는 경우 등이 많다. 이럴 경우에 기술 모듈이 추가되어 다음과 같이 진행된다. 2

1-4. 학습 데이터셋 준비: 정답

  • 이렇게 설계된 기술 모듈에 대하여 입력에 대한 출력 쌍으로서 정답이 어떻게 구성될 것인지 설계하고 데이터를 수집하도록 한다, 3
  • 위의 그림과 같이, 수식 이미지가 회전되어있을 경우, 종이가 구겨저 올바른 직사각형이 아닌 사다리꼴 형태로 수식 영역을 수집하거나, 픽셀로 수식이라고 판단되는 부분을 인식해 영역을 수집해야할 수도 있다. 4 5
  • 이렇게 수식의 영역을 검출하여 수식만 있는 이미지를 두 번째 AI 모델에 넣었을 때는 위의 그림처럼 Latex String을 출력해야하는 데, 이 때 바로 출력되는 것이 아니라 다양한 모델을 거쳐서 최종 출력이 나올 수도 있다.
  • 이렇듯, 결국 학습 데이터를 준비하기 위해서는 모델 파이프 라인 설계가 되어있어야 한다.

1-5. 내가 학습 데이터셋 준비 담당자라면?! 해야할 일

  • 서비스 기획자와의 의사소통, 이를 바탕으로 기능 요구사항 구체화, 학습 데이터 수량/종류 논의
  • AI 모델 개발자와의 의사소통, 이를 바탕으로 AI 모델 설계 논의, 학습 데이터 정답/수량/종류 논의
  • 외주업체와의 의사소통, 이를 위한 작업 가이드 작성, 작업 단가 논의, 작업 수량 논의, QnA 대응

1-6. 테스트 셋 / 테스트 방법 준비

  • 테스트 데이터 셋은 학습 데이터 셋의 일부를 사용한다.(아닌 경우도 있다.)
  • 서비스 요구사항으로부터 테스트 방법을 도축해야 한다.
  • offline 테스트와 online 테스트의 결과가 유사할 수 있도록 offline 테스트 설계를 잘 해야한다.
 offline(서비스 적용 전 성능 평가)online(서비스 적용 시 성능 평가
정량평가완벽하지 않기 때문에 AI 모델 후보 선택 목적으로 활용해당 AI 모델을 서비스 시나리오에서 자동 정량 평가
정성평가각 후보 AI 모델에 대한 면밀 분석 후 서비스 출시 버전 선택VOC(Voice Of Customer), AI 모델 개선 포인트 파악
  • offline 정량평가의 경우, 가장 성능이 좋은 모델 하나만 선택하기 보다는 후보 풀을 모은다는 느낌으로 정량평가를 사용하도록 한다.

1-7. 모델 요구사항 도출

  • 추가로, 모델에 관련한 요구사항을 도출해야 한다.
  • 서비스 요구사항으로부터 모델에 관련되어 있는 요구사항을 처리해야 한다.
  • 처리시간, 목표 정확도, 목표 QPS, Serving 방식 등이 있다.

처리시간

  • 하나의 입력이 처리되어 출력이 나올 때까지의 시간
  • 수식 검출 process에서의 offline, online 처리시간은 다음과 같다.
    • offline test : 이미지 입력 후 최종 정보가 출력될 때까지의 시간
    • online test : 이미지 촬영 후 이미지에서 수식 영역 정보가 화면 상에 표현되기까지의 시간

목표 정확도

  • 해당 기술 모듈의 정량적인 정확도
  • 신용카드 인식에서의 offline, online 정확도는 다음과 같다.
    • offline test : 입력된 이미지 내 번호/유효기간에 대한 EDIT DISTANCE
    • online test : 사용자가 AI 모델의 결과값을 수정할 확률

목표 QPS

  • QPS, Queries Per Second (초당 처리 가능한 요청 수)
  • 초당 100건의 이미지가 업로드된다고 할 때, 초당 100 QPS를 감당할 수 있는 환경이 되어야 버벅거림 없이 서비스가 원활히 돌아간다.
  • QPS는 높을수록 좋으며 향상 방법은 다음과 같다.
    • 장비를 늘린다 : N대의 장비를 늘리면 QPS 역시 N배 올라간다. (But, 비용이 많이 든다.)
    • 처리 시간을 줄인다 : AI 모델의 처리 속도가 N배 올라가면 QPS 역시 N배 올라간다.
    • 모델의 크기를 줄인다 : 한 GPU에 올라가는 모델의 수가 N배가 되면, QPS 역시 N배 올라간다. (다만, GPU resource의 한계에 대하여 선형적으로 N배가 되는 것은 아니다. ex) 10GB GPU, 7GB Model일 경우 QPS가 1이라고 할 때, 6GB Model로 줄였다고 해서 QPS가 2가 되는 것은 아니고 5GB가 되어야 GPU에 2개의 Model을 올려서 QPS를 2배로 늘릴 수 있게 된다.)

Serving and 장비

  • Serving의 경우 AI 모델이 어떤 하드웨어 device에서 동작 하느냐와 굉장히 밀접하게 관련되어 있다.
  • Mobile에서 동작하기를 원하는 지, Local CPU/GPU server에서 동작하기를 원하는 지, Cloud CPU/GPU server에서 동작하기 원하는 지 등을 고려해야 한다.
  • 장비의 경우, serving 장비 조차 없어 장비 구축과 함께 요규하는 경우도 있는데, 이럴 때 예산/QPS에 맞춰서 장비 사양도 함께 정해주어야 한다.

1-8. AI 모델 개발

6

  • 위와 같은 형태로, AI 모델 개발이 이루어진다.
  • 수업에서 배우는 것 외에 정말 많은 일들이 실제 현업에서는 발생한다.

2. AI 모델 개발 기술팀의 조직 구성

2-1. AI 모델팀

7

  • AI 기술팀에게는 서비스 요구사항이 오고, 이에 맞는 AI 모델을 개발해야한다.
  • AI 모델팀의 인력은 위의 그림과 같이 존재한다.
  • 최종적으로 PyTorch 혹은 Tensorflow 기반으로 만들어진 모델이 출력된다.

AI 모델 개발 인력 (Modeler)

  • AI 모델 구조 제안
  • AI 모델 성능 분석 / 디버깅

학습 데이터셋 구축 담당 (Data Curator)

  • 학숩 데이터 준비 (외주 업체 대응, 작업 가이드 작성, QnA 대응 등)
  • 정량 평가 수립
  • 정성 평가 분석

Tool 개발 (IDE Developer)

  • 데이터 및 모델링 관련 업무 중 발생하는 반복적인 업무들에 대한 효율성 개선을 위한 툴 개발 전담 인력
  • 라벨링 툴 개발
  • 모델 분석 툴 개발
  • 모델 개발 자동화 파이프 라인 개발

Model Quality Manager

  • 이런 모든 과정을 전체적으로 관리
  • AI 모델의 품질을 관리

2-2. AI 모델 서빙팀

  • 흔히, AI 모델에 더불어 Serving 까지 요구될 수 있다.
  • AI 모델팀에게서 출력된 최종 모델을 받아 End Device에 맞춰 serving하도록 작업한다.
  • 대표적으로 Model Engineer가 있고 하는 역할은 아래의 그림과 같다. 8
  • 최종적으로, 실제 서빙을 하기 위하여, End Device에 맞춰 추가적인 작업이 아래의 그림과 같이 진행된다, 9

Note

  • 개발자 to AI 커리어 전환할 경우, 한 번에 넘어갈 필요가 없고, 위의 그림들 처럼 다양한 업무들이 존재하므로 AI에 조금 더 친숙해진 다음 넘어가는 것도 좋다.
  • Modeler : 당연히 전문성은 있어야 한다. 하지만 점점 업무는 자동화되고 있고, 많은 새로운 인력풀이 생성되고 있으므로 경쟁력을 쌓기 위해서는 다양한 개발 능력 혹은 넓은 전문성을 갖추도록 하자.
  • AI 기술 트렌드에 민감해야하는 것은 물론이고, 어떻게 하면 효율적으로 변화에 적을할 지 고민해보도록 하자.

3. 내가 만든 AI 모델은 합법일까, 불법일까

3-1. 저작권법, 왜 알아야 할까?

  • 좋은 AI 모델을 좋은 데이터로 부터 온다.
    • 풀고 싶은 문제를 해결하는 모델을 만들기 위해서는 적절한 데이터가 있어야 한다.
    • 대부분의 경우, 풀고 싶은 문제에 적합한 데이터가 없다.
    • 새롭게 데이터를 제작할 때, 저작권을 고려하지 않으면 합법적으로 사용할 수 없게 된다.
    • 합법적이지 않은 데이터로 학습한 모델 또한 완전한 합버의 영역에 있다고 보기 어렵다.
  • 현재 저작권법이 AI 모델 개발을 고려하지 않은 부분이 많다.

3-2. 저작권법

  • 저작권
    • 사람의 생각이나 감정을 표현한 결과물(저작물)에 대해 창작자에게 주는 권리로 ‘창작성’이 있다면 별도의 등록절차 없이 자연히 발생한다.
  • 저작물
    • 사람의 생각이나 감정을 표현한 결과물
  • 저작권법에 의해 보호받지 못하는 저작물
    • 헌법, 법률, 조약, 명령, 조례 및 규칙
    • 국가 또는 지방자치단체의 고시, 공고, 훈령 그밖에 이와 유사한 것
    • 법원의 판결, 결정, 명령 및 심판이나 행정심판절차 그밖에 이와 유사한 절차에 의한 의결, 결정 등
    • 국가 또는 지방자치단체가 작성한 것으로서 제 1호 내지 제 3호에 규정된 것의 편집물 또는 번역물
    • 사실의 전달에 불과한 시사보도

3-3. 데이터를 합법적으로 사용하는 방법

  • 저작자와의 협의 : 이용 방식에 대한 협의
  • 저작물 이용의 허락, 저작재산권을 양수 받는 것 등의 방법이 있다.
  • 저작재산권 독점적/비독점적 이용허락
    • 독점적 : 계약을 체결한 이용자에게 데이터 이용에 대한 ‘독점적’ 권리를 행사하는 것을 허락한다. (예를 들어, A와 B가 독점적 이용허락계약을 맺었으면 A와 C는 같은 계약을 체결 할 수 없다. 다만, 계약 위반 책임을 진다면 가능은 하다.)
    • 비독점적 : 계약을 체결한 이용자 외의 다른 사람들과의 계약도 체결할 수 있다.
  • 저작재산권 전부/일부 양도
    • 저작재산권은 양도할 수 있는 권리이다.
    • 저작물을 이용하려는 사람은 타인의 저작재산권을 양수받아서 이용할 수 있다.
    • 양수받을 경우, 모든 저작재산권 혹은 일부 저작재산구너을 양수받을 수 있으며, 일정 기간 정하여 양수 받을 수도 있다.

3-4. 라이센스

  • 일일이 계약을 맺고 사용하는 방식은 매우 비효율적이며, 이를 개선하기 위해 등장했다.
  • 저작자가 명시한 특정 조건을 만족하면 이용 가능하도록 만든 저작물에 대한 이용허락 규약
  • 라이센스를 발행하는 단체는 다양하며, 가장 유명한 것은 CCL(Creative Commons), 국내에는 문화체육관광부에서 제공하는 공공누리 등이 있다.

3-5. Creative Commons License(CCL)

종류

10

  • 위의 그림과 같이 존재하며, CC-BY, CC-BY-ND, CC-BY-SA, CC-BY-NC, CC-BY-NC-ND, CC-BY-NC-SA가 있다.
  • BY(Attribution) : 저작자 표시 (적절한 출처와, 해당 라이센스 링크를 표시하고, 변경이 있는 경우 공지)
  • ND(NoDerivatives) : 변경 금지 (저작물을 리믹스, 변형하거나 2차적 저작물을 작성하였을 경우, 그 결과물을 공유할 수 없음)
  • NC(NonCommercial) : 비영리 (영리 목적으로 이용할 수 없으며, 교육, 연구 등의 비영리 목적으로만 사용 가능)
  • SA(ShareAlike) : 동일조건 변경허락 (저작물을 변형하거나 2차적 저작물을 작성하고 그 결과물을 공유할 경우, 원 저작물과 동일한 조건의 CCL을 적용)

3-6. 뉴스 데이터 이용

  • 뉴스 기사의 저작권은 언론사에 있다.
  • 한국언론진흥재단에서 대부분의 언론사의 저작권을 위탁해서 관리한다.
  • 뉴스 기사를 합법적으로 사용하기 위해서는?!
    • 원하는 기사를 제공하는 언론사가 한국언론진흥재단에 저작권 위탁을 맡겼다면 한국언론진흥재단에 문의
    • 아니라면, 직접 언로사에 컨텐츠 사용범위와 계약조건에 대해 문의
    • 아~주 드물게 CCL이 적용된 언론사가 있는데 이 언론사의 뉴스 기사를 사용
  • 구매한 데이터는 마음대로 이용할 수 있나?!
    • 데이터 판매 회원이 정한 약관에 따른다.
    • KDX의 경우, 기본적으로 조항의 공통 이용범위 내에서만 사용가능
    • 판매회원이 추가 조건을 걸었다면, 공통 이용범위 외에 다른 이용은 불가능할 수 있다.
  • 뉴스 기사의 제목은 저작물로서의 가치를 인정받지 못해 저작권법의 보호를 받지 못한다.

3-7. 공정 이용(Fair-use)

  • 아래의 경우에 대하여, 저작권자의 허락을 받지 않고도 저작물을 이용할 수 있다. 11

3-8. 요약

  • 저작권법의 취지는 저작자의 권리와 이에 인접하는 권리를 보호한다.
  • 저작물의 공정한 이용을 도모함으로서 문화 및 관련 산업의 향상, 발전에 이바지함을 목적으로 한다.
  • AI 산업에 대해서는 아직도 회색지대에 놓인 것들이 많다.
  • 저작물의 저작권이 있으면서 라이센스가 부착된 경우, 해당 라이센스의 이용 범위 내에서 이용 가능하다.
    • CCL 라이센스 뿐만 아니라 다른 종류의 라이센스도 많이 존재한다.
  • 저작물의 저작권이 있으면서 라이센스가 없는 경우, 직접 저작권자와 협의한다.

4. 35일차 후기

특강을 통해, AI 전문 지식뿐만 아니라 이를 현업에서 어떻게 사용하고 부가적으로 알아야할 내용들을 배울 수 있었다. 이를 바탕으로 보다 폭넓은 사고를 할 수 있을 것 같다고 느껴졌고, 실제로 현업에 대해 알아보니 어떤 길을 가는 것이 내게 맞을지에 대해서도 한 번 더 생각해보는 시간이 되었다.

아직은 AI 전문성도 많이 부족하기에, 공부하고 프로젝트하기에 급급하지만 보다 더 전문성을 갖추게 된다면 오늘 배운 내용들이 나에게 있어 보다 높은 영향력을 행사할 수 있을 것 같다.




© 2019.04. by theorydb

Powered by jjonhwa