트랜스포머 이해와 LLM 효율적 파인튜닝(PEFT) 2일 과정
시작 전에
환경설정 — Windows PC 에 Python 3.10 가상환경을 만들고 PyTorch(CUDA), transformers, peft, trl 을 설치한 뒤 GPU 를 확인합니다
준비
과정 안내
로드맵과 실습 안내 — 일차마다의 요약과 실습 환경
1일차
Transformer 구조에서 생성형 LLM까지 — 행렬곱과 Softmax, RNN 과 Seq2Seq 의 한계, 토큰화와 임베딩, 위치 정보, Self-Attention, Encoder 와 Decoder, 작은 번역기, Decoder-only LLM 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03벡터와 행렬: 숫자를 담는 두 가지 모양
- 04행렬곱과 내적: 곱하고 더하기
- 05Softmax: 점수를 비율로 바꾸기
- 06신경망에서 shape 가 바뀌는 모습
- 07문장은 순서 데이터, 그리고 RNN
- 08Seq2Seq: Encoder 와 Decoder 를 따로 두기
- 09Attention 의 등장: 필요한 곳을 다시 보기
- 10남은 한계와 Transformer 의 등장
- 11Transformer 전체 구조 한눈에 보기
- 12실습 지도
- 13실습 1 — 벡터와 행렬을 NumPy 로 만들기
- 14실습 2 — 행렬곱, 내적, Softmax 계산하기
- 15프로젝트 1 — 취향 점수를 추천 확률로 바꾸는 도우미
- 16정리
- 17확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03Self-Attention 의 직관
- 04Query·Key·Value
- 05Scaled Dot-Product Attention: 행렬 크기로 흐름 따라가기
- 06√d_k 로 나누는 까닭
- 07Attention 흐름 다시 보기
- 08Multi-Head Attention
- 09Encoder 블록 구성
- 10Encoder 만 쌓으면(BERT)
- 11실습 지도
- 12실습 1 — 세 낱말로 Self-Attention 한 번 계산하기
- 13실습 2 — √d_k 로 나누면 무엇이 달라질까
- 14실습 3 — Multi-Head 로 나누고 합치기
- 15실습 4 — Add & Norm 과 FFN 으로 Encoder 블록 완성하기
- 16프로젝트 1 — '그것'이 가리키는 낱말 찾기
- 17정리
- 18확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03Decoder 가 하는 일과 Teacher Forcing
- 04Masked Self-Attention: 뒷장을 가리고 풀기
- 05Cross-Attention: 원문을 흘끗 보기
- 06Decoder 블록과 전체 조립
- 07학습과 추론은 다르게 움직인다
- 08작은 영한 번역기의 설계도
- 09Transformer 의 세 가지 변형
- 10Transformer 이후의 발전
- 11실습 지도
- 12실습 1 — 영한 문장쌍을 토큰 ID 로 바꾸기
- 13실습 2 — 작은 번역기를 만들고 처음부터 학습하기
- 14실습 3 — 학습한 번역기로 새 문장 번역하기
- 15프로젝트 1 — 받아쓰기 연습지 만들기
- 16정리
- 17확인문제와 해답
2일차
SFT 데이터 구성과 LoRA 파인튜닝 — Qwen 으로 글 만들기, SFT 데이터와 Chat Template, PEFT 와 LoRA, SFTTrainer 학습, 평가와 어댑터 활용, QLoRA 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03SFT 데이터란
- 04좋은 SFT 데이터의 조건
- 05데이터 형식: Instruction, messages, prompt-completion
- 06데이터 불러오기와 점검
- 07학습·검증·평가 데이터 나누기
- 08모델은 messages 를 직접 읽지 못한다: Chat Template
- 09학습 입력과 추론 입력
- 10input_ids, attention_mask, labels
- 11패딩과 배치
- 12실습 지도
- 13실습 1 — 페르소나 데이터 불러와 점검하기
- 14실습 2 — 대화 형식으로 바꾸고 나누기
- 15실습 3 — Qwen 의 Chat Template 들여다보기
- 16프로젝트 1 — 고객 문의를 SFT 데이터로 바꾸기
- 17정리
- 18확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03Full Fine-tuning 이 부담스러운 까닭
- 04PEFT, 대부분은 얼리고 일부만 학습하기
- 05PEFT 기법 한눈에 보기
- 06LoRA 의 원리
- 07Qwen 에 LoRA 붙이기와 하이퍼파라미터
- 08학습 흐름과 SFTConfig
- 09손실 곡선 읽기
- 10학습이 잘 안 될 때 점검표
- 11실습 지도
- 12실습 1 — Qwen 에 LoRA 붙였다 떼기
- 13실습 2 — 학습 전의 답 기록해 두기
- 14실습 3 — SFTTrainer 로 LoRA 학습하기
- 15실습 4 — 손실 곡선, 학습 전후 비교, 어댑터 저장
- 16프로젝트 1 — r 값에 따른 LoRA 크기 비교
- 17정리
- 18확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03무엇을 평가할까
- 04손실 비교: 답변 토큰만 채점하기
- 05부작용 점검: 일반 질문에도 말투가 번진다
- 06어댑터 불러오기, 끄고 켜기, 병합하기
- 07서비스에 활용하는 방법
- 08QLoRA 의 원리
- 09QLoRA 메모리와 학습 결과 비교
- 10종합평가 안내
- 112일차 정리
- 12실습 지도
- 13실습 1 — 평가 데이터로 학습 전후 손실 비교하기
- 14실습 2 — 일반 질문으로 부작용 점검하기
- 15실습 3 — 저장한 어댑터 불러오기, 끄고 켜기, 병합하기
- 16실습 4 — 정밀도별 메모리 비교하기
- 17실습 5 — QLoRA 로 같은 학습 해 보기
- 18프로젝트 1 — 어댑터 점검표 만들기
- 19정리
- 20확인문제와 해답
참고
참고 자료
참고
실습은 실습 폴더(교안 저장소에서는 workspace/)를 작업 폴더로 두고 실행합니다.
참고
장마다 나온 용어를 한곳에 모았습니다. 위의 찾기 칸에 낱말을 넣으면 그 줄만 남습니다.
안내
읽기 전에
ChatGPT 같은 생성형 언어 모델(LLM)이 속에서 어떻게 움직이는지 Transformer 구조부터 하나씩 열어 보고, 공개 LLM 인 Qwen2.5-0.5B-Instruct 를 직접 만든 데이터로 가볍게 조정(파인튜닝)해 보는 2일 과정입니다. 첫날은 문장이 숫자로 바뀌고, Attention 으로 문맥을 읽고, 한 토큰씩 글을 만들어 내는 과정을 따라가며 작은 번역기를 직접 학습합니다. 둘째 날은 SFT 데이터를 만들고, LoRA·QLoRA 로 적은 자원만 써서 모델의 말투를 바꾼 뒤, 학습 전후를 평가합니다.
- 이 교안은 파이썬과 데이터 분석(NumPy, pandas, Matplotlib)을 다뤄 본 비전공자를 위해 썼습니다.
- 신경망, 손실, 학습률, Transformer, LLM, 파인튜닝 용어는 처음부터 설명합니다.
- 개념마다 생활 속 비유로 먼저 풀고, 수학은 곱셈, 나눗셈, 비율 정도만 씁니다. 식에는 실제 숫자를 넣어 한 번 손으로 계산해 봅니다.
- 실습 코드는 강사 노트북의 원본 코드를 그대로 실었습니다. 줄마다 무엇을 왜 하는지 주석을 달았습니다.
- 장마다 다음 순서로 이어집니다: 먼저 큰 그림부터 → 용어 → 본문 → 실습 → 프로젝트 → 정리 → 확인문제.
- 코드 상자의 "복사" 단추를 누르면 코드가 복사됩니다.
- 코드 상자의 이름표로 실행 환경을 구분합니다.
- "Python": CPU 로도 도는 코드입니다. 아래 출력은 실제로 실행한 결과입니다.
- "Python · GPU 필요": NVIDIA GPU 가 있어야 도는 코드입니다(2일차의 모델 생성, 학습, 평가). 아래 출력은 RTX 3080(10GB)에서 실제로 실행한 결과입니다.
- 실습 출력은 강사 노트북을 처음부터 끝까지 한 번 실행해 얻었습니다. 무작위로 고르는 생성(
do_sample=True)과 학습 결과(손실, 답변)는 실행할 때마다, GPU 마다 조금씩 달라집니다. - 실행 환경: Windows 11, Python 3.10, PyTorch 2.5.1(CUDA 12.1), transformers 4.57.6, peft 0.20.0, trl 0.25.1, datasets 4.8.4, bitsandbytes 0.50.2.
- 이틀 동안의 흐름은 과정 로드맵에, 설치는 환경설정에, 실습 파일은 실습 자료에 있습니다.
- 장마다 7~8분짜리 동영상 원고 3편(모두 27편)이 교안 저장소의
video/폴더에 있습니다. NotebookLM 의 동영상 개요로 만들거나, 장면표대로 직접 녹화합니다. - 강사 노트북(1일차, 2일차)을 실행 출력과 함께 그대로 읽을 수 있게 옮긴 Markdown 판이 교안 저장소의
노트북_md/폴더에 있습니다.