Description
단계별로 배우는 효율적인 AI 시스템 구축법
빠르게 발전하는 AI 기술의 중심에는 마이크로소프트 Azure OpenAI가 있다. 이 책은 실무에서 바로 활용할 수 있도록 생성형 AI와 ChatGPT 모델의 도입부터 최적화까지 단계별로 안내하는 실전 가이드다. 애저에서 ChatGPT 기반 RAG를 활용한 사내 문서 검색 시스템과 LLM을 탑재한 코파일럿 애플리케이션을 구축하면서 이론뿐만 아니라 실제 적용 방법까지 배울 수 있다. Azure OpenAI 활용에 필요한 거버넌스와 책임 있는 AI 구현도 함께 다룬다. 이 책을 통해 AI 시스템을 쉽게 구축하고, 업무에 바로 적용할 수 있는 유용한 기술과 노하우를 배울 수 있을 것이다.

저자

가모히로사토,나가타쇼헤이,다테와키유타,미야타다이시,요시다신고,이토슌타,

저자:가모히로사토
일본마이크로소프트클라우드설루션아키텍트.SI대기업에서커리어를시작했다.자동차업계의DMS데이터활용환경구축을위한컨설팅및개발과엔터프라이즈블록체인을활용한다른업종간데이터유통플랫폼을구축했다.수년간데이터사이언티스트로서사회인프라관련기업을대상으로데이터분석및머신러닝시스템개발을경험했으며,현재는설루션아키텍트로서AI도입기술지원및AzureOpenAIService이밴절리스트활동에종사하고있다.

저자:나가타쇼헤이
일본마이크로소프트클라우드설루션아키텍트.대학원에서분자생물학과생물정보학을전공한뒤2020년에일본마이크로소프트에입사했다.클라우드설루션아키텍트로서주로엔터프라이즈고객을대상으로애저빅데이터분석환경과머신러닝환경도입및활용을지원하는업무를수행하고있다.

저자:다테와키유타
일본마이크로소프트클라우드설루션아키텍트.소프트뱅크,딜로이트,데이터오로봇을거쳐현재는일본마이크로소프트에서빅데이터,클라우드,머신러닝을활용한기업데이터활용을지원하고있다.MLOps커뮤니티를운영중이다.일본딥러닝협회AI(JDLAAI)거버넌스및평가연구회연구원으로서QA4AI(일본)가이드라인을개정했으며,MLOps나AI거버넌스관련강연과집필활동을활발히하고있다.

저자:미야타다이시
일본마이크로소프트클라우드설루션아키텍트.제조업에서데이터분석,머신러닝시스템구축,데이터분석환경개발을경험하고일본마이크로소프트에입사했다.폭넓은업계의고객을대상으로AI도입및활용을지원하고있다.

저자:요시다신고
클라우드DevOps그룹인Section-9대표이사.2023년5월에AzureOpenAI,AzureAISearch,AzureCosmosDB를활용한인사FAQ기능을릴리스했다.

저자:이토슌타
일본마이크로소프트클라우드설루션아키텍트이자카운슬링앱을운영하는Omamori이사.AI/ML개발(특히자연어처리분야)및활용에대한기술지원을주로하며,머신러닝환경이나MLOps환경구축및활용에대한기술지원도수행하고있다.

저자:하나가사키노부스케
일본마이크로소프트파트너설루션아키텍트.NEC설루션이노베이터,IBM저팬의AI아키텍트를거쳐현재는파트너AI설루션개발을지원하고있다.영상인식제품개발및의료영상분석등여러산업에서AI프로젝트의개발자/아키텍트로서15년이상의경험을가지고있다.

역자:원밀리언라인즈코딩
국내외최고의부트캠프와온라인교육플랫폼에서신입개발자들을양성해왔다.네이버부스트캠프,현대자동차그룹소프티어부트캠프,우아한테크캠프,원티드프리온보딩등에서교육및멘토링활동을활발하게하면서자료구조및알고리즘,모바일앱개발,데이터사이언스,프롬프트엔지니어링등의분야에서깊이있는지식을공유해왔다.인프런과유데미에서온라인강의를하고있으며,다양한기업의내부교육을진행하면서현업개발자들의역량강화에도기여하고있다.옮긴책으로는《프런트엔드개발을위한테스트입문》(제이펍,2023)이있다.

감수:배인진
원밀리언라인즈코딩대표.카카오엔터테인먼트,스튜디오씨드코리아,엔비티에서개발자로근무했다.

목차

지은이/옮긴이/감수자소개xi
옮긴이머리말xiv
추천의글xvi
베타리더후기xix
시작하며xxiii
감사의글xxiv
이책에대하여xxv

PARTI마이크로소프트애저에서의ChatGPT활용

CHAPTER1생성형AI와ChatGPT3
1.1생성형AI와ChatGPT가불러온충격3
__1.1.1AI시대의개막3
__1.1.2ChatGPT를적용할수있는업무들5
[COLUMN]OpenInterpreter9
__1.1.3ChatGPT사용시주의할점10
1.2ChatGPT의구조10
__1.2.1기존챗봇과의차이점10
__1.2.2GPT란11
__1.2.3사람이선호하는문장을생성하는방법:RLHF13
__1.2.4ChatGPT의탄생과정13
1.3마무리14

CHAPTER2프롬프트엔지니어링15
2.1프롬프트엔지니어링이란15
2.2기본적인작성법16
__2.2.1구체적으로지시하기16
__2.2.2출구지정하기17
__2.2.3역할부여하기18
__2.2.4입출력예시지정하기19
[COLUMN]제로샷학습과퓨샷학습20
__2.2.5프롬프트구조화하기20
2.3생각의사슬21
[COLUMN]GPT-3.5Turbo와GPT-4의성능차이23
2.4그밖의기법들24
2.5마무리25

CHAPTER3AzureOpenAIService26
3.1AzureOpenAIService란26
__3.1.1OpenAI의API서비스와AzureOpenAIService의차이점27
__3.1.2AzureOpenAI개요29
3.2AzureOpenAI시작하기30
__3.2.1AzureOpenAI액세스신청30
__3.2.2리소스생성31
__3.2.3GPT모델배포하기35
3.3채팅플레이그라운드에서ChatGPT애플리케이션개발하기39
__3.3.1설정40
__3.3.2채팅세션42
[COLUMN]채팅플레이그라운드는어디에서동작하는것일까?44
__3.3.3채팅애플리케이션배포44
[COLUMN]플레이그라운드에서배포한웹애플리케이션의소스코드47
3.4고려사항47
__3.4.1비용문제47
__3.4.2할당량및제한48
3.5마무리50

PARTIIRAG를활용한사내문서검색시스템구현

CHAPTER4RAG개요및설계53
4.1ChatGPT의문제점과해결방법53
4.2RAG란55
4.3검색시스템57
4.4AzureAISearch58
__4.4.1색인생성60
__4.4.2문서검색67
4.5오케스트레이터71
__4.5.1AzureOpenAIonyourdata72
__4.5.2AzureMachineLearning프롬프트흐름73
__4.5.3자체구현74
4.6AzureOpenAIonyourdata74
__4.6.1데이터원본75
__4.6.2사용방법75
4.7AzureMachineLearning프롬프트흐름81
__4.7.1사용방법82
[COLUMN]AzureMachineLearning이란91
4.8LLM91
4.9AzureOpenAIAPI92
__4.9.1ChatCompletionsAPI92
__4.9.2EmbeddingsAPI97
4.10마무리98
[COLUMN]RAGvs.파인튜닝98

CHAPTER5RAG구현및평가100
5.1아키텍처100
5.2사내문서검색구현105
__5.2.1사용할애저서비스목록및요금105
__5.2.2로컬개발환경구축하기106
__5.2.3로컬환경에서실행하기110
__5.2.4로컬변경사항을AppService에배포하기112
__5.2.5환경설정파일변경하기112
__5.2.6문서를추가로인덱싱하기112
__5.2.7실제로질문하기112
__5.2.8기능소개113
5.3채팅이력저장116
__5.3.1채팅이력저장구현예시117
__5.3.2CosmosDB에저장된채팅이력확인119
5.4검색기능119
__5.4.1벡터검색120
[COLUMN]청크분할의중요성122
__5.4.2하이브리드검색123
__5.4.3의미체계하이브리드검색124
[COLUMN]가장좋은결과를내는검색모드는어떤것일까?126
[COLUMN]커스터마이징포인트126
5.5데이터수집자동화127
5.6RAG평가및개선129
5.7검색정확도평가130
__5.7.1기본평가지표130
__5.7.2순위를고려한평가지표131
5.8생성정확도평가132
__5.8.1연관성평가133
__5.8.2일관성평가134
__5.8.3유사도평가135
[COLUMN]RAG응답의정확도를향상시키는방법135
5.9마무리136

PARTIII코파일럿스택을사용한LLM애플리케이션구현

CHAPTER6AI오케스트레이션139
6.1코파일럿스택이란139
__6.1.11계층:코파일럿프런트엔드140
__6.1.22계층:AI오케스트레이션140
__6.1.33계층:파운데이션모델141
6.2AI오케스트레이션과에이전트141
__6.2.1Reasoning&Acting141
__6.2.2Planning&Execution145
[COLUMN]랭체인146
[COLUMN]시맨틱커널147
__6.2.3플러그인실행148
6.3자체코파일럿개발시아키텍처및구현150
__6.3.1툴선정(ReAct)기능구현150
__6.3.2채팅UI에서사용하기152
__6.3.3ChatGPT플러그인구현하기156
__6.3.4스트리밍출력구현하기160
6.4마무리160
[COLUMN]AzureAIStudio의등장161

CHAPTER7파운데이션모델과AI인프라스트럭처162
7.1파운데이션모델과AI인프라스트럭처정의162
7.2호스팅가능모델163
__7.2.1GPT-3.5와GPT-4163
[COLUMN]GPT-4Turbo166
[COLUMN]GPT-4o와o1166
__7.2.2파인튜닝166
[COLUMN]GPT-4의파인튜닝169
7.3공개모델169
__7.3.1모델종류171
__7.3.2모델크기와압축방법172
__7.3.3모델호스팅177
[COLUMN]AzureAIFoundry모델카탈로그179
7.4마무리180
[COLUMN]OSS와머신러닝모델180

CHAPTER8코파일럿프런트엔드182
8.1사용자경험정의182
__8.1.1사용성182
__8.1.2정지버튼과재생성버튼183
__8.1.3캐시를고려한구현184
8.2LLM의부정확한응답에대처하기185
__8.2.1정확성185
__8.2.2투명성(정보출처제시)185
__8.2.3UX향상을위한스트리밍처리186
__8.2.4OpenAI엔드포인트의스트리밍출력을직접처리하기186
__8.2.5플라스크애플리케이션의응답을스트림형식으로처리하기187
8.3UX향상을위한참고자료194
[COLUMN]채팅외의인터페이스195
8.4마무리196

PARTIV거버넌스와책임있는AI

CHAPTER9거버넌스199
9.1공통기반이란199
9.2공통기반아키텍처201
__9.2.1사용할애저서비스목록및요금201
__9.2.2배포202
9.3인증및인가208
__9.3.1인증및인가처리흐름208
__9.3.2예제코드실행209
[COLUMN]APIManagement의구독키215
[COLUMN]특정사용자에게만AzureOpenAIAPI접근허용하기216
9.4로그통합217
9.5과금219
9.6호출제한221
9.7폐쇄망221
9.8부하분산223
__9.8.1ApplicationGateway이용226
[COLUMN]ApplicationGateway의부하분산을프로덕션환경에서사용할때의주의점228
__9.8.2APIManagement이용230
9.9마무리231

CHAPTER10책임있는AI232
10.1책임있는AI를위한마이크로소프트의노력232
10.2책임있는AI적용234
10.3콘텐츠필터235
10.4데이터취급240
10.5마무리241

APPENDIXA예제코드실행환경구축242
A.1파이썬설치242
__A.1.1설치방법(윈도우)243
A.2깃설치244
__A.2.1설치방법(윈도우)244
A.3AzureDeveloperCLI설치247
__A.3.1설치방법(윈도우)247
__A.3.2설치방법(리눅스)248
__A.3.3설치방법(macOS)248
A.4Node.js설치249
__A.4.1설치방법(윈도우)249
A.5파워셸설치(윈도우한정)251
__A.5.1설치방법251

APPENDIXBChatGPT의구조255
B.1트랜스포머의등장256
__B.1.1어텐션256
__B.1.2seq2seq257
__B.1.3seq2seq에도입된어텐션258
__B.1.4어텐션의계산처리259
__B.1.5트랜스포머의구조260
__B.1.6트랜스포머의장점262
__B.1.7트랜스포머의한계262
B.2대규모화및언어모델의사전학습에따른성능향상263
__B.2.1트랜스포머인코더계열모델의발전264
__B.2.2트랜스포머디코더계열모델의발전265
__B.2.3스케일링법칙266
B.3호의적응답으로조정된언어모델266
[COLUMN]공개모델269

마치며270
찾아보기272

출판사 서평

AI시스템개발이쉬워지는AzureOpenAIService활용법
생성형AI의빠른확산으로AI의단순활용을넘어직접구축하고최적화하는능력이요구되고있다.이책은AzureOpenAIService를활용해생성형AI서비스를직접개발하고실무에적용하는방법을다루는국내첫가이드로,AI모델의효과적인적용법을체계적으로안내한다.

1부에서는ChatGPT와생성형AI와같은LLM기본개념과구조부터설명한다.AzureAIFoundry를활용해ChatGPT애플리케이션을만들어보고,모델의답변을정밀하게조정하는프롬프트엔지니어링기법을익힐수있다.

2부에서는AI가문서를검색하고요약하는RAG기반시스템구축과정을알려주고,이를개발하기위한애저서비스의효율적인활용법을살펴본다.3부에서는코파일럿개발에필요한코파일럿스택,AI오케스트레이션,파운데이션모델,AI인프라,코파일럿프런트엔드등을알려준다.

4부에서는LLM애플리케이션의개발및운용에필요한거버넌스와책임있는AI에대해서논의한다.인증및보안설정,API호출제한,비용최적화전략,책임있는AI운영방법을다룬다.마지막으로부록에서는예제코드의실행환경구축방법과ChatGPT의구조를살펴본다.

AI기술을실무에적용하는과정은여전히쉽지않다.AzureOpenAI를활용하면생성형AI모델을더욱효율적으로개발하고최적화할수있다.이책만있다면AI모델의기본개념부터실제애플리케이션개발까지단계별로따라가며학습할수있다.AzureOpenAI로AI를활용하는가장실용적인방법으로여러분을안내한다.

대상독자
DX담당자:AI기반디지털전환전략을기획하고기업내도입을추진하는관리자
AI운영및거버넌스담당자:AzureOpenAI서비스의보안,인증,비용,거버넌스를관리하는IT책임자
설루션아키텍트:AI를활용한제품및서비스의기획과아키텍처설계를담당하는기획자
클라우드엔지니어:애저환경에서AI애플리케이션을배포,운영,성능최적화하는엔지니어

주요내용
생성형AI와ChatGPT기본개념
AzureOpenAIService의활용법
프롬프트엔지니어링기법과응용
AzureAISearch와RAG를활용한사내문서검색시스템구축
ChatGPT,랭체인을활용한코파일럿애플리케이션개발
책임있는AI사용을위한가이드