책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 인공지능
· ISBN : 9791194587033
· 쪽수 : 304쪽
· 출판일 : 2025-03-17
책 소개
목차
지은이/옮긴이/감수자 소개 xi
옮긴이 머리말 xiv
추천의 글 xvi
베타리더 후기 xix
시작하며 xxiii
감사의 글 xxiv
이 책에 대하여 xxv
PART I 마이크로소프트 애저에서의 ChatGPT 활용
CHAPTER 1 생성형 AI와 ChatGPT 3
1.1 생성형 AI와 ChatGPT가 불러온 충격 3
__1.1.1 AI 시대의 개막 3
__1.1.2 ChatGPT를 적용할 수 있는 업무들 5
[COLUMN] Open Interpreter 9
__1.1.3 ChatGPT 사용 시 주의할 점 10
1.2 ChatGPT의 구조 10
__1.2.1 기존 챗봇과의 차이점 10
__1.2.2 GPT란 11
__1.2.3 사람이 선호하는 문장을 생성하는 방법: RLHF 13
__1.2.4 ChatGPT의 탄생 과정 13
1.3 마무리 14
CHAPTER 2 프롬프트 엔지니어링 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.5 Turbo와 GPT-4의 성능 차이 23
2.4 그 밖의 기법들 24
2.5 마무리 25
CHAPTER 3 Azure OpenAI Service 26
3.1 Azure OpenAI Service란 26
__3.1.1 OpenAI의 API 서비스와 Azure OpenAI Service의 차이점 27
__3.1.2 Azure OpenAI 개요 29
3.2 Azure OpenAI 시작하기 30
__3.2.1 Azure OpenAI 액세스 신청 30
__3.2.2 리소스 생성 31
__3.2.3 GPT 모델 배포하기 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
PART II RAG를 활용한 사내 문서 검색 시스템 구현
CHAPTER 4 RAG 개요 및 설계 53
4.1 ChatGPT의 문제점과 해결 방법 53
4.2 RAG란 55
4.3 검색 시스템 57
4.4 Azure AI Search 58
__4.4.1 색인 생성 60
__4.4.2 문서 검색 67
4.5 오케스트레이터 71
__4.5.1 Azure OpenAI on your data 72
__4.5.2 Azure Machine Learning 프롬프트 흐름 73
__4.5.3 자체 구현 74
4.6 Azure OpenAI on your data 74
__4.6.1 데이터 원본 75
__4.6.2 사용 방법 75
4.7 Azure Machine Learning 프롬프트 흐름 81
__4.7.1 사용 방법 82
[COLUMN] Azure Machine Learning이란 91
4.8 LLM 91
4.9 Azure OpenAI API 92
__4.9.1 Chat Completions API 92
__4.9.2 Embeddings API 97
4.10 마무리 98
[COLUMN] RAG vs. 파인 튜닝 98
CHAPTER 5 RAG 구현 및 평가 100
5.1 아키텍처 100
5.2 사내 문서 검색 구현 105
__5.2.1 사용할 애저 서비스 목록 및 요금 105
__5.2.2 로컬 개발 환경 구축하기 106
__5.2.3 로컬 환경에서 실행하기 110
__5.2.4 로컬 변경사항을 App Service에 배포하기 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.2 Cosmos DB에 저장된 채팅 이력 확인 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.6 RAG 평가 및 개선 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
PART III 코파일럿 스택을 사용한 LLM 애플리케이션 구현
CHAPTER 6 AI 오케스트레이션 139
6.1 코파일럿 스택이란 139
__6.1.1 1계층: 코파일럿 프런트엔드 140
__6.1.2 2계층: AI 오케스트레이션 140
__6.1.3 3계층: 파운데이션 모델 141
6.2 AI 오케스트레이션과 에이전트 141
__6.2.1 Reasoning & Acting 141
__6.2.2 Planning & Execution 145
[COLUMN] 랭체인 146
[COLUMN] 시맨틱 커널 147
__6.2.3 플러그인 실행 148
6.3 자체 코파일럿 개발 시 아키텍처 및 구현 150
__6.3.1 툴 선정(ReAct) 기능 구현 150
__6.3.2 채팅 UI에서 사용하기 152
__6.3.3 ChatGPT 플러그인 구현하기 156
__6.3.4 스트리밍 출력 구현하기 160
6.4 마무리 160
[COLUMN] Azure AI Studio의 등장 161
CHAPTER 7 파운데이션 모델과 AI 인프라스트럭처 162
7.1 파운데이션 모델과 AI 인프라스트럭처 정의 162
7.2 호스팅 가능 모델 163
__7.2.1 GPT-3.5와 GPT-4 163
[COLUMN] GPT-4 Turbo 166
[COLUMN] GPT-4o와 o1 166
__7.2.2 파인 튜닝 166
[COLUMN] GPT-4의 파인 튜닝 169
7.3 공개 모델 169
__7.3.1 모델 종류 171
__7.3.2 모델 크기와 압축 방법 172
__7.3.3 모델 호스팅 177
[COLUMN] Azure AI Foundry 모델 카탈로그 179
7.4 마무리 180
[COLUMN] OSS와 머신러닝 모델 180
CHAPTER 8 코파일럿 프런트엔드 182
8.1 사용자 경험 정의 182
__8.1.1 사용성 182
__8.1.2 정지 버튼과 재생성 버튼 183
__8.1.3 캐시를 고려한 구현 184
8.2 LLM의 부정확한 응답에 대처하기 185
__8.2.1 정확성 185
__8.2.2 투명성(정보 출처 제시) 185
__8.2.3 UX 향상을 위한 스트리밍 처리 186
__8.2.4 OpenAI 엔드포인트의 스트리밍 출력을 직접 처리하기 186
__8.2.5 플라스크 애플리케이션의 응답을 스트림 형식으로 처리하기 187
8.3 UX 향상을 위한 참고 자료 194
[COLUMN] 채팅 외의 인터페이스 195
8.4 마무리 196
PART IV 거버넌스와 책임 있는 AI
CHAPTER 9 거버넌스 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] API Management의 구독 키 215
[COLUMN] 특정 사용자에게만 Azure OpenAI API 접근 허용하기 216
9.4 로그 통합 217
9.5 과금 219
9.6 호출 제한 221
9.7 폐쇄망 221
9.8 부하 분산 223
__9.8.1 Application Gateway 이용 226
[COLUMN] Application Gateway의 부하 분산을 프로덕션 환경에서 사용할 때의 주의점 228
__9.8.2 API Management 이용 230
9.9 마무리 231
CHAPTER 10 책임 있는 AI 232
10.1 책임 있는 AI를 위한 마이크로소프트의 노력 232
10.2 책임 있는 AI 적용 234
10.3 콘텐츠 필터 235
10.4 데이터 취급 240
10.5 마무리 241
APPENDIX A 예제 코드 실행 환경 구축 242
A.1 파이썬 설치 242
__A.1.1 설치 방법(윈도우) 243
A.2 깃 설치 244
__A.2.1 설치 방법(윈도우) 244
A.3 Azure Developer CLI 설치 247
__A.3.1 설치 방법(윈도우) 247
__A.3.2 설치 방법(리눅스) 248
__A.3.3 설치 방법(macOS) 248
A.4 Node.js 설치 249
__A.4.1 설치 방법(윈도우) 249
A.5 파워셸 설치(윈도우 한정) 251
__A.5.1 설치 방법 251
APPENDIX B ChatGPT의 구조 255
B.1 트랜스포머의 등장 256
__B.1.1 어텐션 256
__B.1.2 seq2seq 257
__B.1.3 seq2seq에 도입된 어텐션 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
저자소개
리뷰
책속에서
ChatGPT로 복잡한 문제를 해결해야 할 때에는 생각의 사슬(chain of thought, CoT)이라는 방법이 유용하다. 이는 LLM에 단계적인 추론을 유도해서 보다 정확한 응답을 도출하는 방법이다. 복잡한 문제나 계산 문제를 해결할 때 모델에 문제 해결 과정을 단계적으로 지시하면 이후에 해결할 문제의 결론을 정확하게 내릴 수 있다. (...) 또한, 프롬프트에 ‘차근차근 생각해 봐(let’s think step by step)’라는 말을 추가하는 것만으로도 응답의 정확성을 높일 수 있다. 이 방법은 구체적인 단계를 지시하지 않고도 단계적인 추론을 통해 결론을 도출하도록 지시할 수 있어 유용하다.
채팅 플레이그라운드에서 설정한 시스템 메시지와 매개변수를 웹 애플리케이션(이하 웹 애플리케이션)으로 배포할 수 있다. 플레이그라운드 우측 상단에 있는 [배포]를 클릭하고 [...웹앱으로]를 선택하면 웹 애플리케이션을 호스팅하는 PaaS(platform as a service)인 Azure App Service를 사용해서 배포할 수 있다(그림 3-25). (...) 웹 애플리케이션의 리소스를 생성하기 위한 정보들을 입력하고 [배포] 버튼을 누르면 배포가 완료된다. ‘웹앱에서 채팅 기록 사용’ 옵션을 체크하고 배포하면 Azure Cosmos DB에 채팅 기록을 저장하는 방식으로 배포된다(그림 3-26).
LLM 시스템 개발로 작업의 효율성을 높일 수 없을 때는 대량의 학습 데이터를 사용해서 LLM의 매개변수를 튜닝하는 방법을 고려해볼 수 있다. 이 방법을 파인 튜닝(fine-tuning)이라고 하며 Azure OpenAI의 GPT-3.5 Turbo 같은 모델에도 적용이 가능하다. 파인 튜닝을 하려면 특정 작업에 관한 프롬프트와 이상적인 답변을 짝 지은 학습 데이터를 준비하면 된다. 주의할 점은 파인 튜닝은 지식이나 논리를 기억시키는 용도로는 적합하지 않다는 것이다. 파인 튜닝은 출력 형식의 조정이나 특정 작업의 효율성을 높이는 목적으로 사용하는 것이 적합하다.