▣ 1장: 깨어난 단어들: LLM이 주목받는 이유
1.1 LLM이 가속하는 의사소통
1.2 LLM을 직접 구축할 것인가, 아니면 구매할 것인가
__1.2.1 구매: 잘 닦인 길
__1.2.2 자체 구축: 덜 다듬어진 길
__1.2.3 경고 한마디: 지금 당장 미래를 받아들여라
1.3 미신 타파
요약
▣ 2장: LLM의 이해: 언어 모델링 심층 탐구
2.1 언어 모델링
2.1.1 언어적 특징들
__2.1.2 기호학
__2.1.3 다국어 NLP
2.2 언어 모델링 기법들
__2.2.1 N-그램과 말뭉치 기반 기법
__2.2.2 베이즈 기법
__2.2.3 마르코프 연쇄
__2.2.4 연속 언어 모델링
__2.2.5 임베딩
__2.2.6 다층 퍼셉트론(MLP)
__2.2.7 순환 신경망(RNN)과 장단기 메모리(LSTM) 네트워크
__2.2.8 주의 메커니즘
2.3 “Attention Is All You Need”(필요한 것은 주의뿐이다)
__2.3.1 인코더
__2.3.2 디코더
__2.3.3 트랜스포머
2.4 아주 큰 트랜스포머 모델
요약
▣ 3장: LLM옵스: LLM을 위한 플랫폼 구축
3.1 LLM옵스의 소개
3.2 LLM의 운영에 따르는 난제들
__3.2.1 긴 다운로드 시간
__3.2.2 더 긴 배포 시간
__3.2.3 지연 시간
__3.2.4 GPU 관리
__3.2.5 텍스트 데이터의 특수성
__3.2.6 토큰 한계에 의한 병목현상
__3.2.7 환각으로 인한 혼란
__3.2.8 편향성과 윤리적 고려사항
__3.2.9 보안 우려사항
__3.2.10 비용 관리
3.3 LLM옵스의 핵심 요소
__3.3.1 압축
__3.3.2 분산 컴퓨팅
3.4 LLM옵스 인프라
__3.4.1 데이터 인프라
__3.4.2 실험 추적기
__3.4.3 모델 레지스트리
__3.4.4 특징 저장소
__3.4.5 벡터 데이터베이스
__3.4.6 모니터링 시스템
__3.4.7 GPU 지원 워크스테이션
__3.4.8 배포 서비스
요약
▣ 4장: LLM을 위한 데이터 엔지니어링: 성공을 위한 준비
4.1 기초로서의 모델
__4.1.1 GPT
__4.1.2 BLOOM
__4.1.3 라마
__4.1.4 위저드
__4.1.5 팰콘
__4.1.6 비쿠나
__4.1.7 돌리
__4.1.8 오픈챗
4.2 LLM 평가
__4.2.1 텍스트 평가를 위한 지표들
__4.2.2 업계 주요 벤치마크들
__4.2.3 책임 있는 AI 벤치마크들
__4.2.4 자체 벤치마크 개발
__4.2.5 코드 생성기의 평가
__4.2.6 모델 매개변수 평가
4.3 LLM을 위한 데이터
__4.3.1 알아야 할 데이터셋들
__4.3.2 데이터 정제와 준비
4.4 텍스트 처리
__4.4.1 토큰화
__4.4.2 임베딩
4.5 슬랙 데이터셋 준비
요약
▣ 5장: LLM의 훈련: 생성기를 만드는 방법
5.1 다중 GPU 환경
__5.1.1 환경 설정
__5.1.2 라이브러리
5.2 기본 훈련 기법
__5.2.1 밑바닥부터 훈련하기
__5.2.2 전이 학습(미세조정)
__5.2.3 프롬프팅
5.3 고급 훈련 기법들
__5.3.1 프롬프트 조정
__5.3.2 지식 증류를 활용한 미세조정
__5.3.3 RLHF(인간 피드백 기반 강화학습)
__5.3.4 전문가 혼합(MoE)
__5.3.5 LoRA와 PEFT
5.4 훈련 관련 팁과 트릭
__5.4.1 훈련 데이터 크기에 관한 참고사항
__5.4.2 효율적인 훈련
__5.4.3 극솟값의 함정
__5.4.4 초매개변수 조정 팁
__5.4.5 운영체제에 관한 참고사항
__5.4.6 활성화 함수 조언
요약
▣ 6장: LLM 서비스 만들기: 실제 가이드
6.1 LLM 서비스 만들기
__6.1.1 모델 컴파일
__6.1.2 LLM 저장 전략
__6.1.3 적응형 요청 배치 처리
__6.1.4 흐름 제어
__6.1.5 응답 스트리밍
__6.1.6 특징 저장소
__6.1.7 RAG(검색 증강 생성)
__6.1.8 LLM 서비스 라이브러리
6.2 인프라 구축
__6.2.1 클러스터 준비
__6.2.2 자동확장
__6.2.3 롤링 업데이트
__6.2.4 추론 그래프
__6.2.5 모니터링
6.3 프로덕션의 난제들
__6.3.1 모델 갱신 및 재훈련
__6.3.2 부하 테스트
__6.3.3 지연 시간 문제 해결
__6.3.4 자원 관리
__6.3.5 비용 엔지니어링
__6.3.6 보안
6.4 엣지 배포
요약
▣ 7장: 프롬프트 엔지니어링: LLM 조련사가 되려면
7.1 모델 프롬프팅
__7.1.1 퓨샷 프롬프팅
__7.1.2 원샷 프롬프팅
__7.1.3 제로샷 프롬프팅
7.2 프롬프트 엔지니어링의 기초
__7.2.1 프롬프트의 해부
__7.2.2 프롬프트 초매개변수들
__7.2.3 훈련 데이터 살펴보기
7.3 프롬프트 엔지니어링 도구
__7.3.1 랭체인
__7.3.2 가이던스
__7.3.3 DSPy
__7.3.4 다른 도구들도 있지만…
7.4 고급 프롬프트 엔지니어링 기법
__7.4.1 LLM에 도구 제공하기
__7.4.2 ReAct
요약
▣ 8장: LLM 애플리케이션: 상호작용 경험 구축
8.1 애플리케이션 만들기
__8.1.1 프런트엔드에서의 스트리밍
__8.1.2 대화 기록 유지
__8.1.3 챗봇 상호작용 기능
__8.1.4 토큰 카운터
__8.1.5 RAG 적용
8.2 엣지 애플리케이션
8.3 LLM 에이전트
요약
▣ 9장: LLM 프로젝트 만들기: 라마3의 재구현
9.1 메타의 라마 재구현
__9.1.1 토큰화 및 설정
__9.1.2 데이터셋 준비, 데이터 적재, 평가, 생성
__9.1.3 모델 아키텍처
9.2 간소화된 라마3
9.3 모델 개선
__9.3.1 양자화
__9.3.2 LoRA
__9.3.3 FSDP QLoRA 적용
9.4 허깅 페이스 스페이스에 모델 배포
요약
▣ 10장: 코딩 코파일럿 프로젝트 만들기: 실제로 도움이 될까?
10.1 예제 모델
10.2 데이터가 왕이다
__10.2.1 예제 벡터 DB
__10.2.2 예제 데이터셋
__10.2.3 RAG 적용
10.3 VS 코드 확장 프로그램 만들기
10.4 배운 교훈과 다음 단계
요약
▣ 11장: 라즈베리 파이에 LLM 배포하기: 얼마나 작게 만들 수 있을까?
11.1 라즈베리 파이 설정
__11.1.1 파이 이미저를 이용한 OS 이미지 준비
__11.1.2 파이에 연결하기
__11.1.3 소프트웨어 설치 및 갱신
11.2 모델 준비
11.3 모델 서빙
11.4 개선사항
__11.4.1 더 나은 인터페이스
__11.4.2 양자화 변경
__11.4.3 다중 모달 추가
__11.4.4 구글 코랩에서 모델 서빙
요약
▣ 12장: 프로덕션, 끊임없이 변화하는 풍경: 이제 시작일 뿐이다
12.1 전체적인 조망
12.2 LLM의 미래
__12.2.1 정부와 규제
__12.2.2 계속 커지는 LLM
__12.2.3 다중 모달 공간
__12.2.4 데이터셋
__12.2.5 환각 문제의 해결
__12.2.6 새로운 하드웨어
__12.2.7 에이전트의 유용성이 입증될 것이다
12.3 마무리 의견
요약
▣ 부록A: 간략한 언어학 역사
A.1 고대 언어학
A.2 중세 언어학
A.3 르네상스와 근현대 언어학
A.4 20세기 초 언어학
A.5 20세기 중반과 현대 언어학
▣ 부록B: RLHF(인간 피드백 기반 강화학습)
▣ 부록C: 다중 모달 잠재 공간