DevCourse 4주차 Day2 - AWS를 활용한 인공지능 모델 배포 요약(실습 외)
Cloud란?
Before Cloud
클라우드 전에는, 인터넷 환경에서 서비스를 제공하기 위해 서비스 호스팅에 필요한 것을 구축해야 했다.
(Ex - 데이터 센터, 서버/저장소, 보안, 관리인력.. 서버를 보관해둘 장소의 관리(전기, 온도 등등))
이것이 매우 어렵기에, IDC 등장. (Internet Data Center) 그러나 서버 임대는 계약을 통해 일정 기간 임대를 하는 방법으로, 유연성이 부족.
인터넷 사용자의 증가, 사용자의 Needs 충족을 위해 필요할 때에 필요한 만큼 서버를 증설/관리가 필요하게 된다.
Cloud Computing
언제, 어디서나 필요한만큼의 컴퓨팅 자원을 필요한 시간만큼 인터넷을 통하여 활용할 수 있는 컴퓨팅 방식이다.
( 자원의 예시 : 컴퓨팅 파워, DB 저장 공간 등등)
Cloud Computing의 장점
- 사용자의 변화에 신속하고 유연하게 대처 가능
- 접근성 향상(인터넷만 있으면, 어떤 디바이스로도 접근 가능)
- 특히, 인공지능 서비스 제공시에는 가상화 기술을 통해 GPU 활용, 소프트웨어 배포 등의 작업에 비용,시간 절감
환경의 종류
- Public : 클라우드 컴퓨팅 사업자가 IT자원을 소유하고 인터넷을 통해 제공하는 방식
- Private : 고객이 자체 데이터센터에서 직접 클라우드 서비스를 구축
- Hybrid : 핵심 시스템은 내부에 두면서 외부의 cloud 활용 (기술은 cloud, 유지 인프라는 private)
서비스 제공 모델
(최근에는, SaaS 형태로 제공된다고 한다)
AWS의 실습 환경 세팅
- EC2 생성 (Deeplearning)
- 외부 제공시, 퍼블릭 IP를 고정하기 위해 탄력적 IP 설정이 필요, 그 후 탄력적 IP를 기 생성한 인스턴스의 IP에 연결.
- 그 후, 인스턴스 연결 초기화 필요
API to Serve ML Model
Architecture of API to serve ML model
API란?
노드와 노드간, 데이터를 주고받기 위한 인터페이스로 사전에 정해진 정의에 따라 입력이 들어왔을 때, 적절한 출력을 전달해야 한다.
특히 RESTful API를 많이 사용하게 된다. (자원을 명시, 필요한 연산을 요청/반환)
ML/DL에서는, 필요한 데이터나 정의 값을 담아 요청, 모델이 추론한 결과를 json 형태로 반환하도록 설계한다.
Practical Process of ML
큰 흐름은, 문제의 정의 -> 데이터 준비 -> 모델 설계 및 훈련 -> 모델의 검증 -> 모델의 적용/배포 순서로 진행한다.
Trained Model File -> Run/Predict 과정이 모델 배포에 해당하는 내용이다.
Seralization and De-Seralization
Seralization을 통해 ML/DL model object를 disk에 write하여 전송하고 불러올 수 있는 형태로 변환
De-Seralization을 통해 Python 혹은 다른 환경에서 model을 불러와 추론/학습에 사용
즉 Disk -> memory가 De-Seralization, memory -> disk가 Seralization 과정에 해당된다.
'Archive > TIL' 카테고리의 다른 글
[TIL] 0528 TIL (0) | 2021.05.28 |
---|---|
[DevCourse] 0514 TIL (0) | 2021.05.14 |
[DevCourse] 0507 시계열 데이터 다루기 (0) | 2021.05.07 |
[DevCourse] 0506 TIL (0) | 2021.05.06 |
[DevCourse] (05/05) Interenet, Web, REST API (0) | 2021.05.05 |