1.1 머신러닝, ML옵스 및 시스템
머신러닝에 필요한 시스템 컴포넌트
머신러닝 시스템 워크플로
머신러닝에 초첨을 맞췄을 때는 학습 페이즈와 추론 페이즈로 나눌 수 있음
학습 페이즈와 추론 페이즈
학습 페이즈 :
- 데이터 수집
- 데이터 정제(클렌징)
- 모델 학습
- 실험 및 검증
- 목적에 맞는 알고리즘 선택
- 파라미터 튜닝
- 모델 평가
추론 페이즈(소프트웨어 엔지니어링 요소)
- 인프라 구축
- 외부 시스템과의 네트워크 설계
- 보안
- 입출력 인터페이스 정의
- 코딩
- 각종 테스트 로그 수집
- 감시 통보의 설정
- 운용체제
머신러닝 모델은 실제로 활용되어야 가치가 생김.
1.2 사용자 중심의 머신러닝
1.3 머신러닝 시스템에 필요한 요소
머신러닝이 운용되는 시스템 워크플로
배포~활용 단계에서 필요한 요소
인프라, 외부 시스템 연계(네트워크, 인증 시스템, 입출력 인터페이스 등), 로그 수집, 감시 통보, 스토리지 등.
ex) 로그를 저장하는 db를 준비하고, 해당 로그에서 이상이 발생할 경우 경보를 띄우는 감시 시스템 개발이 필요
머신러닝을 활용하고 꾸준히 가치를 판단하고 향상시키는 생산적인 구조를 만들기 위해서는 프로세스의 자동화 및 운용을 담당하는 팀의 체제가 필요 (한명의 엔지니어가 실현하는 것은 불가능에 가까움)
머신러닝 시스템에 필요한 요소
데이터 관련 요소
추론 결과의 품질은 데이터의 품질에 좌우 -> 데이터 정의 및 수집하는 파이프라인 필요
수집된 데이터는 DWH나 스토리지에 저장되어 BI로 평가할 수 있음
재현성
머신러닝 시스템에서는 재현성이 보장되어야함
재현성 : 자신 이외의 사람이 똑같은 데이터와 학습 코드, 학습 알고리즘과 파라미터, 똑같은 버전의 라이브러리로 학습을 실행해서 자신과 큰 차이가 없는 모델을 만들 수 있는지 여부
재현성이 보장되어야 하는 이유
모델을 학습한 머신러닝 엔지니어가 항상 같은 프로젝트에 참여 인력으로 남지 않을 것이고, 같은 모델을 계속 사용한다는 보장도 없기 때문에. 재현성이 보장되지 않으면 트러블 슈팅을 하거나 추론기를 개선하기 어려움.
재현성을 보장하기 위해 필요한 점
- 코드 리포지토리 형상관리
- 데이터베이스
- 학습 시의 데이터/코드/알고리즘/파라미터/라이브러리 등의 기록
- 모델 관리 시스템에 모델 저장
- 데이터는 레포에 등록하기 크기 때문에 다른 스토리지 등에 기록
추론기
컨테이너로 빌드
에지 AI로 스마트폰에서 추론하려면 모델을 에지 추론용으로 컴파일할 필요가 있음
추론기에는 데이터 전처리, 후처리, 인터페이스를 포함한 모델을 움직이기 위한 구조로 볼 수 있음
추론기 배포
처음부터 모든 요청을 배포된 추론기에 보내는 것은 피해야함 -> 새 추론에 트래픽을 1% 정도 개방 후 서서히 요청의 비중을 올려야함
문제 시 롤백
일주일 경과 관찰 후 100% 릴리즈
A/B테스트 필요
1.4 머신러닝 시스템 패턴화하기
학습, 릴리즈, 추론, 품질관리로 나누어 패턴화 할 수 있음
'스터디' 카테고리의 다른 글
머신러닝 시스템 디자인 패턴 - 04. 추론 시스템 만들기 (0) | 2022.07.21 |
---|---|
머신러닝 시스템 디자인 패턴 - 03. 모델 릴리스하기 (0) | 2022.07.21 |
머신러닝 시스템 디자인 패턴 - 02. 모델 만들기 (0) | 2022.07.20 |