독서

[서평] 자연어 처리를 위한 허깅페이스 트랜스포머 하드 트레이닝 - 코드와 결과물로 이해하는 언어 모델과 트랜스포머

pizzalist 2025. 1. 31. 13:26

책소개

이 책은 허깅페이스를 처음 접하는 사람부터 트랜스포머 모델을 깊이 있게 공부하고 싶은 사람까지 모두에게 추천합니다. 또한, QLoRA, RLHF, DPO 등의 구현 코드를 직접 실습하며 직관적으로 이해하고 싶은 독자에게도 유용한 책입니다.

목차

1 자연어 처리와 허깅페이스

_1.1 허깅페이스 소개
__1.1.1 Datasets
__1.1.2 Models
__1.1.3 Spaces
__1.1.4 Docs
_1.2 자연어 처리와 허깅페이스의 관계

2 환경 구축

_2.1 구글 코랩 환경 구축
__2.1.1 계정 생성
__2.1.2 새 노트북 만들기
__2.1.3 코드 실행
__2.1.4 파일 저장
__2.1.5 깃 코드 열기
_2.2 구글 드라이브 마운트

3 허깅페이스 주요 라이브러리

_3.1 Datasets 라이브러리
__3.1.1 Datasets 설치
__3.1.2 Datasets 실습
_3.2 Transformers 라이브러리
__3.2.1 Transformers 설치
__3.2.2 Tokenizer
__3.2.3 DataCollator
__3.2.4 Model
__3.2.5 AutoClass
__3.2.6 Trainer, TrainingArguments
__3.2.7 Pipeline
_3.3 미세조정
__3.3.1 토크나이저와 모델 준비
__3.3.2 데이터 준비 및 전처리
__3.3.3 학습 파라미터 선정
__3.3.4 학습 진행
__3.3.5 성능 평가
__3.3.6 모델 저장
_3.4 허깅페이스 허브 등록
__3.4.1 push_to_hub()
__3.4.2 CLI
__3.4.3 huggingface-hub

4 보조 라이브러리

_4.1 Tokenizers 라이브러리
__4.1.1 Tokenizer 학습
__4.1.2 모델 초기화 후 학습
_4.2 Evaluate 라이브러리
__4.2.1 Evaluate 평가
__4.2.2 커스텀 메트릭 만들기
__4.2.3 Trainer 적용

5 언어 모델 구조 및 학습

_5.1 트랜스포머 모델
_5.2 인코더 기반 모델
__5.2.1 기본 구조
__5.2.2 Sequence Classification
__5.2.3 Multiple Choice
__5.2.4 Token Classification
__5.2.5 Question Answering
_5.3 디코더 기반 모델
__5.3.1 기본 구조
__5.3.2 Causal LM
__5.3.3 Question Answering
__5.3.4 Sequence Classification
_5.4 인코더-디코더 기반 모델
__5.4.1 기본 구조
__5.4.2 Conditional Generation
__5.4.3 Sequence Classification
__5.4.4 Question Answering

6 모델 활용

_6.1 모델 미세조정
__6.1.1 인코더 - Sequence Classification
__6.1.2 디코더 - Causal LM
__6.1.3 인코더-디코더 - Conditional Generation
__6.1.4 언어 모델 문장 생성
_6.2 모델 서빙

7 모델 경량화

_7.1 모델 경량화 개요
_7.2 PEFT
_7.3 양자화
_7.4 QLoRA 미세조정

8 TRL

_8.1 TRL 라이브러리 개요
_8.2 RLHF
_8.3 보상 모델 트레이닝
_8.4 SFT
_8.5 PPO
_8.6 Best-of-N 샘플링
_8.7 DPO
_8.8 KTO
_8.9 CPO
_8.10 ORPO

서평

이 책은 허깅페이스의 소개를 시작으로 환경 구축, 주요 라이브러리 사용법을 상세히 설명하며, 허깅페이스를 처음 접하는 사람들도 쉽게 따라갈 수 있도록 구성되어 있습니다. 데이터 전처리부터 학습, 모델 등록까지 전 과정을 코드와 함께 설명하기 때문에 실습을 통해 자연스럽게 익힐 수 있습니다. 특히 5장부터는 트랜스포머 모델을 본격적으로 다루며, 배경지식과 함께 토큰 임베딩, 세그먼트 임베딩, 포지션 임베딩 등 핵심 구성 요소를 코드와 함께 설명합니다. 다양한 NLP 태스크 수행 방식과 greedy search, beam search, top-k sampling 같은 생성 기법도 예제와 출력 결과를 통해 직관적으로 이해할 수 있도록 돕고 있습니다. 또한, 학습된 모델을 Docker를 이용해 서빙하는 과정까지 다뤄 실전 활용에 대한 감각도 익힐 수 있습니다.

 

개인적으로, Transformer의 구조와 코드에 대한 기본 이해가 있는 입장에서 가장 도움이 되었던 부분은 7장 모델 경량화 이후의 내용이었습니다. QLoRA, RLHF, PPO, DPO 등의 세부적인 방법론이 개념 설명과 함께 실습 코드로 제공되어 직접 구현하며 학습할 수 있었습니다. 다만, 논문에서 다루는 깊이 있는 세부 사항까지 모두 담기에는 책의 분량상 한계가 있다는 점이 아쉬웠지만, 코드가 포함되어 있어 부족한 부분은 추가 학습을 통해 보완할 수 있었습니다.

 

빠르게 전체적인 흐름을 파악하고 개념을 보충하며, 직접 구현을 통해 실습해보고 싶다면 이 책을 추천합니다.