본문 바로가기
+ 펴낸 책

LLM을 활용한 실전 AI 애플리케이션 개발

by 책만 2024. 7. 16.

 LLM을 활용한 실전 AI 애플리케이션 개발 

LLM의 기본부터 모델 학습, 임베딩,
벡터 데이터베이스로 만드는 RAG까지

허정준 지음 | 정진호 그림 | 박재호 감수
556쪽 | 32,000원 | 2024년 7월 25일 출간 | 184*240*27 | ISBN 9791189909703 (93000)


판매처 | [교보문고] [YES24] [알라딘] [영풍문고] [인터파크] + 전국 교보/영풍문고 매장

전자책 판매처 | [교보문고] [YES24] [알라딘] [리디북스] | ISBN 9791189909734 | 2024년 9월 2일 출간 | PDF 포맷 

 

★ 정오표: https://www.onlybook.co.kr/entry/llm-errata 

깃허브 소스코드 페이지: https://github.com/onlybooks/llm

 도서 내용에 관한 질문과 답변: https://github.com/onlybooks/llm/issues

언론 보도 기사: [LLM을 활용한 실전 AI 애플리케이션 개발] 보도 기사

 

트랜스포머 아키텍처부터
RAG 개발, 모델 학습, 배포, 최적화, 운영까지
라마인덱스(LlamaIndex)와 LLM을 활용한
AI 애플리케이션 개발의 모든 것


이 책에서는 LLM의 기본 아키텍처에서 출발해 애플리케이션의 요구사항에 맞춰 LLM을 길들이고 제한된 컴퓨팅 환경에서 동작하게 경량화해서 원활하게 서빙하게끔 기초를 다진 다음에 RAG라는 LLM의 대표적인 애플리케이션을 만드는 방법을 차근차근 설명한다. 또한, 실제 운영과정에서 부딪히는 어려움을 해소하는 방법과 멀티 모달과 더불어 에이전트와 같은 고급 주제까지 다룬다. 


LLM 시대를 맞이해 필수적으로 갖춰야 하는 개발 지식을 이론과 실무 양쪽 관점에서 설명하므로, 새로운 패러다임에 적응하고자 하는 개발자들에게 가뭄의 단비와도 같을 책이다. 

 

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


이 책의 대상 독자

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

깃허브 실습 코드 다운로드 

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

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

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

이 책의 구성

[1부] LLM의 기초 뼈대 세우기
1장 ‘LLM 지도’에서는 대규모 언어 모델이라는 빠르게 발전하고 있는 분야에서 독자들이 길을 잃지 않도록 큰 흐름을 먼저 살펴본다. 1장을 통해 LLM 지도를 얻고 나면 이 책과 LLM에 대해 큰 줄기를 잡을 수 있다.
2장 ‘LLM의 중추, 트랜스포머 아키텍처 살펴보기’에서는 현대 LLM의 기반이 되는 트랜스포머 아키텍처를 알아본다. 트랜스포머 아키텍처는 처음 접했을 때 직관적으로 이해하기가 쉽지는 않지만, 친절한 설명과 함께 코드 레벨에서도 살펴봄으로써 트랜스포머 아키텍처라는 큰 산을 넘어가도록 돕는다.
3장 ‘트랜스포머 모델을 다루기 위한 허깅페이스 트랜스포머 라이브러리’에서는 트랜스포머 아키텍처 기반 모델을 쉽게 활용할 수 있도록 도와주는 허깅페이스의 트랜스포머 라이브러리 사용법을 알아본다. 허깅페이스 트랜스포머 라이브러리는 오픈소스 LLM을 활용할 때 자주 사용되며 이제는 거의 표준에 가까운 라이브러리가 됐다. 3장에서 라이브러리 사용법을 잘 익히고 나면, 다양한 모델을 거의 동일한 방법으로 활용할 수 있다.
4장 ‘말 잘 듣는 모델 만들기’에서는 말을 ‘잘 만들기만 하던’ 언어 모델이 어떻게 사용자의 말을 ‘잘 듣고 지시에 따르는’ 모델로 바뀌었는지 살펴본다. 2022년 11월 공개된 OpenAI의 챗GPT는 사용자의 말을 찰떡같이 알아듣고 사용자의 지시에 따라 응답함으로써 가장 성공적인 AI 제품이 됐다. 4장에서는 OpenAI가 어떻게 챗GPT같이 말 잘 듣는 모델을 만들었는지 살펴본다.

[2부] LLM 길들이기
5장 ‘GPU 효율적인 학습’에서는 LLM처럼 파라미터가 많고 용량이 큰 모델을 작은 GPU에서도 학습시킬 수 있는 방법을 알아본다. 이 책에서 개발 환경으로 사용하는 구글 코랩(Colab)은 무료 버전에서는 메모리가 16GB인 GPU를 지원한다. 모델 자체의 용량만 10GB가 넘는 언어 모델을 어떻게 메모리가 16GB인 작은 GPU에서 학습시킬 수 있는지 5장에서 확인할 수 있다.
6장 ‘sLLM 학습하기’에서는 직접 작은 언어 모델(sLLM)을 실습데이터로 학습시켜 자연어에서 SQL을 생성하는 Text2SQL 모델을 만들어 본다. Text2SQL 모델은 기업에서 자주 발생하는 데이터 추출 요청을 언어 모델이 수행함으로써 데이터 조직의 생산성을 높이고 SQL에 익숙하지 않은 팀원의 데이터 접근성을 높이는 데 기여할 수 있다. 6장에서는 LLM을 통한 학습 데이터의 생성과 LLM미세 조정을 통해 준수한 성능의 sLLM을 만드는 방법을 알아본다.
7장 ‘모델 가볍게 만들기’에서는 언어 모델을 작게 만드는 방법과 효율적으로 추론하도록 만드는 방법을 알아본다. sLLM을 활용하는 경우 대부분의 GPU 비용은 학습이 아닌 서빙에서 발생한다. 따라서 학습시킨 모델을 작게 만들고 효율적으로 추론하도록 만들어서 GPU 비용을 크게 낮출 수 있다. 7장에서는 비용 효율적으로 LLM을 서빙하기 위한 다양한 방법을 살펴본다.
8장 ‘sLLM 서빙하기’에서는 LLM을 효율적으로 서빙할 수 있도록 도와주는 vLLM 라이브러리를 활용해 LLM을 서빙하는 방법을 알아본다. 6장에서 학습시킨 모델을 허깅페이스 트랜스포머 라이브러리로 실행할 때와 vLLM으로 실행할 때의 속도 차이를 확인함으로써 vLLM의 강력함을 확인할 수 있다.

[3부] LLM을 활용한 실전 애플리케이션 개발
9장 ‘LLM 애플리케이션 개발하기’에서는 LLM 애플리케이션을 개발하기 위해 모델 이외에도 다양한 구성요소가 필요하다는 사실을 살펴본다. LLM 애플리케이션은 중심이 되는 모델과 모델에 최신 정보나 조직의 내부 정보를 추가하는 검색 증강 생성, LLM 추론 비용을 줄이는 LLM 캐시, 생성된 결과를 검토하는 데이터 검증 등이 필요한다.
10장 ‘임베딩 모델로 데이터 의미 압축하기’에서는 검색 증강 생성에서 정보를 저장하고 검색할 때 사용하는 임베딩 모델에 대해 알아본다. 임베딩이란 데이터의 의미를 유지하면서 숫자의 배열인 벡터 형태로 변환하는 방법을 말한다. 임베딩 모델을 활용해 텍스트 데이터를 벡터로 변환하면 의미적으로 유사하거나 관련 있는 데이터를 검색해 활용할 수 있다.
11장 ‘자신의 데이터에 맞춘 임베딩 모델 만들기: RAG 개선하기’에서는 10장에서 살펴본 임베딩 모델을 자신의 데이터에 맞춰 미세 조정할 수 있는 방법을 알아본다. 검색 증강 생성을 활용하려는 데이터가 임베딩 모델을 학습할 때 사용되지 않은 기업의 내부 데이터이거나 최신의 데이터라면, 기존에 학습된 임베딩 모델을 활용할 경우 검색 성능이 만족스럽지 않을 수 있다. 그런 경우 임베딩 모델을 자신의 데이터에 맞춰 추가 학습함으로써 검색 성능을 높일 수 있다. 또 검색 쿼리와 검색 문서를 직접 비교해서 관련도(relevancy)에 따라 검색 순위를 재조정하는 리랭커(Reranker)를 활용해 검색 성능을 높이는 방법도 살펴본다.
12장 ‘벡터 데이터베이스로 확장하기: RAG 구현하기’에서는 벡터로 변환된 텍스트 임베딩을 저장하고 검색할 때 사용하는 특수한 데이터베이스인 벡터 데이터베이스에 대해 알아본다. 벡터 데이터베이스에서 많이 활용되는 저장 및 검색 알고리즘인 HNSW(Hierarchical Navigable Small World)의 원리와 최적화 방법을 살펴보고 대표적인 벡터 데이터베이스인 파인콘(Pinecone)을 활용해 멀티 모달 검색을 구현하는 실습을 진행한다.
13장 ‘LLM 운영하기’에서는 머신러닝 모델을 효과적으로 운영하기 위해 사용하던 MLOps를 LLM에 맞춰 확장한 LLMOps에 대해 알아본다. 기존의 머신러닝 모델과 LLM의 차이점을 통해 LLMOps에서 더 집중해야 하는 부분을 소개한다. 대표적으로 LLM은 기존 머신러닝 모델에 비해 평가하기 어렵다. 아직까지도 LLM의 평가는 정답이 없고 모두가 고민하고 있는 주제다. 13장을 통해 LLM의 평가가 왜 어려운지, LM을 평가하기 위한 여러 접근 방식을 살펴본다.

[4부] 멀티 모달, 에이전트 그리고 LLM의 미래
14장 ‘멀티 모달 LLM’에서는 텍스트 이외에 이미지를 처리하는 LLM에 대해 알아본다. 이미지와 텍스트 데이터를 함께 처리해서 동일한 임베딩 공간에서 매핑할 수 있는 OpenAI의 CLIP 모델과 텍스트 입력을 바탕으로 이미지를 생성하는 DALL-E 모델을 알아보고 이미지와 텍스트를 함께 입력으로 받아 처리하는 오픈소스 모델인 LLaVa를 통해 멀티 모달 LLM의 기본 원리를 살펴본다.
15장 ‘LLM 에이전트’에서는 LLM을 확장하는 에이전트 아키텍처에 대해 알아본다. 에이전트 아키텍처란 LLM에 장기 기억, 인터넷 검색과 같은 도구, 작업을 분해하고 순차적으로 해결하는 계획 기능 등을 추가해 LLM의 성능을 몇 단계 높이는 더 발전된 LLM 시스템이다. 15장에서는 대표적인 에이전트 라이브러리인 마이크로소프트의 AutoGen을 활용해 LLM 에이전트를 구현하는 실습을 진행한다.
16장 ‘새로운 아키텍처’에서는 입력이 길어질수록 추론에 많은 시간과 연산 비용이 드는 트랜스포머 아키텍처의 단점을 보완하기 위해 새롭게 제안된 맘바(Mamba) 아키텍처에 대해 알아본다. 맘바 아키텍처는 기존에 자연어 처리에서 사용하던 순환신경망(Recurrent Neural Network, RNN)을 변형해 추론의 효율성을 유지하면서도 트랜스포머 아키텍처와 비슷한 성능을 보여 많은 주목을 받았다. 16장에서는 맘바 아키텍처에 대해 알아보며 새로운 아키텍처의 가능성을 살펴본다.

 

부록 '실습을 위한 준비 사항'에서는 이 책의 실습을 진행할 때 필요한 사항을 소개한다. 먼저 실습 환경인 구글 코랩 사용법을 살펴본 다음, 실습에 사용한 LLM과 데이터셋을 업로드하고 다운로드할 때 필요한 허깅페이스 토큰을 확인하는 방법을 설명한다. 마지막으로 대표적인 상용 LLM API인 OpenAI의 API 토큰을 생성하고 확인하는 방법을 소개한다.


추천의 글

이 책은 최신 언어 모델의 핵심 기술과 실제 활용 방법을 체계적으로 잘 설명하고 있습니다. LLM 모델의 기초부터 트랜스포머 아키텍처, BERT, GPT, T5 등 다양한 모델에 대한 상세한 설명을 제공하며, 허깅페이스 트랜스포머 라이브러리를 활용한 실제 코드 예제를 통해 쉽게 이해할 수 있도록 돕습니다.
특히 LLM 관련 기술의 이론적 배경과 최적화를 위한 다양한 방법론을 알기 쉽게 설명하며, LLM 애플리케이션의 핵심인 RAG 구현에 대한 상세한 내용을 포함하고 있습니다. LLM과 RAG의 통합적 이해를 원하는 독자들에게 최고의 선택이 될 것입니다.
- 강재원 / 여기어때컴퍼니 DNA센터 비즈니스 인사이트팀 팀장
“대규모 언어 모델의 기초부터 실무 적용까지 한 권에 담은 완벽한 지침서”
이 책은 대규모 언어 모델(LLM)의 이론과 실무를 깊이 있게 다룹니다. 저자는 『파이토치 라이트닝으로 시작하는 딥러닝』 등 권위 있는 서적을 번역하고 수많은 강의와 논문을 연구한 딥러닝과 LLM 분야의 전문가입니다. 그의 풍부한 실무 경험과 창의적인 문제해결 능력은 자연어 처리 기술을 비자연어 및 비전통적 문제에 적용하는 독창적인 접근방식을 제시했으며, 이는 동료들에게 깊은 인상과 영감을 주었습니다.
딥러닝과 언어 모델을 포함한 자연어 기술은 꾸준히 발전해 왔지만, 챗GPT의 출현은 ‘아이폰 모멘트(iPhone Moment)’에 비유될 정도로 기술의 대중화와 삶에 혁신적 변화를 촉진하고 있습니다. 누구나 손쉽게 도구를 활용하여 기술에 접근할 수 있게 되었지만, 급변하는 환경에서 기초 개념과 기술 원리에 대한 심도 있는 이해는 여전히 필수적입니다.
이 책은 복잡한 개념을 직관적으로 설명하며, 시각 자료와 실용적인 코드 예제를 제공하여 초보자부터 전문가까지 쉽게 이해하고 활용할 수 있습니다. 또한 현업의 문제들과 최신 기술 트렌드를 포괄적으로 다루어 실무 적용에 최적화되어 있습니다.
LLM의 기초를 배우고자 하는 입문자, 최신 기술을 실무에 적용하려는 개발자, 다양한 이해관계자에게 기술을 설명하려는 전문가 및 교육자 등 기술의 본질을 이해하고 창의적인 문제 해결 능력을 키우고자 하는 모든 이에게 유용한 지침서가 될 것입니다.
- 김경문 / (주)크몽 데이터팀 리드
2024년 가장 뜨거운 키워드는 LLM과 생성형 AI이며, 이제 LLM은 주요한 IT 인프라스트럭처로 인식되고 있습니다. 기술이 발전하면서 LLM은 데이터 과학자의 전유물이 아닌 LLM 개발자, LLM 운영자, LLM 애플리케이션 개발자 등 다양한 영역에서 활용을 고민하는 키워드가 됐습니다. LLM을 활용하는 분야가 늘어나면서 LLM을 단순히 블랙박스가 아닌 기술이나 아키텍처로서 이해해야 하는 직군이 늘어가고 있습니다. 그러나 트랜스포머 기반의 LLM을 학습하기 위한 시작점을 찾기란 여전히 어려운 것이 사실입니다. 머신러닝, 딥러닝, RNN으로 시작해서 LLM까지 이해하기에는 그 여정이 너무 험난합니다.
이 책은 LLM을 깊이 있게 이해하고 싶은 분들에게 전체적인 개념과 흐름, 개념, 작업 개요를 그저 학문의 용어가 아닌 ‘실무의 용어’로 설명하는 책입니다. 현업 실무자, 그리고 신규 입문자를 위해 이론과 수식이 가득한 공간을 친숙한 용어로 풀이해 기나긴 LLM 여정을 완주할 수 있도록 돕는 것이 이 책의 장점이라고 생각합니다. LLM 인프라스트럭처를 대중화하는 실무서로서 현업에서 LLM을 활용해야 하는 분들과 새롭게 입문하시는 분들에게 강력히 추천합니다. 결코 쉽지 않은 학문 지식을 실무 정보로 흥미롭게 풀어내 주신 저자의 노력에 감사드립니다.
- 김태완 / 한국오라클 상무
LLM 기술이 빠르게 발전하는 가운데, 안타깝게도 관련 서적들은 그 속도를 따라잡지 못했다. 최신 기술은 주로 논문이나 영문 블로그를 통해 접할 수밖에 없었고 이는 책을 사랑하는 독자로서 아쉬운 일이었다. 그러나 이제 그 갈증을 해소할 수 있게 되었다.
이 책은 LLM 관련 최신 기술을 총망라할 뿐만 아니라, 영문으로도 접하기 힘든 고급정보를 우리말로 쉽게 설명해 준다. 특히 4장 ‘말 잘 듣는 모델 만들기’는 실제 챗GPT와 같은 언어 모델을 구축하는 과정을 가상의 코딩 테스트 서비스 개발에 빗대어 명쾌하고 흥미롭게 설명한다. 사전 학습, 미세 조정, 채점 모델, 강화 학습까지 전 과정을 단계별로 상세히 다루어 챗GPT의 개발 원리를 누구나 쉽게 이해할 수 있게 해준다. 더불어 정진호 작가가 직접 그린 친절한 일러스트는 복잡한 LLM의 구축 과정과 동작 원리를 시각적으로 이해하는 데 큰 도움을 준다. 이 외에도 이 책은 LLM 관련 아키텍처, 라이브러리, 최적화 기법 등 연구자와 개발자에게 필수적인 고급 정보로 가득하다.
이제 LLM은 모든 개발자에게 있어 선택이 아닌 필수 지식으로 자리 잡고 있다. 『LLM을 활용한 실전 AI 애플리케이션 개발』은 이러한 필수 핵심 지식을 쌓는 데 최적의 안내서가 될 것이다. LLM 분야에 관심 있는 독자에게, 나아가 AI와 소프트웨어 개발의 미래를 준비하는 모든 독자에게 이 책을 강력히 추천하는 바이다.
- 박상길 / 디노티시아 LLM 연구개발, 전 현대자동차 인공지능 테크리드, 『자바 알고리즘 인터뷰』 저자
이 책을 읽으면서, 2010년 초반에 딥러닝을 처음 접했을 때 이처럼 좋은 책이 있었다면 얼마나 좋았을까라는 생각을 했습니다. 당시 한글로 된 자료는 턱없이 부족했고, 논문의 복잡한 수식은 현장의 엔지니어가 이해하기에 어려웠습니다. 인터넷의 자료는 도구를 설명하는 데 그쳐서 핵심적인 개념을 습득하고 응용하는 데 많은 시간을 들여야 했습니다.
이 책은 챗GPT로 대표되는 LLM의 시대에 그때와 비슷한, LLM에 대한 갈증을 완벽하게 해소해 줍니다. 저자는 LLM에 대한 전문적인 이해를 바탕으로, 복잡한 개념을 어려운 수식 없이 누구나 이해할 수 있도록 쉽게 설명합니다. 또한 LLM의 핵심요소를 직접 구현해 보며 개념을 체득할 수 있도록 친절히 안내합니다. 그리고 당장 제품에 적용할 수 있을 정도로 높은 수준의 응용 사례를 제공합니다.
LLM의 기본 개념을 이해하고 싶거나, LLM 애플리케이션을 효과적으로 개발해야 하거나, 이미 구축한 LLM 시스템을 운영하면서 최적화가 필요한 모든 분들에게 이 책을 추천합니다.
- 송준이 / (주)크몽 CTO
이 책은 언어 모델의 기초부터 최신 기술 동향, 애플리케이션 개발 및 운영, 실전 개발 과정에서의 유의점까지, LLM에 대한 거의 모든 것을 담고 있는 백과사전 같은 가이드다. 많은 내용을 다룰 뿐 아니라 트랜스포머 아키텍처의 작동 원리, 파인 튜닝 등 LLM의 핵심 기반 기술을 자세하고 친절하게 소개하고 있어, 독자들이 LLM 기술에 대한 통찰력을 가질 수 있도록 도움을 준다. 이론적인 설명에 더해 실습 예제 코드로도 설명 내용을 보완하고 있기에 훨씬 이해가 잘되는 것도 이 책의 장점이다.
핵심 내용뿐만 아니라 sLLM, RAG, 멀티 모달, LLM 에이전트 등 LLM 분야의 최신 기술까지 다루므로 LLM에 대해 체계적이고 종합적으로 공부해 보고 싶다면 이 책이 좋은 교과서가 될 수 있을 것이다.
- 최재원 / 아주대학교 교수학습개발센터 학습데이터 분석 및 AI교육 담당 연구원
이 책은 출간된 현재 시점에서 대규모 언어 모델에 대해 우리가 알아야 할 거의 모든 부분을 다룬다. 만약 신경망 유닛이나 역전파와 정규화나 텐서 연산 등 기초적인 인공지능 개념에 대해 파악했고 파이토치 등을 통해 기본적인 학습과 추론을 사용해 본 독자라면 이제 이 책의 내용을 소화할 차례다. AI 분야의 인재가 부족한 상황에서 이렇게 자세하고 친절하게 그리고 최신 내용을 모두 포함해 언어 모델을 설명한 도서라니 목차부터 매력적이지 않을 수 없다.
이 책은 순환신경망, 어텐션, 트랜스포머, BERT, 임베딩, 파인 튜닝과 RLHF 그리고 LoRA 등의 생성형 AI 학습의 역사와 모델 훈련과 추론에 대한 세세한 내용을 자세히 다룬다. 동시에, 반향을 일으켰던 여러 논문들도 소개하며 실제 모델 훈련 예제까지 알려준다. 모델을 연구 개발하면서 참조하게 될 허깅페이스와 깃허브의 여러 유용한 데이터와 라이브러리까지 소개하고 있으니, 본격적으로 LLM에 발을 들여놓은 분이나 이미 알고 있더라도 관련 지식을 한번 정리하고 싶은 사람에게 많은 도움이 될 것으로 보인다. 실제 훈련 과정에서 GPU를 효율적으로 활용하는 방법에 대한 내용까지 다루며, 만들어진 모델이 최신 지식을 참조해 답을 할 수 있도록 RAG를 적용하는 방법과 에이전트로 만들어진 모델의 평가와 트랜스포머 이후의 아키텍처 등 이 분야의 향후 발전 방향까지도 가늠할 수 있도록 충실하게 채운 저자의 노력이 독자에게 큰 배움을 선사하며 빛을 발하리라 기대한다.
- 현동석 / 네이버 서치 데이터 리더
LLM(대규모 언어 모델) 인공지능 기술은 그 복잡성과 눈부신 발전 속도로 인해 종합적으로 파악하기 매우 어려운 분야입니다. 이러한 상황에서 이 책을 접하게 된 것은 저에게도 큰 기쁨이었습니다.
저자는 먼저 LLM 기술의 전체적인 큰 그림을 명쾌하게 제시한 후, 각 요소 기술을 깊이 있게 다룹니다. 또한 각 기술이 본질적으로 복잡해서 스스로 이해하거나 남에게 설명해 주기가 꽤 어려움에도 불구하고, 독자들을 배려하여 최대한 쉽게 설명합니다. 이러한 접근 방식 덕분에 저 또한 각 기술을 이해하는 데 큰 도움을 받았습니다.
급변하는 LLM 기술 분야에서 이 책은 포괄적이면서도 깊이 있는 이해를 제공하기에, 이 분야에 대한 체계적인 지식을 갖추고자 하는 이에게 훌륭한 길잡이가 될 것입니다. AI와 LLM 기술에 관심 있는 독자들에게 이 책을 진심으로 추천합니다.
- 잔재미코딩 데이브 리(Dave Lee) / 노이먼스 & 튜링스 CTO
허정준님의 책은 LLM의 중추가 되는 트랜스포머 아키텍처부터 오픈소스 LLM의 활용과 미세 조정, 라마인덱스를 활용한 RAG 구현과 개선, 멀티모달 LLM과 에이전트까지 폭넓은 주제를 알차게 구성해 다루고 있습니다. 주요 핵심 개념들을 이해하기 쉽게 정리하고 실무자들이 손쉽게 따라할 수 있게 한 점이 특히 인상적이었습니다. 
실무에 유용한 RAG 프로젝트 실습과 MLOps, LLMOps에 대한 소개는 이 책의 큰 강점으로, 실무에 바로 적용할 수 있는 지식을 제공합니다. LLM에 입문하고자 하는 사회 초년생과 현업 개발자 모두에게 강력히 추천합니다.
- 송호연 / Contxts.io (NFTBank) VP of AIOps

 

지은이 허정준

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

이 글을 작성하는 2024년 7월 현재, AI와 LLM 시장의 키워드는 ‘멀티 모달(multi-modal), 에이전트(agent), 온디바이스(AIon-device AI)’라고 할 수 있습니다. 멀티 모달은 AI 모델이 텍스트뿐만 아니라 이미지, 음성, 동영상 등 다양한 형식의 데이터를 처리하는 것을 말하고, 에이전트는 AI 모델이 장기 기억을 가지고 인터넷 검색, 코드 실행 등 다양한 도구를 활용해 사용자의 문제를 해결하는 더 발전된 시스템을 말합니다. 온디바이스 AI는 AI 모델이 클라우드나 고성능의 서버에서 실행되는 것이 아니라 사용자의 장비에서 직접 실행되는 것을 말합니다. 사용자의 정보가 장비 외부로 나가지 않기 때문에 사용자가 개인정보의 유출을 걱정하지 않고 AI 모델을 활용할 수 있다는 장점이 있습니다. 이런 LLM 시장의 큰 흐름은 최근 AI 선두 기업들이 공개한 모델이나 프로젝트를 통해 확인할 수 있습니다.
2024년 5월, OpenAI는 보고 듣고 말할 수 있는 새로운 언어 모델인 GPT-4o를 공개했습니다. 하루 뒤에 구글 딥마인드는 거의 동일한 기능을 하는 멀티 모달 에이전트인 프로젝트 아스트라(Astra)를 공개했습니다. 2024년 6월, 앤트로픽(Anthropic)은 OpenAI의 GPT-4o를 뛰어넘는 클로드 3.5 소넷(Sonnet) 모델을 공개했습니다. 소넷은 앤트로픽의 중간 레벨의 모델명입니다. 따라서 앞으로 나올 고성능 모델인 클로드 3.5 오퍼스Opus가 얼마나 뛰어날지 기대하게 만듭니다.
2024년 6월, 애플은 자신들의 디바이스에서 동작하는 AI 기능을 통칭해 애플 인텔리전스(Apple Intelligence)라는 이름으로 발표했습니다. 챗GPT 공개 이후 애플이 AI 연구와 개발에 뚜렷한 움직임을 보이지 않아 많은 사람이 애플이 AI 시대에 주도권을 잃는 것이 아닌가 생각했습니다. 하지만 애플은 인공지능을 의미하는 AI를 애플 인텔리전스로도 읽을 수 있다는 도발적인 이름을 사용하며 자신감을 드러냈고 시장도 많은 기대감을 보이고 있습니다.
지금까지 언급한 핵심 키워드를 이해하기 위해서는 대규모 언어 모델(Large Language Model)을 포함한 최신 AI 모델 자체를 이해하고 AI 모델을 활용하는 방법에 대해 알아야 합니다. 
이 책에서는 독자들이 최근의 AI 시장 흐름을 따라갈 수 있도록 모델 자체와 모델의 활용, 두 가지 측면을 모두 다룹니다. 책의 앞부분인 1부와 2부(1장~8장)는 LLM의 원리와 모델을 학습하는 방법, 추론하는 방법 등 모델 자체를 깊이 이해할 수 있도록 소개합니다. 책의 3부(9장~13장)는 LLM을 활용해 애플리케이션을 개발할 때 필요한 구성요소와 검색 증강 생성(Retrieval Augmented Generation, RAG)에 대해 알아봅니다. 마지막으로 4부(14장~16장)에서는 멀티 모달과 에이전트 그리고 새롭게 연구되는 LLM 아키텍처를 소개하며 LLM의 가까운 미래를 살펴볼 수 있는 개념을 소개합니다.


일러스트 정진호

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

감수의 글

LLM 애플리케이션 개발을 논하기에 앞서, LLM 애플리케이션이 사람들의 관심을 끌 수밖에 없는 이유에 대해 생각해 볼 필요가 있다. 현재까지 수많은 기술들이 등장했다 사라져 갔는데, 오늘날에도 여전히 사용되고 있는 주요 기술은 개발이나 사용 패러다임을 크게 발전시켰다는 특징이 있다. 그렇다면 LLM 애플리케이션이 주력으로 자리 잡아 개발자 두뇌 속의 필수 공구상자에 들어갈지를 판단하기 위해, 우선 어떤 변화가 일어나고 있는지를 살펴보면 될 것 같다. 
먼저 사용자 쪽의 변화부터 시작하자. 지금도 그렇지만 사람들이 뭔가 지식을 획득하기 위해서는 검색을 염두에 둬야 한다. 사용자가 검색 엔진에 키워드나 단어의 조합을 넣으면 마법처럼 해당하는 문서 목록이 나온다. 초기에는 사람들이 전화번호부처럼 한 땀 한 땀 구성해서 품질을 높였지만, 곧바로 정보의 홍수 시대가 도래하면서 필연적으로 자동화가 진행되었고, 가장 대표적인 알타비스타 계열의 검색 엔진은 검색 결과 목록 순위를 매기는 알고리즘이 뛰어나지 않았기에 수많은 목록을 직접 살펴봐야 했었다. 그러다가 우리가 지금도 크게 의존하고 있는 구글이 등장하면서 첫 페이지만 봐도 원하는 목록을 찾을 수 있도록 검색 품질을 크게 개선했다. 
하지만 최근에는 검색이 아니라 질문으로 초점이 옮겨가고 있다. 급격하게 돌아가는 바쁜 현대사회에서 목록을 하나씩 열어보는 행위조차도 부담스러워지고 검색 엔진 최적화를 빙자한 오용 사례로 인해 검색 결과 품질도 과거에 비해 지속적으로 하락하는 경향이 있으므로, 차라리 질문을 던진 다음에 내가 원하는 대답을 얻고 싶어 하는 욕구와 맞아떨어졌다고 볼 수 있다. 챗GPT나 구글 제미나이의 경우를 보면 멀티 모달까지 지원하므로 이미지와 텍스트를 조합해서 원하는 질문을 주고받을 수 있게 됐다. 
다음으로 머신러닝과 딥러닝의 변화를 살펴볼 필요가 있다. 생성형 AI와 초거대 언어 모델(이하 LLM)이 등장하기 전까지는 대다수 머신러닝이나 딥러닝 모델은 도메인 전용 모델이었다. 다시 말해, 해당 도메인에서 축적된 데이터를 활용해 예측을 하고 통찰을 할 수 있게 협소한 범위의 문제를 제대로 풀도록 연구 개발이 진행됐다. 물론 딥러닝 세상이 시작될 무렵에 이미 빅데이터, 클라우드, GPU 인프라는 있었지만 이를 범용 목적으로 확장할 기술적이고 경제적인 돌파구를 찾지는 못했던 것이다. 예를 들어, 이미지 분야에서는 MNIST 데이터셋을 활용한 숫자 판단과 CIFAR-10 데이터셋을 활용한 다양한 클래스 판단을 시작으로, 실시간으로 객체의 위치를 파악하고 클래스를 판단할 수 있는 YOLO에 이르기까지 다양한 딥러닝 모델이 등장했지만 모두 이미지 분류에 국한된다. 
하지만 생성형 AI가 등장하면서 다양한 작업이 가능한 범용적인 모델로 발전하고 있다. 예를 들어 챗GPT는 일반적인 질문뿐만 아니라 의료나 법률 같은 전문적인 질문에도 상당히 잘 대답하며, 멀티 모달을 지원하는 GPT-4V나 4o 같은 고급 모델인 경우에는 표나 이미지에 대한 질문도 곧잘 대답한다. 또한 복잡한 계산이 필요하거나 그래프 출력이 필요한 경우에는 파이썬 코드를 실행 시점에서 만들어 격리된 환경에서 실행한 결과를 보여주기도 하므로 만능 일꾼처럼 여겨지기도 한다. 생성형 AI는 Q&A, 번역, 분류, 요약, 분석, 문체 변경, 감정 분석과 같이 다양한 사용 사례를 보여주고 있으며, 정보 지원과 의사결정 지원을 넘어서 자율적인 사리 판단을 내리는 수준으로 발전을 거듭하고 있다. 
마지막으로, 개발자들이 가장 관심이 많을 법한 개발 자체의 변화를 빠뜨릴 수는 없다. 초창기 프로그래밍은 논리 중심으로 돌아갔다. LISP와 같은 함수형 프로그래밍 언어는 수학적 이론을 바탕으로 인간의 계산 능력에 도전했으며, 포트란을 거쳐 파스칼과 C 프로그래밍 언어로 오면서 절차적 방식이 도입됐고, C++를 거쳐 자바로 오면서 객체지향 기법이 도입됐다. 다른 한편, 데이터를 중심으로 발전이 일어났다. SQL은 구조적인 방법으로 테이블 형태의 정형 데이터를 손쉽게 다루게 만들었으며, 빅데이터 시대에 접어들 면서 정형 데이터뿐만 아니라 반정형과 비정형 데이터까지 폭넓게 다룰 수 있게 됐다. 
그러던 중 최근에 생성형 AI가 등장하면서 또 다른 변화의 기류가 감지되고 있다. 컴퓨터에 밀접한 언어가 아니라 사람에 밀접한 언어를 활용해 비즈니스 로직을 구사하는 방법이 생긴 것이다! 프롬프트 엔지니어링이라고도 불리는 이런 새로운 기법은 원하는 결과를 얻기 위해 LLM의 입력을 조율하며, 출력 결과를 조정해서 원하는 결과로 유도하게 만든다. 프롬프트는 사람이 사용하는 언어에 가까우므로 적확성을 담보하기는 어렵지만 반대급부로 유연성과 확장성을 얻을 수 있으므로 기존에 상당히 까다롭던 비즈니스 로직을 손쉽게 구현할 수 있는 계기를 만들어 줬다. 
이렇듯이 생성형 AI가 등장하면서 여러 가지 변화가 일어났으므로, 개발자들도 여기에 적응하기 위한 준비가 필요하다. 기존의 웹 브라우저(또는 앱) ―WAS(웹 애플리케이션 서버)―데이터베이스(관계형 또는 NoSQL) 구조로 애플리케이션을 개발하고 있다면, 기업 요구사항에 따른 LLM의 사용 사례를 파악하고 아키텍처를 이에 맞춰 변경하는 작업이 필요하다. 특히 여기서 주목해야 하는 기술은 기업에서 최근 관심이 집중되고 있는 검색 증강 생성(이하 RAG)이다. RAG는 기업 내부의 다양한 문서와 데이터를 임베딩이라는 기술을 활용해 벡터 데이터베이스로 지식 기반을 구축한 다음에 사용자가 질문한 대답과 가장 관련이 있는 문서 조각을 지식 기반으로부터 뽑아내 LLM에게 요약 정리하게 만드는 방법으로 동작하는 애플리케이션이다. 
기존의 TF/IDF나 BM25 같은 전통적인 알고리즘에 기반한 검색 방식은 희소 벡터(sparse vector)를 사용해 문장의 단어(키워드)를 인코딩한다면, RAG에서 사용하는 의미(semantic) 검색은 고밀도 벡터(dense vector)를 사용해 단어의 추상적인 의미와 관계를 인코딩하므로 언어 처리에 강점이 있는 LLM과 궁합이 무척 잘 맞는다고 볼 수 있다. RAG는 클로드 섀넌이 1950년대에 주창한 정보 엔트로피 개념을 본격적으로 현실화하는 좋은 사례로 볼 수 있으며, 다양한 의미를 포함하는 정보를 처리하기 위해 임베딩과 LLM이라는 양대 기 술을 적절하게 조합해 최고의 성능을 이끌어 내고 있으므로 개발자들은 이 기술 생태계 자체를 살펴보는 것만으로도 많은 영감을 얻을 수 있을 것이다. 
이 책은 LLM의 기본 아키텍처에서 출발해 애플리케이션의 요구사항에 맞춰 LLM을 길들이고 제한된 컴퓨팅 환경에서 동작하게 경량화해서 원활하게 서빙하게끔 기초를 다진 다음에 RAG라는 LLM의 대표적인 애플리케이션을 만드는 방법을 차근차근 설명한다. 여기서 끝나지 않고 실제 운영 과정에서 부딪히는 어려움을 해소하는 방법과 멀티 모달과 더불어 에이전트 같은 고급 주제까지 다룬다. 즉 LLM 시대를 맞이하여 필수적으로 갖춰야 하는 개발 지식을 이론과 실무 양쪽 관점에서 설명하고 있으므로, 새로운 패러다임에 적응하고자 하는 개발자들에게 가뭄의 단비처럼 다가올 것이다. 오늘도 끊임없이 연구 개발에 정진하고 있는 모든 개발자에게 강력하게 추천한다. 
- 박재호 / <컴퓨터 vs 책> 블로그 운영자, 『클린코드 이제는 파이썬이다』(책만, 2022) 역자 

차례

[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, 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.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 AWQ
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.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 NeXT
14.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 S4
16.3 선택 메커니즘
16.4 맘바
__16.4.1 맘바의 성능
__16.4.2 기존 아키텍처와의 비교
16.5 코드로 보는 맘바

부록 | 실습을 위한 준비사항
A.1 구글 코랩 사용법
A.2 허깅페이스 토큰
A.3 OpenAI 토큰

댓글