▣ 01장: NLP의 과거와 오늘
1.1 자연어 처리 발전의 주요 이정표
1.2 초기 기계 번역의 역사와 전환점
__1.2.1 아르츠루니와 트로얀스키의 연구
__1.2.2 위버의 제안과 조지타운-IBM 실험
__1.2.3 초기 기계 번역의 한계와 새로운 전환
1.3 인공지능의 시작
__1.3.1 튜링의 질문: 기계는 생각할 수 있는가?
__1.3.2 튜링 테스트의 한계
1.4 인공지능은 어떻게 학습하는가?
__1.4.1 인공지능의 학습 메커니즘 발전 과정
__1.4.2 퍼셉트론: 인공지능 학습의 첫걸음
1.5 역전파 알고리즘: 학습의 혁명
__1.5.1 비선형성: 더 똑똑한 인공지능을 만드는 열쇠
__1.5.2 역전파 알고리즘
1.6 트랜스포머의 등장: NLP의 새로운 시대
▣ 02장: GPT
2.1 런팟 소개와 사용법
__2.1.1 런팟 회원 가입
__2.1.2 크레딧 구매
__2.1.3 포드 구성
__2.1.4 주피터 랩
2.2 데이터 준비와 모델 구성
2.3 언어 모델 만들기
__2.3.1 라이브러리 설명
__2.3.2 __init__ 함수
__2.3.3 forward 메서드
__2.3.4 generate 메서드
2.4 Optimizer 추가하기
__2.4.1 데이터를 GPU로 전달하기
__2.4.2 Loss 함수 만들기
__2.4.3 전체 코드 복습
2.5 셀프 어텐션 추가하기
__2.5.1 문자들 간에 정보를 주고받는 방식(평균 방식)
__2.5.2 행렬곱 연산으로 더 빠르게 정보를 주고받기
__2.5.3 셀프 어텐션이란?
__2.5.4 왜 dk 로 나눠야 하는가?
__2.5.5 셀프 어텐션 적용하기
2.6 멀티헤드 어텐션과 피드포워드
__2.6.1 멀티헤드 어텐션 만들기
__2.6.2 피드포워드 만들기
2.7 Blocks 만들기
2.8 토크나이저 만들기
__2.8.1 vocab_size 변화에 따른 토큰화 비교
__2.8.2 토크나이저 만들기
▣ 03장: 전체 파인튜닝
3.1 전체 파인튜닝 데이터 준비
__3.1.1 전체 파인튜닝의 원리와 종류
__3.1.2 다양한 태스크와 데이터셋
__3.1.3 데이터 전처리
3.2 Gemma와 Llama 3 모델 구조 분석
__3.2.1 Gemma 모델 구조 분석
__3.2.2 Gemma와 Gemma 2 모델 비교
__3.2.3 Llama 3 모델 구조 분석
__3.2.4 GPT, Gemma, Llama 비교
3.3 GPU 병렬화 기법
__3.3.1 데이터 병렬 처리
__3.3.2 모델 병렬화
__3.3.3 파이프라인 병렬화
__3.3.4 텐서 병렬 처리
__3.3.5 FSDP
3.4 단일 GPU를 활용한 Gemma-2B-it 파인튜닝
__3.4.1 런팟 환경 설정
__3.4.2 Gemma 모델 준비
__3.4.3 데이터셋 준비
__3.4.4 Gemma 모델의 기능 확인하기
__3.4.5 키워드 데이터 생성
__3.4.6 데이터 전처리
__3.4.7 데이터셋 분리 및 콜레이터 설정
__3.4.8 학습 파라미터 설정
__3.4.9 평가 메트릭 정의
__3.4.10 모델 학습 및 평가
__3.4.11 파인튜닝한 모델 테스트
3.5 다중 GPU를 활용한 Llama3.1-8B-instruct 파인튜닝
__3.5.1 런팟 환경 설정
__3.5.2 Llama 3.1 학습 파라미터 설정
__3.5.3 데이터셋 준비
__3.5.4 Llama 3.1 모델 파라미터 설정
__3.5.5 Llama 3.1 모델 학습 코드 살펴보기
__3.5.6 Llama 3.1 모델 학습 실행
__3.5.7 Wandb 설정과 사용
__3.5.8 학습한 Llama 3.1 모델 테스트
__3.5.9 생성된 텍스트 데이터 OpenAI로 평가하기
__3.5.10 채점 점수 구하기
▣ 04장: 효율적인 파라미터 튜닝 기법(PEFT)
4.1 LoRA 이론 및 실습
__4.1.1 LoRA 개념
__4.1.2 런팟 환경 설정
__4.1.3 Gemma-2-9B-it 모델 준비
__4.1.4 데이터 전처리
__4.1.5 LoRA 파라미터 설정
__4.1.6 모델 학습
__4.1.7 학습한 모델 테스트하기
__4.1.8 모델 성능을 OpenAI로 평가하기
4.2 QLoRA 이론 및 실습
__4.2.1 양자화의 이해
__4.2.2 런팟 환경 설정
__4.2.3 데이터셋 준비
__4.2.4 양자화 파라미터 설정
__4.2.5 모델 준비
__4.2.6 파라미터 설정
__4.2.7 모델 학습
__4.2.8 허깅페이스 허브에 모델 업로드
__4.2.9 학습한 모델 테스트
__4.2.10 Exact Match를 활용한 평가
__4.2.11 OpenAI API로 평가하기
▣ 05장: vLLM을 활용한 서빙
5.1 페이지드 어텐션 원리
5.2 vLLM 사용 방법
5.3 LLaMA3 생성 속도 가속화
5.4 vLLM을 활용한 Multi-LoRA
__5.4.1 Multi-LoRA 실습
__5.4.2 노트북 환경에서 실습
5.5 Multi-LoRA를 사용할 때 주의할 점
▣ 부록
역전파 수학적 리뷰
역전파 코드 리뷰