모델 배포

고객에게 작업 설명하기

거짓 음성 비율

  전체 양성 샘플 중 음성 클래스로 잘못 분류된 비율

(부정 거래 를 정상적인 거래로 분류)

거짓 음성 비율이 높으면 부정 거래를 놓칠 가능성이 높아짐.

거짓 양성 비율

전체 음성 샘플 중 양성 클래스로 잘못 분류된 비율

(정상적인 거래를 부정 거래로 분류)

거짓 양성 비율이 높으면 수동 검토 비용이 증가함.

모델 배치하기

  1. 파이썬 환경에서 모델을 학습 시켰지만 실제 사용 환경에서 파이썬을 지원하지 않는 경우가 있음.

  2. 제품 모델(실제 사용)은 훈련이 아니라 예측을 만들기 위해서만 사용됨. (이 단계를 ‘추론’이라고 함)

    따라서 모델의 속도를 높이고 메모리 사용량을 줄일 수 있는 다양한 최적화를 수행할 여지가 있음.

1. REST API로 배포

모델을 제품으로 바꾸는 가장 보편적인 방법이다.

서버나 클라우드 인스턴스에 텐서플로를 설치하고 REST API로 모델의 예측(결과)를 요청한다.

플라스크(Flask) 또는 다른 파이썬 웹 개발 라이브러리를 사용해서 직접 서빙 앱을 만들 수 있다.

텐서플로 자체 라이브러리인 **텐서플로 서빙(TensorFlow Serving)**을 사용할 수 있다.

이런 경우 REST API를 사용한다.

  1. REST API는 인터넷이 안정적으로 가능한 환경
  2. 애플리케이션 응답 속도에 대한 요구 사항이 엄격하지 않는 경우 (응답이 즉각적으로 일어나지 않아도 되는 경우)
  3. Input 데이터가 크게 민감하지 않는 경우

예) 이미지 검색 엔진, 음악 추천 시스템, 신용 카드 부정 거래 감지 등

고려할 점

  1. 직접 서비스 구성
  2. 관리형 서드파티 클라우드 서비스 사용- 구글의 Cloud AI Platform

2. 장치에 모델 삽입

모델을 직접 장치에 삽입하여 인터넷이 없는 환경에서도 사용.

케라스 모델울 스마트폰이나 임베디드 장치에 배포하기 위해서 텐서플로 라이트를 사용한다.

이런 경우 장치에 모델 삽입하는 방식을 사용한다.

  1. 모델의 응답 속도에 대한 제약이 엄격하거나 인터넷 연결이 불안정한 환경에서 실행되는 경우
  2. 장치의 메모리와 전력 조건에서 실행될 수 있도록 모델을 충분히 작게 만들 수 있는 경우
  3. 가장 높은 정확도를 달성하는 것이 크게 중요하지 않는 경우 (실행 효율성과 정확도 사이를 절충가능)
  4. Input 데이터에 매우 민감한 정보가 포함되는 경우

3. 브라우저에 모델 배포

자바스크립트 웹 브라우저 환경에서 사용.

자바스크립트 딥러닝 라이브러리인 TensorFlow.js를 사용한다.

이런 경우 브라우저에 모델 배포하는 방식을 사용한다.

  1. 사용자 측에서 계산을 수행하면 서버 비용을 크게 줄일 수 있는 경우
  2. 입력 데이터가 사용자의 컴퓨터 또는 핸드폰에 있는 경우
  3. 애플리케이션 응답 속도 제약이 엄격한 경우
  4. 모델을 내려받아 저장한 후 인터넷이 연결되지 않은 상태에서 작동해야하는 경우

모델 최적화

널리 사용되는 모델 최적화 기법

  1. 가중치 가지치기

    중요하지 않거나 기여도가 낮은 가중치를 제거하여 모델을 압축하는 방법

    이를 통해 성능에 약간의 손해를 보는 대신 모델이 사용하는 메모리와 계산 자원을 줄인다.

  2. 가중치 양자화

    가중치 양자화는 신경망 모델의 가중치 값을 낮은 비트수의 정수로 표현하여 모델을 압축하는 방법입니다. 예를 들어, 32비트 부동소수점(float) 값을 8비트 정수(int)로 변환합니다.

모델 모니터링

모델 배포 후 계속 모니터링을 해야한다.

모델 유지 관리

시간이 지남에 따라 제품 환경의 데이터 속성이 변하고 점진적으로 모델의 성능과 타당성이 감소한다.(개념 이동)

그러므로 다음 세대 모델의 훈련을 준비해야 한다.

예상문제

  1. REST API로 배포할 수 있는 경우
  2. 장치 안에 모델을 내장하여 배포할 수 있는 경우