AWS 기반 AI 애플리케이션 개발 [AI 유니콘 기업으로 도약하기]
- 원서명Hands-On Artificial Intelligence on Amazon Web Services: Decrease the time to market for AI and ML applications with the power of AWS (ISBN 9781789534146)
- 지은이수브하시니 트리푸라네니(Subhashini Tripuraneni), 찰스 송(Charles Song)
- 옮긴이노설빈, 허준호
- ISBN : 9791161755199
- 35,000원
- 2021년 05월 31일 펴냄
- 페이퍼백 | 492쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
책 소개
소스 파일은 아래 깃허브 페이지에서 다운로드하실 수 있습니다.
(https://github.com/AcornPublishing/ai-aws)
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
전반적으로 유지보수가 쉬운 AI 애플리케이션을 개발, 배포, 운영하는 방법에 대해 설명하고, 다양한 AWS AI/ML 서비스를 활용해서 효과적으로 AI 애플리케이션을 개발하는 방법을 실습 중심으로 제시한다. AI 애플리케이션을 개발하는 방법은 크게 두 부분으로 나눠 설명한다. 여러 AWS AI 서비스가 제공하는 기능을 바로 이용해서 AI 애플리케이션을 개발하는 방법을 실습과 함께 설명한 뒤에 AWS 세이지메이커 및 여러 AWS 인프라 서비스로 직접 AI 기능을 훈련하고 구축해서 AI 애플리케이션에 적용하는 방법을 실습을 통해 제공한다.
이 책에서 다루는 내용
■ 다양한 머신러닝 및 심층학습 모형에 대한 유용한 인사이트
■ 제품 수준의 강력한 심층학습 시스템 구축과 배포
■ 다양한 인프라 사양으로 머신러닝 및 심층학습 모형 훈련
■ 기반 인프라 관리 없이 손쉽게 AI 애플리케이션 확장
■ AI 훈련 실험을 효율적으로 모니터링하고 관리
■ 사전 훈련한 AI 서비스를 활용해 AI 애플리케이션 구축
이 책의 대상 독자
우수한 AI 솔루션 개발에 필요한 AWS 서비스를 활용하고자 하는 데이터 과학자, AI/머신러닝 개발자 및 연구자 그리고 AI에 열의를 가진 모두에게 적합하다. 따라서 머신러닝 개념을 기본적으로 이해하고 있어야 한다.
이 책의 구성
1장, ‘AWS의 인공지능 서비스 소개’에서는 머신러닝 및 심층학습을 포함하는 포괄적 용어인 AI를 소개한다. 이미지 인식, 자연어 처리(NLP, Natural Language Processing), 음성 인식 등 AI에서 가장 인기 있는 주제 몇 가지를 다루며 AWS의 AI 및 머신러닝 서비스와 플랫폼 전체를 소개한다. AWS는 즉시 사용 가능한 AI/머신러닝 기능을 제공하는 관리형 서비스뿐만 아니라 맞춤형 머신러닝 모형을 자체적으로 훈련할 수 있게 도와주는 관리형 인프라도 제공한다. 따라서 언제 관리형 서비스를 활용해야 하는지와 언제 맞춤형 머신러닝 모형을 직접 훈련해야 하는지를 안내한다. 또한 개발 환경을 설치해서 설정하는 방법을 배운다. 책 전반의 실습 프로젝트에 필요한 파이썬(Python)과 AWS SDK, 웹 개발 도구를 설치하는 과정을 먼저 설명하고, 프로그래밍 방식으로 AWS 플랫폼과 상호작용하는 예제 코드를 이용해 해당 환경 설정을 확인할 수 있도록 안내한다.
2장, ‘최신 AI 애플리케이션의 구조’에서는 최신 AI 애플리케이션의 아키텍처와 컴포넌트에 초점을 맞춰 설명한다. 애플리케이션을 잘 설계하는 전형적인 패턴과 개념의 설명부터 시작하는데 이러한 패턴과 개념은 제품 수준의 인공지능 솔루션을 설계하는 데 도움이 된다. 게다가 해당 솔루션을 신속히 프로토타이핑하고 실험해 보는 등 애플리케이션 생명주기에 걸쳐 유연하고 확장 가능하며 유지 관리가 가능한 솔루션을 개발하는 데도 도움이 된다. 또한 이후의 장에 나오는 실습 대상의 아키텍처 골격을 구축해 본다.
3장, ‘아마존 레코그니션 및 트랜스레이트를 활용한 텍스트 탐지와 번역’에서는 사진에 나타나는 외국어 텍스트를 모국어로 번역할 수 있는, 이 책의 첫 번째 AI 애플리케이션 구축 방법을 설명한다. 여기서 아마존 레코그니션과 아마존 트랜스레이트를 활용해 실습해 본다. 먼저 AWS의 AI 및 머신러닝 기능으로 재사용 가능한 프레임워크를 구축한 다음 해당 프레임워크를 기반으로 애플리케이션을 구축한다. 기능과 애플리케이션 로직을 분리해서 유연성과 재 사용성을 향상하는 방법을 보여주는데 유용성과 재사용성에 대한 개념은 이후의 장에서 실습 프로젝트를 계속하다 보면 더 명확해질 것이다.
4장, ‘아마존 트랜스크라이브 및 폴리를 활용한 음성-텍스트 변환과 텍스트-음성 변환’에서는 한 언어로 된 음성 대화를 다른 언어로 번역할 수 있는 애플리케이션의 구축 방법을 설명한다. 여기서 아마존 트랜스크라이브와 아마존 폴리를 활용해 실습해 본다. 재사용 가능한 AI 기능의 프레임워크를 계속해서 구축할 뿐만 아니라 3장에서 구축한 프레임워크의 번역 기능도 재사용할 수 있다. 이러한 재사용성 패턴으로 솔루션 실험 횟수를 늘리고 출시 속도를 높일 수 있다. 따라서 잘 설계한 제품 수준의 AI 솔루션에 대한 개념과 장점을 더욱 명확히 파악할 수 있다.
5장, ‘아마존 컴프리헨드를 활용한 텍스트 내 정보 추출’에서는 명함 사진에서 정보를 추출해서 정리할 수 있는 애플리케이션의 구축 방법을 설명한다. 아마존 컴프리헨드를 사용해 보고 4장에서 나온 텍스트 탐지 기능을 재사용한다. 이 외에도 사람이 개입하는 방식(human-in-theloop)이라는 개념을 소개한다. 즉, 사람이 개입(아마존 컴프리헨드에서 추출한 정보를 확인하고 수정)하는 방식의 그래픽 사용자 인터페이스를 구축해 본다.
6장, ‘아마존 렉스를 활용한 음성 챗봇 구축’에서는 5장의 실습 프로젝트를 통해 추출해서 저장한 명함 연락처 정보를 조회하는 기능이 있는 음성 챗봇을 구축해 본다. 아마존 렉스로 챗봇을 구축해 보고, 해당 인터페이스를 애플리케이션에 통합해 일종의 인공지능 비서를 완성해 본다.
7장, ‘아마존 세이지메이커로 작업하는 방법’에서는 아마존 세이지메이커의 주요 기능을 경험해본다. 해당 주요 기능으로는 빅데이터 처리, 기본 제공하는 모형(Object2Vec)의 훈련 및 배포, 최고 성능의 모형 식별 그리고 자체 모형과 컨테이너를 세이지메이커 에코시스템으로 가져오는 방법 등이 있다. 도서 평점 데이터셋을 활용해서 각각의 요소 기능을 설명한다. 첫째, 사용자가 한 도서(즉, 사용자가 평가한 적이 없는 도서)에 매길 평점을 예측한다. 둘째, 세이지메이커의 HPO 기능으로 초매개변수를 자동으로 최적화하면서 세이지메이커의 검색 서비스로 최고 성능의 모형과 당시 사용한 훈련 및 테스트셋을 찾는다. 셋째, 세이지메이커에서 동일한 모형을 재구축할 필요 없이 자체 모형과 컨테이너를 세이지메이커로 원활히 가져오는 방법을 설명한다. 7장을 읽고 나면, 아마존 세이지메이커의 주요기능의 활용법을 알 수 있다.
8장, ‘머신러닝 추론 파이프라인 생성’에서는 세이지메이커와 다른 AWS 서비스로 머신러닝 추론 파이프라인을 만드는 방법을 보여주는데 해당 파이프라인은 데이터를 처리하고 알고리즘을 훈련하고 학습한 모형을 배포하며 추론을 실행할 수 있다. 아울러 이러한 모형 훈련 및 추론 과정의 데이터 처리 시에 동일한 로직을 사용한다.
9장, ‘텍스트 집합에서 주제의 발견’에서는 새로운 주제를 소개한다. 이전의 NLP 관련 장에서는 아마존에서 제공하는 몇 가지 NLP 서비스를 사용하는 방법을 설명했다. 하지만 9장에서는 아마존 세이지메이커에 있는 알고리즘을 사용해서 해당 모형의 훈련 및 배포를 세밀하게 제어하고 확장성 있는 모형을 구축한다.
10장, ‘아마존 세이지메이커를 활용한 이미지 분류’는 아마존 레코그니션에서 배운 내용과 관련이 있다. 다만 여기서는 AWS가 보유한 이미지로 사전 훈련한 분류 모형을 레코그니션 API로 단순 이용하는 방법을 넘어서 사용자가 보유한 이미지로 분류 모형을 훈련하는 방법을 배운다. 특히 이미지 데이터셋에 레이블을 매기고 세이지메이커의 이미지 분류 알고리즘으로 맞춤형 이미지 탐지 모형을 구축하는 데 중점을 둔다. 이미지넷(ImageNet)으로 사전 훈련한 심층 잔차 학습 모형인 ResNet50으로 전이학습을 하는 방법을 배운다. 여기서 이미지넷은 명사로 지칭할 수 있는 이미지들을 모아둔 데이터베이스로, 스탠퍼드대학교 및 프린스턴대학교의 지원을 받는다.
11장, ‘심층학습 및 자기회귀를 활용한 매출 예측’에서는 심층학습 기반의 자기회귀(DeepAR) 알고리즘을 판매 예측에 이용하는 방법을 설명한다. 특히 순환 신경망(RNN, Recurrent Neural Network)의 일종인 장단기 메모리(LSTM)를 완전히 파악할 수 있다. RNN은 루프가 있는 신경망으로 정보를 유지하고 연결해서 이전 정보를 현재 처리에 넘긴다. 자기회귀는 이전 시간 스텝에 나타난 관측 값을 회귀 방정식의 입력으로 사용해서 다음 시간 스텝에 나타날 값을 예측한다. 11장을 통해 아마존 세이지메이커로 강력한 판매 예측 모형을 구축하게 된다.
12장, ‘모형 정확도 저하 및 피드백 루프에서는 모형을 출시한 후에 성능이 저하되는 이유를 설명한다. 이때 모바일 앱의 광고 클릭 전환을 예측하는 방법을 논의하면서 그 이유를 설명한다. 새로운 데이터를 얻을수록 최적의 성능을 가진 모형을 재훈련하고 조정하는 것이 중요하다.
13장, ’다음으로 무엇이 필요한가?에서는 지금까지 살펴본 개념을 요약한다. 또한 이전 장에서 다루지 않은 AWS AI 프레임워크 및 인프라를 간략하게 설명한다.
목차
목차
- 1부. 소개 및 최신 AI 애플리케이션의 구조
- 1장. AWS의 인공지능 서비스 소개
- 기술 요건
- AI 소개
- AI 응용 분야
- 자율 주행차
- 의료 AI
- 맞춤형 예측 키보드
- AI 솔루션 개발 시 AWS의 필요성
- AI 응용 분야
- AI 관련 AWS 서비스의 개요
- AWS 서비스 사용 실습
- AWS 계정 생성하기
- AWS 관리 콘솔 살펴보기
- AWS 서비스 찾기
- AWS 리전 선택하기
- 아마존 레코그니션 서비스 사용해 보기
- S3 이용하기
- 신원 및 접근 권한 관리
- AWS 서비스 사용 실습
- AWS CLI 사용하기
- 파이썬 설치하기
- macOS에 파이썬 설치하기
- 리눅스에 파이썬 설치하기
- 마이크로소프트 윈도에 파이썬 설치하기
- AWS CLI 설치하기
- AWS CLI 설정하기
- AWS CLI로 레코그니션 서비스 호출하기
- 파이썬 설치하기
- AI 애플리케이션에 파이썬 사용하기
- 파이썬 개발 환경 구축하기
- pipenv로 파이썬 가상 환경 구축하기
- 첫 번째 파이썬 가상 환경 구축하기
- 파이썬 개발 환경 구축하기
- AWS SDK로 첫 번째 프로젝트 개발하기
- 요약
- 참고자료
- 2장. 최신 AI 애플리케이션의 구조
- 기술 요건
- AI 애플리케이션의 성공 요인
- AI 애플리케이션의 아키텍처 설계 원칙
- 최신 AI 애플리케이션의 아키텍처 이해
- 맞춤형 AI 기능 개발
- AI 애플리케이션 아키텍처에 따른 실습 준비
- 객체 탐지기 아키텍처
- 객체 탐지기 컴포넌트 간의 상호작용
- 기본 프로젝트 구조 생성하기
- AWS 챌리스를 이용해 로컬에서 AI 애플리케이션 개발하기
- 웹 UI 기반의 데모 애플리케이션 개발
- 챌리스로 AI 애플리케이션 후단부를 AWS에 배포하기
- AWS S3로 정적 웹 사이트 배포하기
- 요약
- 더 읽을거리
- 2부. AWS AI 서비스를 활용한 애플리케이션 구축
- 3장. 아마존 레코그니션 및 트랜스레이트를 활용한 텍스트 탐지와 번역
- 좁은 세상 만들기
- 사진 번역기의 아키텍처 이해
- 사진 번역기 컴포넌트 간의 상호작용
- 프로젝트 구조 구축하기
- 서비스 구현
- 인식 서비스 - 텍스트 탐지
- 번역 서비스 - 텍스트 번역하기
- 스토리지 서비스 - 파일 업로드
- 단위 테스트에 대한 권장 사항
- RESTful 엔드포인트의 구현
- 이미지 속 텍스트 번역 엔드포인트
- 이미지 업로드 엔드포인트
- 웹 사용자 인터페이스 구현
- index.html
- scripts.js
- 사진 번역기의 AWS 배포
- 프로젝트 개선 아이디어 논의
- 요약
- 더 읽을거리
- 4장. 아마존 트랜스크라이브 및 폴리를 활용한 음성-텍스트 변환과 텍스트-음성 변환
- 기술 요건
- 공상 과학 영화 속의 기술
- 만능 통역기의 아키텍처 이해
- 만능 통역기 컴포넌트 간의 상호작용
- 프로젝트 구조 구축하기
- 서비스 구현
- 음성 표기 서비스 - 음성-텍스트 변환
- 번역 서비스 - 문서 번역
- 음성 서비스 - 텍스트-음성 변환
- 스토리지 서비스 - 파일 업로드 및 검색
- RESTful 엔드포인트 구현
- 녹음 번역 엔드포인트
- 음성 합성 엔드포인트
- 녹음 업로드 엔드포인트
- 웹 사용자 인터페이스 구현
- index.html
- scripts.js
- 만능 통역기의 AWS 배포
- 프로젝트 개선 아이디어 논의
- 요약
- 참고자료
- 5장. 아마존 컴프리헨드를 활용한 텍스트 내 정보 추출
- 기술 요건
- 인공지능과 협업하기
- 연락처 관리기 아키텍처 이해
- 연락처 관리기 컴포넌트 간의 상호작용
- 프로젝트 구조 구축하기
- 서비스 구현
- 인식 서비스 - 텍스트 탐지
- 추출 서비스 - 연락처 정보 추출
- 연락처 저장소 - 연락처 저장 및 조회
- 스토리지 서비스 - 파일 업로드 및 조회
- RESTful 엔드포인트 구현
- 정보 추출 엔드포인트
- 연락처 저장 및 모든 연락처 조회 엔드포인트
- 업로드 이미지 엔드포인트
- 웹 사용자 인터페이스 구현
- Index.html
- scripts.js
- 연락처 관리기의 AWS 배포
- 프로젝트 개선 아이디어 논의
- 요약
- 더 읽을거리
- 6장. 아마존 렉스를 활용한 음성 챗봇 구축
- 친화적인 사람 대 컴퓨터 인터페이스의 이해
- 연락처 도우미 아키텍처
- 아마존 렉스 개발 패러다임의 이해
- 연락처 도우미 봇 설정
- LookupPhoneNumberByName 의도
- LookupPhoneNumberByName 에 대한 샘플 발언과 슬롯
- LookupPhoneNumberByName에 대한 확인 프롬프트와 응답
- AWS 람다를 사용한 LookupPhoneNumberByName의 이행
- LookupPhoneNumberByName에 대한 다이나모DB IAM 역할
- LookupPhoneNumberByName에 대한 이행 람다 함수
- 아마존 렉스 도우미 함수
- LookupPhoneNumberByName 의도 이행
- LookupPhoneNumberByName에 대한 시험 대화
- MakePhoneCallByName 의도
- MakePhoneCallByName 에 대한 샘플 발언과 람다 초기화 및 검증
- MakePhoneCallByName에 대한 슬롯과 확인 프롬프트
- MakePhoneCallByName에 대한 이행과 응답
- MakePhoneCallByName에 대한 시험 대화
- 연락처 도우미 봇 배포
- 연락처 도우미를 애플리케이션에 통합
- 인공지능 비서 서비스 구현
- 연락처 도우미 RESTful 엔드포인트
- 요약
- 더 읽을거리
- 3부. 아마존 세이지메이커를 활용한 머신러닝 모형 훈련
- 7장. 아마존 세이지메이커로 작업하는 방법
- 기술 요건
- 스파크 EMR을 활용한 빅데이터 전처리
- 아마존 세이지메이커에서 훈련 수행
- Object2Vec의 작동 원리
- Object2Vec 알고리즘의 훈련
- 훈련한 Object2Vec의 배포 및 추론 수행
- 초매개변수 최적화(HPO) 수행
- 세이지메이커의 실험 관리 서비스
- 세이지메이커로 엠엑스넷 및 글루온 기반의 자체 모형 가져 오기
- R 모형의 자체 컨테이너 가져오기
- 요약
- 더 읽을거리
- 8장. 머신러닝 추론 파이프라인 생성
- 기술 요건
- 세이지메이커의 추론 파이프라인 아키텍처 이해
- 아마존 글루와 스파크ML로 기능을 생성하는 방법
- 사전 요건 준비
- 파이스파크로 데이터 전처리
- AWS 글루 작업 생성
- 세이지메이커에서 NTM 훈련으로 주제 식별
- 세이지메이커에서 온라인 및 일괄처리 추론의 비교
- 추론 파이프라인으로 실시간 예측 생성
- 추론 파이프라인으로 일괄처리 예측 생성
- 요약
- 더 읽을거리
- 9장. 텍스트 집합에서 주제의 발견
- 기술 요건
- 주제 모델링 기법들
- 신경 주제 모형의 작동 방식 이해
- 세이지메이커에서 NTM 훈련
- 훈련한 NTM 모형의 배포 및 추론 수행
- 요약
- 더 읽을거리
- 10장. 아마존 세이지메이커를 활용한 이미지 분류
- 기술 요건
- 합성곱 신경망 및 잔차 신경망 살펴보기
- 아마존 세이지메이커에서 전이학습으로 이미지 분류
- 이미지 분류에 필요한 입력 데이터 생성
- 이미지 분류에 사용할 초매개변수의 정의
- 배치 변환으로 추론 수행
- 요약
- 더 읽을거리
- 11장. 심층학습 및 자기회귀를 활용한 매출 예측
- 기술 요건
- 전통적인 시계열 예측 기법의 이해
- ARIMA
- 지수 평활
- DeepAR 모형이 작동하는 방식
- 모형 아키텍처
- 망 가중치의 최적화
- DeepAR 기반 매출 예측 모형의 이해
- 데이터셋에 대한 간결한 설명
- 예비 데이터 분석
- 데이터 전처리
- DeepAR의 훈련
- 매출 예측 및 평가
- 요약
- 더 읽을거리
- 4부. 머신러닝 모형 모니터링 및 관리 방법
- 12장. 모형 정확도 저하 및 피드백 루프
- 기술 요건
- 성능 저하가 발생한 모형의 모니터링
- 새로 추가되는 훈련 데이터 관련 사용 케이스(광고 클릭 전환) 개발
- 머신러닝 피드백 루프 생성
- 데이터 탐색
- 특징 생성
- 아마존 세이지메이커 XGBoost 알고리즘으로 광고 클릭 데이터 분류
- 모형 성능 평가
- 요약
- 더 읽을거리
- 13장. 다음으로 무엇이 필요한가?
- 1부에서 배운 개념 요약
- 2부에서 배운 개념 요약
- 3부에서 배운 개념 요약
- 4부에서 배운 개념 요약
- 다음으로 무엇이 필요한가?
- 현실 세계에서 인공지능
- AWS 딥렌즈
- AWS 딥레이서
- 사물 인터넷 및 AWS IoT 그린그래스
- 자신의 분야에서 인공지능
- 현실 세계에서 인공지능
- 요약
도서 오류 신고
정오표
정오표
[p.127 : 아래서 6행]
https://www.freeimages.com/photo/german-oneway-street-sign-3-1446112
->
https://www.freeimages.com/photo/german-one-way-street-sign-3-1446112