brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 14. 2022

6탄-1. 이제, 모델 서빙 패턴의 전문가가 되어보세요

<1> 고객의 요구사항

<2> 추론 4가지

<3> 실시간으로 반응하는 리얼타임  추론 모델

<4> 배치 추론

<5> 비동기 추론 - 2021년 출시

<6> 서버리스 추론 - 2021년 출시

<7> 모델 버전 관리, 무중단 배포, AB테스트, 오토 스케일링

<8> 운영 팁

<9> 개인 정리



<1> 고객의 요구사항


1

CTO?

100개 모델을 사용하려면 서버 비용이 많이 나오지 않나요?


2

데이터 과학자?

파일 토치, 텐서 플로 훈련 모델 여러 개를 배포해야 합니다. 리소스 관리는?

텐서 플로 1.15 , 2.5 버전 등 다 사용해야 합니다.?


3

MLOPS  엔지니어?

빠른 레이턴시와 비용이 10만 원 이하 나와야 합니다. 어떻게 하나요?

poc 200ms  ,  서비스는  100ms 나와야 합니다.

무중단 배포,  CI/CD 방안?




<2> 추론 4가지


1

실시간으로 반응하는 리얼타임 추론


2

주기별 예측에 적합한 배치 추론


3

큰  PAYLOAD사이즈에 적합한 비동기 추론

대용량 1기가  지원


4

PAY-PER-USE에 접한 한 서버리스 추론

람다 서비라스 추론

세이즈 메이커 서버리스 추론



<3> 실시간으로 반응하는 리얼타임  추론 모델


엔드포인트 생성 3단계

모델 생성 - 세이즈 메이커 모델 생성

엔드포인트 구성, 엔드포인트 컨피그 생성

엔드포인트 생성



1

단일 모델?

모든 데이터 웹서버에 저장

최대 6메가 페이로드에 대해 즉각 응답

최대 60초 타임아웃

오토 스케일링

대용량 모델은 불가

리얼타임 단일 모델은  60초 타임아웃이 있다.

이 부분도 설정으로 해결 가능하다.


2

멀티 모델 엔드포인트?

단일 컨테이너에서 여러 모델 호스팅

S3에서 동적 모델 로딩

콜드 스타드

초당 트랜잭션 이나 레이턴시 요구사항이 높다면 단일 인스턴스 호스팅을 추천한다.

자주 사용하지 않는 모델을 호출할 때 발생하는 콜드 스타트 문제를 허용할 수 있는 범위에서 가능한 서비스이다.


3

멀티 컨테이너 엔드포인트 서빙 패턴?

콜드 스타트 문제를 해결해준다.

콜드 스타트 없음

한 인스턴스 내에 최대 15개의 컨테이너를 내장 가능하다.

멀티 컨테이너는 독립된 컨테이너를 사용 가능하다.

GPU 지원하지 않으므로 응답속도 등 확인하고 사용하세요.




<4> 배치 추론


1

추천, 마케팅, 포케 스팅에서 주기적으로 대량의 데이터에 대한 배치 예측을 스케줄링

결과를 별도의 스토리지나 데이터 베이스에 저장한다.

추론할 때 인스턴스가 활성화되고 , 완료되면 컴퓨팅 인스턴스가 종료된다.

필요한 순간에만 띠운다.

비용이 효율적이다.


2

단점,  컴퓨팅 인스턴스를 프로비저닝 하는 고정적인 몇 분의 지연시간이 있다.

그래서, 동영상이나 텍스트북 같은 경우는 적합하지 않다.




<5> 비동기 추론 - 2021년 출시


1

동영상이나 텍스트북 같은 경우는 사용 가능하다.

클라이언트와 추론 엔드포인트 사이에 관리형 큐가 들어가는 구성이다.


2

일정 시간 내 트래픽이 없다면 인스턴스가 0으로 축소된다. 비용이 발생되지 않는다.




<6> 서버리스 추론 - 2021년 출시


2가지가 있다.


1

람다 서비리스 추론?

최대 10기가의 패키징 가능

도커 컨테이너 작성, 람다 함수 디버깅, IAM권한 등 작업을 해주어야 한다.



2

세이즈 메이커 서버리스 추론?

따로 작업이 필요 없다.

프로적션을 처음 론칭하거나 간헐적으로 사용하는 경우 좋다.

배달 앱의 경우   사용이 적은 늦은 밤이나 새벽에 동작하면 좋다.



<7>  모델 버전 관리, 무중단 배포, AB테스트, 오토 스케일링


블루. 그린 배포 패턴 가능하다. = 배포 가드레일로 가능하다.

신규 기능인 배포 가드레일




<8> 운영 팁


1

트래픽이 많지 않을 경우는 서버리스 , 비동기 추론으로 시작- 비용의 적게 쓰세요.

엔드포인트를 여러 개 띄울 필요가 없습니다.


2

로컬 개발환경에서 충분히 디버깅하세요.

로컬 모드로 먼저 서빙 인프라를 구축하세요.


3

레이턴시 개선

세이즈 메이거 네오 (Neo) 나 Inferentia를 검토하는 것도 도움이 된다.

추론 전용칩인  Inferentia 사용해도 좋습니다

Inferentia 추가 정보  https://brunch.co.kr/@topasvga/2560




<9> 개인 정리


추론 4가지 방식의 특징을 알고 사용하자.


실시간으로 반응하는 리얼타임  추론 모델

배치 추론

비동기 추론 - 2021년 출시

서버리스 추론 - 2021년 출시





https://brunch.co.kr/@topasvga/2439



감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari