LLM 엔지니어링
시작 전에
환경설정 — Windows PC 에 가상환경을 만들고 장마다 필요한 패키지를 설치합니다
과정 안내
로드맵과 실습 안내 — STEP 마다의 요약, 실습에 필요한 API 키·모델·GPU
STEP 1
머신러닝·딥러닝 기초 — 머신러닝 과정과 평가, 신경망, Attention 과 Transformer 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03머신러닝이란
- 04머신러닝 문제의 종류
- 05특성과 레이블
- 06머신러닝 프로세스
- 07scikit-learn 의 네 동작
- 08학습용과 시험용 나누기
- 09과적합
- 10혼동행렬
- 11정확도·정밀도·재현율·F1
- 12기준값 바꾸기
- 13회귀의 지표
- 14실습 지도
- 15실습 1 — 배송 데이터 읽고 흠 찾기
- 16실습 2 — 빈칸·실수·중복 고치고 저장하기
- 17실습 3 — 조건별 지연 비율을 그래프로 보기
- 18실습 4 — 특성과 레이블 만들고 나누기
- 19실습 5 — 기준선과 모델 채점하기
- 20실습 6 — 기준값 바꾸고 과적합 확인하기
- 21프로젝트 1 — 쇼핑몰 리뷰 긍정·부정 분류하기
- 22정리
- 23확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03토큰과 토크나이저
- 04임베딩
- 05순서를 읽는 모델과 한계
- 06Attention 의 원리
- 07셀프 어텐션 계산
- 08마스크: 앞만 보기
- 09멀티헤드와 위치 정보
- 10Transformer 블록
- 11다음 글자 고르기: 생성과 온도
- 12GPT 논문 읽기
- 13ML 디자인 패턴
- 14실습 지도
- 15실습 1 — 글자 토크나이저와 임베딩
- 16실습 2 — 셀프 어텐션 손으로 계산하기
- 17실습 3 — 미니 GPT 만들기
- 18실습 4 — 미니 GPT 학습하고 글 이어 쓰기
- 19실습 5 — 번역 모델 써 보기
- 20실습 6 — 작은 챗봇 모델 써 보기
- 21프로젝트 1 — 고객 문의 챗봇 맛보기
- 22정리
- 23확인문제와 해답
STEP 2
LLM 기초와 프라이빗 RAG — 사전학습부터 정렬까지, LoRA, 자체 임베딩과 벡터DB 로 만드는 RAG 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03LLM 을 완성하는 3단계
- 04사전학습
- 05손실과 퍼플렉서티
- 06지도 미세조정(SFT)
- 07정렬
- 08Hugging Face 생태계
- 09모델 카드와 라이선스
- 10Auto 클래스로 불러오기
- 11생성 설정
- 12Trainer 로 학습하기
- 13GPU 메모리 어림하기
- 14실습 지도
- 15실습 1 — Hugging Face 에서 모델 불러오기
- 16실습 2 — 기본 모델과 지시 모델 견주기
- 17실습 3 — 우리 토크나이저 학습하기
- 18실습 4 — 사전학습 데이터 만들기
- 19실습 5 — 작은 GPT 사전학습하기
- 20실습 6 — 상담 말투로 SFT 하기
- 21프로젝트 1 — 우리 동네 빵집 맞춤 모델 만들기
- 22정리
- 23확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03전체 미세조정의 비용
- 04PEFT 의 종류
- 05LoRA 의 원리
- 06LoRA 의 설정
- 07PEFT 로 LoRA 붙이기
- 08어댑터 저장과 합치기
- 09메모리 아끼는 기술
- 10선호 데이터
- 11DPO 의 원리
- 12DPO 지표 읽기
- 13정렬의 위험과 평가
- 14실습 지도
- 15실습 1 — LoRA 붙여 보기
- 16실습 2 — 채팅 템플릿으로 SFT 데이터 만들기
- 17실습 3 — LoRA 로 SFT 하기
- 18실습 4 — 어댑터 불러오기와 합치기
- 19실습 5 — 선호 데이터와 로그 확률
- 20실습 6 — DPO 로 답변 성향 맞추기
- 21프로젝트 1 — 친절한 빵집 상담 모델 만들기
- 22정리
- 23확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03LLM 이 모르는 것
- 04RAG 의 세 단계
- 05RAG 와 미세조정
- 06문서를 조각으로 나누기
- 07키워드 검색
- 08근거를 붙인 프롬프트
- 09외부 API 로 만드는 RAG
- 10로컬 모델이 필요한 까닭
- 11Ollama 로 로컬 모델 띄우기
- 12바꿔 끼우는 짜임
- 13RAG 가 틀리는 자리
- 14실습 지도
- 15실습 1 — 모델이 모르는 질문 해 보기
- 16실습 2 — 정책 문서를 조각으로 나누기
- 17실습 3 — 키워드 검색 만들기
- 18실습 4 — 근거를 붙여 답하게 하기
- 19실습 5 — Ollama 로 같은 일 하기
- 20실습 6 — 모델 바꿔 끼우기
- 21프로젝트 1 — 아파트 관리규약 Q&A
- 22정리
- 23확인문제와 해답
STEP 3
AI 에이전트와 데이터 엔지니어링 — 도구를 쓰는 LLM, MCP, 폐쇄망 데이터 파이프라인 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03도구를 잇는 표준, MCP
- 04MCP 의 구조
- 05MCP 서버와 클라이언트의 대화
- 06MCP 를 쓸 때의 보안
- 07프롬프트 엔지니어링
- 08퓨샷과 출력 꼴 고정
- 09컨텍스트 엔지니어링
- 10컨텍스트 줄이기
- 11실패의 종류
- 12실패 복구 설계
- 13실습 지도
- 14실습 1 — MCP 서버 만들기
- 15실습 2 — 클라이언트로 도구와 리소스 쓰기
- 16실습 3 — MCP 도구를 LLM 에 잇기
- 17실습 4 — 프롬프트 다듬기
- 18실습 5 — 컨텍스트 고르기
- 19실습 6 — 실패에 강한 호출
- 20프로젝트 1 — 사내 재고 시스템 연결
- 21정리
- 22확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03폐쇄망이란
- 04모델과 패키지 들여오기
- 05바깥으로 나가는 연결 막기
- 06문서 수집
- 07문서 정제
- 08중복과 옛 판 거르기
- 09조각과 메타데이터
- 10벡터DB 고르기
- 11인덱스의 속도와 정확도
- 12폐쇄형 RAG 와 권한
- 13색인 갱신
- 14실습 지도
- 15실습 1 — 오프라인으로 돌아가는지 확인하기
- 16실습 2 — 사내 문서 모으기
- 17실습 3 — 정제하고 조각 나누기
- 18실습 4 — 벡터DB 세 가지 견주기
- 19실습 5 — 인덱스의 속도와 정확도 재기
- 20실습 6 — 권한에 맞게 답하는 폐쇄형 RAG
- 21프로젝트 1 — 문서가 바뀌어도 맞게 답하는 사내 문서 RAG
- 22정리
- 23확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03멀티모달이란
- 04멀티모달 임베딩
- 05그림으로 찾고 글로 찾기
- 06그림을 글로 바꾸기
- 07그림과 표가 섞인 문서
- 08멀티모달 RAG 의 짜임
- 09데이터 기반 LLM 파인튜닝
- 10미세조정 데이터셋 자동 생성
- 11생성 데이터 거르기
- 12데이터셋 나누기와 기록
- 13실습 지도
- 14실습 1 — 글로 그림 찾기
- 15실습 2 — 그림으로 찾고 이름 붙이기
- 16실습 3 — 비전 모델로 그림 설명 만들기
- 17실습 4 — 그림과 표가 섞인 안내서로 답하기
- 18실습 5 — 안내서로 질문-답 데이터 만들기
- 19실습 6 — 생성 데이터 거르고 나누기
- 20프로젝트 1 — 생성한 데이터로 상담 모델 미세조정
- 21정리
- 22확인문제와 해답
STEP 4
LLM 서빙 기초와 심화 — REST API, 웹 화면, 컨테이너, 경량화와 vLLM 서빙 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03API 와 REST
- 04HTTP 요청과 응답의 생김새
- 05RESTful 설계
- 06모델을 애플리케이션과 잇기
- 07FastAPI 의 기본
- 08Pydantic 으로 입력 검사
- 09예측 API 의 짜임
- 10인증: 누구인가
- 11권한: 무엇을 해도 되나
- 12오류 처리와 요청 기록
- 13실습 지도
- 14실습 1 — 배송 지연 모델을 파일로 저장하기
- 15실습 2 — FastAPI 로 예측 API 만들기
- 16실습 3 — 입력 검사와 묶음 예측
- 17실습 4 — 서버로 띄워 HTTP 로 부르기
- 18실습 5 — API 키로 접근 막기
- 19실습 6 — 토큰과 역할로 권한 나누기
- 20프로젝트 1 — 사내 규정 질의 API
- 21정리
- 22확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03모델에 화면 붙이기
- 04Streamlit 이 화면을 그리는 법
- 05위젯과 배치
- 06상태와 캐시
- 07채팅 화면
- 08화면과 API 잇기
- 09컨테이너와 Docker
- 10Dockerfile 쓰기
- 11docker compose 로 여러 서비스 띄우기
- 12API 아키텍처
- 13실습 지도
- 14실습 1 — 예측 화면 만들기
- 15실습 2 — 채팅 화면과 대화 기억
- 16실습 3 — 화면을 API 와 잇기
- 17실습 4 — 화면과 API 를 실제 서버로 띄우기
- 18실습 5 — 컨테이너에 넣을 준비
- 19실습 6 — docker compose 로 묶을 준비와 로컬 확인
- 20프로젝트 1 — 온프레미스 LLM 서빙 서비스
- 21정리
- 22확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03모델을 줄이는 까닭
- 04숫자의 정밀도
- 05양자화의 원리
- 06양자화를 하는 때와 도구
- 07GPTQ 와 AWQ
- 08프루닝
- 09지식증류
- 10경량화의 품질 재기
- 11우리 GPU 에 맞추기
- 12경량화 방법 고르기
- 13실습 지도
- 14실습 1 — 직접 양자화해 보기
- 15실습 2 — 같은 모델을 fp16, 8비트, 4비트로 불러오기
- 16실습 3 — Ollama 의 양자화 단계 견주기
- 17실습 4 — 프루닝: 가지를 쳐도 맞히나
- 18실습 5 — 지식증류: 큰 모델의 답으로 작은 모델 가르치기
- 19실습 6 — LLM 은 가지치기에 얼마나 견디나
- 20프로젝트 1 — 우리 GPU 에 맞는 모델 고르기
- 21정리
- 22확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03서빙 엔진이 하는 일
- 04프리필과 디코드
- 05KV 캐시와 PagedAttention
- 06연속 배치
- 07서빙 성능 지표
- 08벤치마크를 바르게 재기
- 09vLLM 띄우고 재기
- 10RAG 파이프라인의 병목
- 11캐시
- 12컨텍스트와 답 길이 줄이기
- 13실습 지도
- 14실습 1 — 요청 하나를 쪼개 재기
- 15실습 2 — 동시 요청을 늘려 가며 재기
- 16실습 3 — 묶어서 생성하면 얼마나 빨라지나
- 17실습 4 — 느린 RAG 의 병목 찾기
- 18실습 5 — 캐시로 같은 일 줄이기
- 19실습 6 — 조각 수와 답 길이 줄이기
- 20프로젝트 1 — 응답 시간 절반으로 줄이기
- 21정리
- 22확인문제와 해답
STEP 5
프라이빗 AI Agent 서비스 — 서빙, 경량화, RAG 최적화를 모은 End-to-End 프로토타입 요약 보기
STEP 6
엔터프라이즈 보안과 인프라 — MLOps 와 LLMOps, 평가와 모니터링, 보안과 거버넌스 요약 보기
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03MLOps 란 무엇인가
- 04MLOps 의 단계와 흐름
- 05실험 기록
- 06모델 레지스트리
- 07LLMOps 프레임워크
- 08Docker 심화: 이미지 층과 캐시
- 09Docker 심화: 모델과 데이터는 밖에 둔다
- 10워크플로와 DAG
- 11Airflow 로 일정 돌리기
- 12다시 돌려도 안전한 작업
- 13자동 배포의 관문
- 14실습 지도
- 15실습 1 — 작은 워크플로 실행기 만들기
- 16실습 2 — 바뀐 문서만 찾기
- 17실습 3 — 색인 갱신 작업 자동화
- 18실습 4 — MLflow 로 실험 기록하기
- 19실습 5 — 모델 레지스트리로 배포하고 되돌리기
- 20실습 6 — 학습과 배포 파이프라인
- 21프로젝트 1 — 매일 밤 도는 RAG 갱신
- 22정리
- 23확인문제와 해답
20장
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03LLM 평가가 어려운 까닭
- 04평가 묶음 만들기
- 05규칙으로 채점하기
- 06뜻으로 채점하기
- 07LLM 을 채점자로
- 08RAG 는 나눠서 잰다
- 09모델 드리프트
- 10드리프트를 재는 법
- 11모니터링 지표
- 12대시보드와 알림
- 13실습 지도
- 14실습 1 — 답 만들고 규칙으로 채점하기
- 15실습 2 — 뜻으로 채점하기
- 16실습 3 — LLM 채점자 만들고 사람과 맞춰 보기
- 17실습 4 — 평가 방법 견주고 RAG 나눠 재기
- 18실습 5 — 드리프트 감지하기
- 19실습 6 — 운영 지표와 알림
- 20프로젝트 1 — 챗봇 품질 대시보드
- 21정리
- 22확인문제와 해답
- 01먼저 큰 그림부터
- 02용어 짚고 가기
- 03LLM 서비스의 위협 지도
- 04프롬프트 인젝션
- 05인젝션은 겹겹이 막는다
- 06Red Teaming
- 07LLMSecOps
- 08개인정보 찾기와 가리기
- 09접근 제어
- 10AI 윤리와 거버넌스
- 11GPU 클러스터와 온프레미스 아키텍처
- 12CI/CD 자동화
- 13실습 지도
- 14실습 1 — 프롬프트 인젝션 걸어 보기
- 15실습 2 — 인젝션 겹겹이 막기
- 16실습 3 — 개인정보 찾기
- 17실습 4 — 가리고 가명으로 바꿔 LLM 에 보내기
- 18실습 5 — 접근 제어가 있는 검색
- 19실습 6 — GPU 메모리 셈하기
- 20프로젝트 1 — 사내 AI 서비스 보안 점검 종합
- 21정리
- 22확인문제와 해답
참고
참고 자료
실습에 쓰는 파일은 교안과 함께 받은 data 폴더에 있습니다.
부록
장마다 나온 용어를 한곳에 모았습니다. 위의 찾기 칸에 낱말을 넣으면 그 줄만 남습니다.
안내
읽기 전에
머신러닝의 기본기에서 출발해, 내 데이터로 답하는 프라이빗 LLM 서비스와 AI 에이전트를 직접 만들고 서빙하고 지키는 데까지 갑니다.
- 수강 대상: 파이썬, pandas, NumPy 를 이미 아는 분입니다. 이 셋의 문법은 설명하지 않습니다. 머신러닝, 딥러닝, LLM 의 개념과 용어는 처음부터 풀어 드립니다.
- 장마다 "먼저 큰 그림부터"로 시작해 본문, 실습, 프로젝트, 정리, 확인문제 순서로 이어집니다.
- 본문은 일상의 비유와 그림으로 먼저 설명하고 글로 정리합니다.
- 코드 상자의 "복사" 단추를 누르면 코드가 복사됩니다.
- 과정 전체의 흐름과 STEP 마다의 요약은 과정 로드맵과 STEP 요약에, 실습을 직접 돌릴 때 필요한 것(API 키, 모델, GPU, 먼저 돌릴 실습)은 실습 코드 사용 안내에 있습니다. 실행되는 실습 코드에는 진짜 API 키가 필요하지 않습니다.
- 실습 데이터는 연습용으로 만든 가상 데이터입니다. 실제 회사나 고객의 데이터가 아닙니다. 프로젝트마다 실제 공개 자료를 구하는 곳을 함께 적었습니다.
- 실행 결과는 Windows 11, Python 3.14.6 에서 얻었습니다. GPU 가 없어도 되도록 작은 공개 모델을 씁니다. Docker 나 Linux 가 필요한 코드는 실행하지 않은 안내 코드로 싣고, 그렇다고 밝힙니다.