상세정보
미리보기
LLM을 활용한 실전 AI 애플리케이션 개발 : LLM의 기본부터 모델 학습, 임베딩, 벡터 데이터베이스로 만드는 RAG까지
- 저자
- 허정준 저/정진호 그림/박재호 감수
- 출판사
- 책만
- 출판일
- 2024-09-02
- 등록일
- 2024-12-03
- 파일포맷
- PDF
- 파일크기
- 42MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
트랜스포머 아키텍처부터 RAG 개발, 모델 학습, 배포, 최적화, 운영까지 라마인덱스와 LLM을 활용한 AI 애플리케이션 개발의 모든 것이 책에서는 LLM의 기본 아키텍처에서 출발해 애플리케이션의 요구사항에 맞춰 LLM을 길들이고 제한된 컴퓨팅 환경에서 동작하게 경량화해서 원활하게 서빙하게끔 기초를 다진 다음에 RAG라는 LLM의 대표적인 애플리케이션을 만드는 방법을 차근차근 설명한다. 여기서 끝나지 않고 실제 운영과정에서 부딪히는 어려움을 해소하는 방법과 멀티 모달과 더불어 에이전트와 같은 고급 주제까지 다룬다. LLM 시대를 맞이하여 필수적으로 갖춰야 하는 개발 지식을 이론과 실무 양쪽 관점에서 설명하고 있으므로, 새로운 패러다임에 적응하고자 하는 개발자들에게 가뭄의 단비처럼 다가올 것이다.
저자소개
서울대학교 기계항공공학부를 졸업하고 롯데면세점 빅데이터팀 데이터 분석가를 거쳐 현재는 프리랜서 마켓 크몽에서 AI 엔지니어로 일하고 있다. 『파이토치 라이트닝으로 시작하는 딥러닝』을 번역했으며, 최근에는 LLM을 활용한 어시스턴트(에이전트) 개발에 관심이 많다.
목차
[1부] LLM의 기초 뼈대 세우기1장 LLM 지도1.1 딥러닝과 언어 모델링__1.1.1 데이터의 특징을 스스로 추출하는 딥러닝__1.1.2 임베딩: 딥러닝 모델이 데이터를 표현하는 방식__1.1.3 언어 모델링: 딥러닝 모델의 언어 학습법1.2 언어 모델이 챗GPT가 되기까지__1.2.1 RNN에서 트랜스포머 아키텍처로__1.2.2 GPT 시리즈로 보는 모델 크기와 성능의 관계__1.2.3 챗GPT의 등장1.3 LLM 애플리케이션의 시대가 열리다__1.3.1 지식 사용법을 획기적으로 바꾼 LLM__1.3.2 sLLM: 더 작고 효율적인 모델 만들기__1.3.3 더 효율적인 학습과 추론을 위한 기술__1.3.4 LLM의 환각 현상을 대처하는 검색 증강 생성(RAG) 기술1.4 LLM의 미래: 인식과 행동의 확장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.7 BERT, GPT, T5 등 트랜스포머를 활용한 아키텍처__2.7.1 인코더를 활용한 BERT__2.7.2 디코더를 활용한 GPT__2.7.3 인코더와 디코더를 모두 사용하는 BART, T52.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.3 PPO: 보상 해킹 피하기__4.2.4 RLHF: 멋지지만 피할 수 있다면…4.3 강화 학습이 꼭 필요할까?__4.3.1 기각 샘플링: 단순히 가장 점수가 높은 데이터를 사용한다면?__4.3.2 DPO: 선호 데이터셋을 직접 학습하기__4.3.3 DPO를 사용해 학습한 모델들4.4 정리[2부 LLM 길들이기]5장 GPU 효율적인 학습5.1 GPU에 올라가는 데이터 살펴보기__5.1.1 딥러닝 모델의 데이터 타입__5.1.2 양자화로 모델 용량 줄이기__5.1.3 GPU 메모리 분해하기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.2 LoRA 설정 살펴보기__5.4.3 코드로 LoRA 학습 사용하기5.5 효율적인 학습 방법(PEFT): QLoRA__5.5.1 4비트 양자화와 2차 양자화__5.5.2 페이지 옵티마이저__5.5.3 코드로 QLoRA 모델 활용하기5.6 정리6장 sLLM 학습하기6.1 Text2SQL 데이터셋__6.1.1 대표적인 Text2SQL 데이터셋__6.1.2 한국어 데이터셋__6.1.3 합성 데이터 활용6.2 성능 평가 파이프라인 준비하기__6.2.1 Text2SQL 평가 방식__6.2.2 평가 데이터셋 구축__6.2.3 SQL 생성 프롬프트__6.2.4 GPT-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.3 GPU 구조와 최적의 배치 크기__7.1.4 KV 캐시 메모리 줄이기7.2 양자화로 모델 용량 줄이기__7.2.1 비츠앤바이츠__7.2.2 GPTQ__7.2.3 AWQ7.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.2 LLM 캐시__9.2.1 LLM 캐시 작동 원리__9.2.2 실습: OpenAI API 캐시 구현9.3 데이터 검증__9.3.1 데이터 검증 방식__9.3.2 데이터 검증 실습9.4 데이터 로깅__9.4.1 OpenAI API 로깅__9.4.2 라마인덱스 로깅9.5 정리10장 임베딩 모델로 데이터 의미 압축하기10.1 텍스트 임베딩 이해하기__10.1.1 문장 임베딩 방식의 장점__10.1.2 원핫 인코딩__10.1.3 백오브워즈__10.1.4 TF-IDF__10.1.5 워드투벡10.2 문장 임베딩 방식__10.2.1 문장 사이의 관계를 계산하는 두 가지 방법__10.2.2 바이 인코더 모델 구조__10.2.3 Sentence-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.1 BM25 구현하기__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.2 MNR 손실을 활용해 미세 조정하기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.1 KNN 검색과 그 한계__12.2.2 ANN 검색이란__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.3 GPT-4o로 이미지 설명 생성하기__12.5.4 프롬프트 저장__12.5.5 이미지 임베딩 검색__12.5.6 DALL-E 3로 이미지 생성12.6 정리13장 LLM 운영하기13.1 MLOps__13.1.1 데이터 관리__13.1.2 실험 관리__13.1.3 모델 저장소__13.1.4 모델 모니터링13.2 LLMOps는 무엇이 다를까?__13.2.1 상업용 모델과 오픈소스 모델 선택하기__13.2.2 모델 최적화 방법의 변화__13.2.3 LLM 평가의 어려움13.3 LLM 평가하기__13.3.1 정량적 지표__13.3.2 벤치마크 데이터셋을 활용한 평가__13.3.3 사람이 직접 평가하는 방식__13.3.4 LLM을 통한 평가__13.3.4 RAG 평가13.4 정리[4부] 멀티 모달, 에이전트 그리고 LLM의 미래14장 멀티 모달LLM 14.1 멀티 모달 LLM이란__14.1.1 멀티 모달 LLM의 구성요소__14.1.2 멀티 모달 LLM 학습 과정14.2 이미지와 텍스트를 연결하는 모델: CLIP__14.2.1 CLIP 모델이란__14.2.2 CLIP 모델의 학습 방법__14.2.3 CLIP 모델의 활용과 뛰어난 성능__14.2.4 CLIP 모델 직접 활용하기14.3 텍스트로 이미지를 생성하는 모델: DALL-E__14.3.1 디퓨전 모델 원리__14.3.2 DALL-E 모델14.4 LLaVA__14.4.1 LLaVA의 학습 데이터__14.4.2 LLaVA 모델 구조__14.4.3 LLaVA 1.5__14.4.4 LLaVA NeXT14.5 정리15장 LLM 에이전트15.1 에이전트란__15.1.1 에이전트의 구성요소__15.1.2 에이전트의 두뇌__15.1.3 에이전트의 감각__15.1.4 에이전트의 행동15.2 에이전트 시스템의 형태__15.2.1 단일 에이전트__15.2.2 사용자와 에이전트의 상호작용__15.2.3 멀티 에이전트15.3 에이전트 평가하기15.4 실습: 에이전트 구현__15.4.1 AutoGen 기본 사용법__15.4.2 RAG 에이전트__15.4.3 멀티 모달 에이전트15.5 정리16장 새로운 아키텍처 16.1 기존 아키텍처의 장단점16.2 SSM__16.2.1 S416.3 선택 메커니즘16.4 맘바__16.4.1 맘바의 성능__16.4.2 기존 아키텍처와의 비교16.5 코드로 보는 맘바부록 | 실습을 위한 준비사항A.1 구글 코랩 사용법A.2 허깅페이스 토큰A.3 OpenAI 토큰