LLM을 활용한 실전 AI 애플리케이션 개발 (LLM의 기본부터 모델 학습, 임베딩, 벡터 데이터베이스로 만드는 RAG까지)

LLM을 활용한 실전 AI 애플리케이션 개발 (LLM의 기본부터 모델 학습, 임베딩, 벡터 데이터베이스로 만드는 RAG까지)

$33.99
Description
트랜스포머 아키텍처부터 RAG 개발, 모델 학습, 배포, 최적화, 운영까지
라마인덱스와 LLM을 활용한 AI 애플리케이션 개발의 모든 것
이 책에서는 LLM의 기본 아키텍처에서 출발해 애플리케이션의 요구사항에 맞춰 LLM을 길들이고 제한된 컴퓨팅 환경에서 동작하게 경량화해서 원활하게 서빙하게끔 기초를 다진 다음에 RAG라는 LLM의 대표적인 애플리케이션을 만드는 방법을 차근차근 설명한다. 여기서 끝나지 않고 실제 운영과정에서 부딪히는 어려움을 해소하는 방법과 멀티 모달과 더불어 에이전트와 같은 고급 주제까지 다룬다.
LLM 시대를 맞이하여 필수적으로 갖춰야 하는 개발 지식을 이론과 실무 양쪽 관점에서 설명하고 있으므로, 새로운 패러다임에 적응하고자 하는 개발자들에게 가뭄의 단비처럼 다가올 것이다.
저자

허정준

저자:허정준
서울대학교기계항공공학부를졸업하고롯데면세점빅데이터팀데이터분석가를거쳐현재는프리랜서마켓크몽에서AI엔지니어로일하고있다.『파이토치라이트닝으로시작하는딥러닝』을번역했으며,최근에는LLM을활용한어시스턴트(에이전트)개발에관심이많다.

그림:정진호
개발자출신화가,작가,일러스트레이터,비주얼씽킹전문가.글로벌인터넷기업에서엔지니어로일했고,독학으로12년째그림을그리고있다.25권의저서와역서를출간하고9권의도서일러스트를담당했다.기업,학교,공공기관등에서다양한시각화관련강의와프로젝트를수행하며아날로그와디지털을넘나드는창작활동을즐기고있다.복잡한것을단순하게,어려운것을쉽게만드는과정에서즐거움을느낀다.국내최고령일러스트레이터가되는소박한꿈을품고매일작업하고있다.

감수:박재호
포항공과대학교컴퓨터공학과학부와대학원을졸업했다.임베디드시스템개발,기업용백업소프트웨어개발,방송국콘텐츠수신제한시스템개발과운영지원,클라우드에서동작하는서비스개발에이르기까지다양한실무경험을토대로고성능고가용성시스템을설계하고있다.코스닥상장사인엑셈CTO로인공지능과스마트팩토리관련개발을총괄했으며,클라우드용모니터링시스템을위한아키텍처설계도주도했다.『마이크로서비스도입,이렇게한다』(책만,2021),『CleanCode클린코드』(인사이트,2013),『피플웨어』(인사이트,2014)번역,『엘라스틱스택개발부터운영까지』(책만,2021)감수등번역·감수하거나집필한책이40여권이넘는다.각종기술소식을다루는블로그‘컴퓨터vs책’(jhrogue.blogspot.com/)과개발자를위한유튜브‘채널박재호’(youtube.com/c/박재호dev)를운영하며,개발자들을위한각종교육과세미나도지속적으로진행하고있다.

목차


[1부]LLM의기초뼈대세우기
1장LLM지도
1.1딥러닝과언어모델링
__1.1.1데이터의특징을스스로추출하는딥러닝
__1.1.2임베딩:딥러닝모델이데이터를표현하는방식
__1.1.3언어모델링:딥러닝모델의언어학습법
1.2언어모델이챗GPT가되기까지
__1.2.1RNN에서트랜스포머아키텍처로
__1.2.2GPT시리즈로보는모델크기와성능의관계
__1.2.3챗GPT의등장
1.3LLM애플리케이션의시대가열리다
__1.3.1지식사용법을획기적으로바꾼LLM
__1.3.2sLLM:더작고효율적인모델만들기
__1.3.3더효율적인학습과추론을위한기술
__1.3.4LLM의환각현상을대처하는검색증강생성(RAG)기술
1.4LLM의미래:인식과행동의확장
1.5정리

2장LLM의중추,트랜스포머아키텍처살펴보기
2.1트랜스포머아키텍처란
2.2텍스트를임베딩으로변환하기
__2.2.1토큰화
__2.2.2토큰임베딩으로변환하기
__2.2.3위치인코딩
2.3어텐션이해하기
__2.3.1사람이글을읽는방법과어텐션
__2.3.2쿼리,키,값이해하기
__2.3.3코드로보는어텐션
__2.3.4멀티헤드어텐션
2.4정규화와피드포워드층
__2.4.1층정규화이해하기
__2.4.2피드포워드층
2.5인코더
2.6디코더
2.7BERT,GPT,T5등트랜스포머를활용한아키텍처
__2.7.1인코더를활용한BERT
__2.7.2디코더를활용한GPT
__2.7.3인코더와디코더를모두사용하는BART,T5
2.8주요사전학습메커니즘
__2.8.1인과적언어모델링
__2.8.2마스크언어모델링
2.9정리

3장트랜스포머모델을다루기위한허깅페이스트랜스포머라이브러리
3.1허깅페이스트랜스포머란
3.2허깅페이스허브탐색하기
__3.2.1모델허브
__3.2.2데이터셋허브
__3.2.3모델데모를공개하고사용할수있는스페이스
3.3허깅페이스라이브러리사용법익히기
__3.3.1모델활용하기
__3.3.2토크나이저활용하기
__3.3.3데이터셋활용하기
3.4모델학습시키기
__3.4.1데이터준비
__3.4.2트레이너API를사용해학습하기
__3.4.3트레이너API를사용하지않고학습하기
__3.4.4학습한모델업로드하기
3.5모델추론하기
__3.5.1파이프라인을활용한추론
__3.5.2직접추론하기
3.6정리

4장말잘듣는모델만들기
4.1코딩테스트통과하기:사전학습과지도미세조정
__4.1.1코딩개념익히기:LLM의사전학습
__4.1.2연습문제풀어보기:지도미세조정
__4.1.3좋은지시데이터셋이갖춰야할조건
4.2채점모델로코드가독성높이기
__4.2.1선호데이터셋을사용한채점모델만들기
__4.2.2강화학습:높은코드가독성점수를향해
__4.2.3PPO:보상해킹피하기
__4.2.4RLHF:멋지지만피할수있다면…
4.3강화학습이꼭필요할까?
__4.3.1기각샘플링:단순히가장점수가높은데이터를사용한다면?
__4.3.2DPO:선호데이터셋을직접학습하기
__4.3.3DPO를사용해학습한모델들
4.4정리

[2부LLM길들이기]
5장GPU효율적인학습
5.1GPU에올라가는데이터살펴보기
__5.1.1딥러닝모델의데이터타입
__5.1.2양자화로모델용량줄이기
__5.1.3GPU메모리분해하기
5.2단일GPU효율적으로활용하기
__5.2.1그레이디언트누적
__5.2.2그레이디언트체크포인팅
5.3분산학습과ZeRO
__5.3.1분산학습
__5.3.2데이터병렬화에서중복저장줄이기(ZeRO)
5.4효율적인학습방법(PEFT):LoRA
__5.4.1모델파라미터의일부만재구성해학습하는LoRA
__5.4.2LoRA설정살펴보기
__5.4.3코드로LoRA학습사용하기
5.5효율적인학습방법(PEFT):QLoRA
__5.5.14비트양자화와2차양자화
__5.5.2페이지옵티마이저
__5.5.3코드로QLoRA모델활용하기
5.6정리

6장sLLM학습하기
6.1Text2SQL데이터셋
__6.1.1대표적인Text2SQL데이터셋
__6.1.2한국어데이터셋
__6.1.3합성데이터활용
6.2성능평가파이프라인준비하기
__6.2.1Text2SQL평가방식
__6.2.2평가데이터셋구축
__6.2.3SQL생성프롬프트
__6.2.4GPT-4평가프롬프트와코드준비
6.3실습:미세조정수행하기
__6.3.1기초모델평가하기
__6.3.2미세조정수행
__6.3.3학습데이터정제와미세조정
__6.3.4기초모델변경
__6.3.5모델성능비교
6.4정리

7장모델가볍게만들기
7.1언어모델추론이해하기
__7.1.1언어모델이언어를생성하는방법
__7.1.2중복연산을줄이는KV캐시
__7.1.3GPU구조와최적의배치크기
__7.1.4KV캐시메모리줄이기
7.2양자화로모델용량줄이기
__7.2.1비츠앤바이츠
__7.2.2GPTQ
__7.2.3AWQ
7.3지식증류활용하기
7.4정리

8장sLLM서빙하기
8.1효율적인배치전략
__8.1.1일반배치(정적배치)
__8.1.2동적배치
__8.1.3연속배치
8.2효율적인트랜스포머연산
__8.2.1플래시어텐션
__8.2.2플래시어텐션2
__8.2.3상대적위치인코딩
8.3효율적인추론전략
__8.3.1커널퓨전
__8.3.2페이지어텐션
__8.3.3추측디코딩
8.4실습:LLM서빙프레임워크
__8.4.1오프라인서빙
__8.4.2온라인서빙
8.5정리

[3부]LLM을활용한실전애플리케이션개발
9장LLM애플리케이션개발하기
9.1검색증강생성(RAG)
__9.1.1데이터저장
__9.1.2프롬프트에검색결과통합
__9.1.3실습:라마인덱스로RAG구현하기
9.2LLM캐시
__9.2.1LLM캐시작동원리
__9.2.2실습:OpenAIAPI캐시구현
9.3데이터검증
__9.3.1데이터검증방식
__9.3.2데이터검증실습
9.4데이터로깅
__9.4.1OpenAIAPI로깅
__9.4.2라마인덱스로깅
9.5정리

10장임베딩모델로데이터의미압축하기
10.1텍스트임베딩이해하기
__10.1.1문장임베딩방식의장점
__10.1.2원핫인코딩
__10.1.3백오브워즈
__10.1.4TF-IDF
__10.1.5워드투벡
10.2문장임베딩방식
__10.2.1문장사이의관계를계산하는두가지방법
__10.2.2바이인코더모델구조
__10.2.3Sentence-Transformers로텍스트와이미지임베딩생성해보기
__10.2.4오픈소스와상업용임베딩모델비교하기
10.3실습:의미검색구현하기
__10.3.1의미검색구현하기
__10.3.2라마인덱스에서Sentence-Transformers모델사용하기
10.4검색방식을조합해성능높이기
__10.4.1키워드검색방식:BM25
__10.4.2상호순위조합이해하기
10.5실습:하이브리드검색구현하기
__10.5.1BM25구현하기
__10.5.2상호순위조합구현하기
__10.5.3하이브리드검색구현하기
10.6정리

11장자신의데이터에맞춘임베딩모델만들기:RAG개선하기
11.1검색성능을높이기위한두가지방법
11.2언어모델을임베딩모델로만들기
__11.2.1대조학습
__11.2.2실습:학습준비하기
__11.2.3실습:유사한문장데이터로임베딩모델학습하기
11.3임베딩모델미세조정하기
__11.3.1실습:학습준비
__11.3.2MNR손실을활용해미세조정하기
11.4검색품질을높이는순위재정렬
11.5바이인코더와교차인코더로개선된RAG구현하기
__11.5.1기본임베딩모델로검색하기
__11.5.2미세조정한임베딩모델로검색하기
__11.5.3미세조정한임베딩모델과교차인코더조합하기
11.6정리

12장벡터데이터베이스로확장하기:RAG구현하기
12.1벡터데이터베이스란
__12.1.1딥러닝과벡터데이터베이스
__12.1.2벡터데이터베이스지형파악하기
12.2벡터데이터베이스작동원리
__12.2.1KNN검색과그한계
__12.2.2ANN검색이란
__12.2.3탐색가능한작은세계(NSW)
__12.2.4계층구조
12.3실습:HNSW인덱스의핵심파라미터이해하기
__12.3.1파라미터m이해하기
__12.3.2파라미터ef_construction이해하기
__12.3.3파라미터ef_search이해하기
12.4실습:파인콘으로벡터검색구현하기
__12.4.1파인콘클라이언트사용법
__12.4.2라마인덱스에서벡터데이터베이스변경하기
12.5실습:파인콘을활용해멀티모달검색구현하기
__12.5.1데이터셋
__12.5.2실습흐름
__12.5.3GPT-4o로이미지설명생성하기
__12.5.4프롬프트저장
__12.5.5이미지임베딩검색
__12.5.6DALL-E3로이미지생성
12.6정리

13장LLM운영하기
13.1MLOps
__13.1.1데이터관리
__13.1.2실험관리
__13.1.3모델저장소
__13.1.4모델모니터링
13.2LLMOps는무엇이다를까?
__13.2.1상업용모델과오픈소스모델선택하기
__13.2.2모델최적화방법의변화
__13.2.3LLM평가의어려움
13.3LLM평가하기
__13.3.1정량적지표
__13.3.2벤치마크데이터셋을활용한평가
__13.3.3사람이직접평가하는방식
__13.3.4LLM을통한평가
__13.3.4RAG평가
13.4정리

[4부]멀티모달,에이전트그리고LLM의미래
14장멀티모달
L

출판사 서평

|이책에서다루는내용|
-LLM의핵심인트랜스포머아키텍처
-챗GPT를만드는방법:지도미세조정과RLHF
-오픈소스LLM을나만의데이터로추가학습하기
-LLM애플리케이션운영을위한모델경량화
-라마인덱스를활용한RAG구현과개선
-이미지와음성도처리하는멀티모달LLM
-LLM에장기기억과도구를결합한에이전트아키텍처

|이책의대상독자|
-LLM을활용해AI애플리케이션을개발하려는개발자
-LLMAPI의단순한활용보다는모델의원리와기반기술도궁금한개발자
-AI엔지니어가되고자하는학생및취업준비생
-짧은시간에LLM과관련된논문과기술을정리하고싶은대학원생

|깃허브실습코드다운로드|
실습코드는책의깃허브저장소(github.com/onlybooks/llm)에서확인할수있습니다.깃허브의코드는구글코랩에서두가지방법으로활용할수있습니다.

1.로컬에서업로드하기:깃허브의코드를로컬환경에클론하거나압축파일형태로내려받은후진행하려는실습폴더의노트북파일(ipynb)을구글코랩에서열어실
습을진행할수있습니다.
2.깃허브URL로열기:구글코랩에서노트열기(Ctrl+O)를선택하면다양한노트열기방식중깃허브GitHub탭에서코드의URL을통해실습노트북을열수있습니다.

|이책의코드실행환경|
이책의실습은구글코랩에서실행한다.구글코랩은구글에서제공하는노트북실행환경으로,파이썬의주피터노트북과유사한UI로브라우저에서실행할수있다.또구글코랩에서는무료T4GPU(16GB)를사용할수있도록제공한다.구글코랩의무료버전은12시간의런타임제한이있으며,장시간사용하지않으면연결이끊길수있다.