2026. 4. 29. 11:26ㆍ정리/책 정리
📌 책 개요
AI Engineering (Chip Huyen, 2025) 파운데이션 모델을 기반으로 AI 애플리케이션을 만드는 실전 가이드
1장. AI 애플리케이션 입문
AI 엔지니어링이란
- 이미 존재하는 파운데이션 모델을 활용해 애플리케이션을 만드는 과정
- 전통적 ML엔지니어링(모델 자체 개발)과 구분됨
- 진입 장벽이 낮아지면서 가장 빠르게 성장하는 엔지니어링 분야
AI 엔지니어링 성장의 3가지 요인
요인 설명
| 범용 AI 능력 | 파운데이션 모델이 다양한 작업 수행 가능 |
| AI 투자 증가 | 구축 비용 감소, 시장 출시 속도 향상 |
| 낮아진 진입 장벽 | API 기반 서비스형 모델 접근 방식 |
언어 모델의 두 가지 유형
마스크 언어 모델 (BERT 계열)
- 앞뒤 컨텍스트를 모두 활용해 빈칸 채우기
- 감정분석, 텍스트 분류, 코드 디버깅에 적합
자기회귀 언어 모델 (GPT 계열)
- 이전 토큰만 보고 다음 토큰 예측
- 텍스트 생성의 대세, 훨씬 높은 인기
자기지도학습의 핵심 역할
- 레이블 없는 대규모 데이터로 학습 가능
- 데이터 레이블링 병목 현상 극복
- 모델 규모를 효과적으로 키울 수 있는 기반
모델 응답 품질을 결정하는 3가지
- 모델이 어떻게 행동해야 하는지에 대한 지시
- 질의 응답에 사용할 수 있는 컨텍스트
- 모델 자체
2장. 파운데이션 모델 이해하기
환각(Hallucination)의 두 가지 가설
① 자기기만 가설 (딥마인드, 2021)
- 모델이 주어진 데이터와 자신이 생성한 데이터를 구분 못함
- 잘못된 가정 → 이를 정당화하기 위한 연속 환각 발생
- 해결책: 강화학습(RL)으로 프롬프트와 생성 토큰 구분 학습, 사실·반사실 데이터 포함
② 내부 지식 불일치 가설 (OpenAI, Leo Gao)
- 지도 파인튜닝(SFT) 시 레이블러의 지식을 모델이 모름
- 모델에게 없는 지식 기반 응답 모방 → 사실상 환각 학습
- RLHF가 환각 줄이지만 역설적으로 InstructGPT에서는 증가 사례도 있음
환각 실용적 대처법
- "모르면 '모르겠습니다'라고 말하세요" 프롬프트
- 간결한 응답 요청 (생성 기회 감소)
- 검색 증강(RAG)으로 외부 정보 제공
3장. 평가 방법론
파운데이션 모델 평가가 어려운 이유
- 모델이 똑똑해질수록 평가 더 어려워짐
- 개방형 특성으로 정답 기준 평가 불가
- 대부분 블랙박스
- 평가 범위가 알려진 작업 + 새로운 작업 발견까지 확장
주요 평가 지표 체계
언어 모델 지표
- 엔트로피: 토큰이 담고 있는 평균 정보량
- 교차 엔트로피: 모델이 데이터 내용 예측하기 어려운 정도. H(P,Q) = H(P) + DKL(P||Q)
- 퍼플렉시티(PPL): 교차 엔트로피의 지수함수. 불확실성 측정
- BPC/BPB: 모델 간 비교를 위한 표준화 지표
퍼플렉시티 해석 규칙
- 구조화된 데이터일수록 낮음 (HTML < 일상 텍스트)
- 어휘 크기가 클수록 높음
- 컨텍스트 길이가 길수록 낮음
퍼플렉시티 활용 사례
- 모델 성능 간접 지표
- 데이터 오염 탐지
- 학습 데이터 중복 제거
- 비정상 텍스트 탐지
정확한 평가 방법
기능적 정확성
- 코드 생성 능력 평가 (HumanEval, MBPP)
- 테스트 케이스로 실행 검증
참조 데이터 유사도
방식 설명
| 정확한 일치 | 완전 일치 여부 (이진) |
| 어휘적 유사도 | n-gram, 퍼지 매칭 (표면 형태 유사도) |
| 의미적 유사도 | 임베딩 기반 코사인 유사도 (의미 유사도) |
AI 평가자 (LLM-as-a-Judge)
3가지 활용 방식
- 응답 품질 독립 평가 (1~5점)
- 생성 응답 vs 참조 응답 비교 (True/False)
- 두 응답 중 더 나은 것 선택 (A/B)
AI 평가자 프롬프트 필수 요소
- 수행할 작업 명확히 설명
- 따라야 할 기준 (상세할수록 좋음)
- 점수 체계 (분류 > 이산 수치 > 연속 수치 순으로 잘 작동)
AI 평가자의 한계
- 비일관성
- 평가 기준 모호성
- 비용과 지연시간 증가
- AI 평가자 자체의 편향
특화된 평가자 유형
- 보상 모델: (프롬프트, 응답) → 점수
- 참조 기반 평가자: 참조 응답 기준 품질 점수
- 선호도 모델: 두 응답 중 더 나은 것 선택
비교 평가와 모델 순위
LMSYS 챗봇 아레나 방식
- 두 모델 응답 중 더 나은 것 선택
- 크라우드소싱으로 대규모 데이터 수집
- 포화되지 않는 평가 방식 (새 모델 등장해도 유효)
한계점
- 모든 질의를 선호도로 평가 불가 (정확성 필요한 경우)
- 표준화 부재
- 비교 성능이 절대 성능을 보장하지 않음
4장. AI 시스템 평가하기
평가 주도 개발 (Evaluation-Driven Development)
개발 전에 평가 기준을 먼저 정의 → 소프트웨어의 테스트 주도 개발(TDD)에서 영감
평가 기준 4가지 분류
① 도메인 특화 능력
- 공개/비공개 벤치마크 활용
- 객관식: 지식·추론 평가에 적합, 생성 능력 평가엔 부적합
② 생성 능력
- 사실 일관성: 국소적(컨텍스트 기준) vs 전역적(공개 지식 기준)
- 탐지 방법: SelfCheckGPT(자체검증), SAFE(검색증강 사실성 평가)
- 텍스트 함의: 함의/모순/중립 3분류
- 안전성: 부적절 언어, 유해 추천, 혐오 발언, 폭력, 고정관념, 편향
③ 지시 수행 능력
- IFEval: 형식 준수 능력 측정
- INFOBench: 내용 제약, 언어 지침, 문체 규칙까지 측정
④ 비용과 지연시간
- TTFT, TPOT, 토큰당 시간 등
- 필요한 것 vs 있으면 좋은 것 구분 중요
모델 선택 프로세스 4단계
- 하드 속성 부적합 모델 필터링
- 공개 정보로 유망 모델 추려내기
- 자체 평가 파이프라인으로 최적 모델 선정
- 운영 환경 지속 모니터링
모델 선택 고려사항 7가지
데이터 프라이버시, 데이터 계보·저작권, 성능, 기능성, 비용, 제어·접근성·투명성, 온디바이스 배포
벤치마크 신뢰성 문제
데이터 오염 탐지 방법
- n-gram 중복 검사
- 퍼플렉시티 이상치 탐지 (낮으면 학습 데이터 포함 의심)
허깅페이스 리더보드 2024 업데이트 벤치마크
- MATH Lvl 5, MMLU-PRO, GPQA, MuSR, BBH, IFEval
평가 파이프라인 설계 3단계
1단계: 모든 구성 요소 평가
- 엔드투엔드 + 중간 출력 독립 평가
- 턴 기반 평가 (각 출력 품질) + 작업 기반 평가 (작업 완료 여부)
2단계: 평가 가이드라인 작성
- 해야 할 일 + 하면 안 되는 일 정의
- 예시와 함께 평가 기준표 작성
- 비즈니스 지표와 연결 (예: 사실 일관성 80% → 요청 30% 자동화)
3단계: 평가 방법과 데이터 정의
- 기준별 다른 평가 방법 적용 가능
- 필요 샘플 수: 감지 차이 3% → ~1,000개, 1% → ~10,000개
5장. 프롬프트 엔지니어링
프롬프트의 3가지 구성요소
- 작업 설명: 모델이 해야 할 일, 역할, 출력 형식
- 예시: 작업 수행 방법 시연
- 작업: 구체적으로 수행할 내용
인컨텍스트 학습
- 제로샷: 예시 없이 지시만으로 수행
- 퓨샷: 몇 가지 예시 제공 후 수행
시스템 프롬프트 vs 사용자 프롬프트
- 시스템 프롬프트 = 작업 설명 (페르소나, 역할)
- 사용자 프롬프트 = 실제 작업 내용
- 시스템 프롬프트가 성능 향상에 더 효과적 (앞부분 위치 + 후처리 학습 영향)
컨텍스트 효율성
- 모델은 프롬프트 시작과 끝을 중간보다 더 잘 처리
- NIAH(건초더미 속 바늘) 테스트로 측정
프롬프트 엔지니어링 모범 사례
① 명확하고 명시적인 지시
- 모호함 없이 작업 설명
- 특정 페르소나 부여
- 예시 제공
- 출력 형식 지정
② 충분한 컨텍스트 제공
- 필요 정보 직접 제공 또는 도구 통해 수집
- 환각 감소 효과
③ 복잡한 작업 → 하위 작업 분해
- 각 하위 작업별 별도 프롬프트
- 모니터링/디버깅/병렬화 용이
- 단점: 지연시간 증가, 비용 증가
④ 생각의 사슬 (Chain-of-Thought)
- "단계별로 생각하세요" 추가
- 제로샷, 원샷, 단계 명시 등 다양한 방식
- 수학, 추론 문제에서 특히 효과적
⑤ 자기비평 (Self-Critique)
- 모델에게 자신의 출력 검토 요청
- 더 비판적 사고 유도
⑥ 프롬프트 반복 개선
- 변경사항 체계적 테스트
- 버전 관리 + 실험 추적
⑦ 도구 활용
- DSPy, OpenPrompt 등 자동화 도구
- 프롬프트브리더: 진화 전략으로 최적 프롬프트 탐색
방어적 프롬프트 엔지니어링
3가지 주요 공격 유형
- 프롬프트 추출: 시스템 프롬프트 역공학
- 탈옥·프롬프트 주입: 안전 기능 우회
- 정보 추출: 학습 데이터 노출 유도
간접 프롬프트 주입
- 수동적 피싱: 공개 웹에 악성 코드 숨김
- 능동적 주입: 이메일 등으로 직접 공격
방어 방법
- 모델 수준: 지시 계층 학습, 안전 파인튜닝
- 프롬프트 수준: 하지 말아야 할 일 명시, 시스템 프롬프트 반복
- 시스템 수준: 격리, 명시적 승인 없이 쓰기 작업 차단, 이상 탐지
6장. RAG와 에이전트
RAG (검색 증강 생성)
RAG 아키텍처
- 외부 데이터 소스에서 관련 정보 검색 → 생성 향상
- 검색기 품질이 전체 시스템 성공 좌우
검색 알고리즘 비교
방식 장점 단점
| 어휘적 검색 (TF-IDF, BM25) | 빠름, 구현 단순 | 의미 파악 못함 |
| 임베딩 기반 검색 | 의미 이해, 높은 정확도 | 느림, 임베딩 모델 필요 |
| 하이브리드 검색 | 두 방식의 장점 결합 | 복잡도 증가 |
벡터 검색 주요 알고리즘
- LSH: 해싱 기반, 빠르지만 정확도 낮음
- HNSW: 그래프 기반, 높은 정확도
- IVF: K-평균 클러스터링 기반
- 제품 양자화: 벡터 압축으로 연산 절약
검색 최적화 전략
청킹 전략
- 고정 길이 분할, 재귀적 분할, 겹침 청킹
- 작은 청크 = 더 많은 정보, 더 많은 연산
- 임베딩 모델의 컨텍스트 제한 이내 유지
재순위화: 초기 결과를 더 정확하게 재정렬 질의 재작성: AI로 질의 재구성해 검색 정확도 향상 컨텍스트 검색: 각 청크에 관련 컨텍스트 추가 (앤트로픽 방식)
RAG 평가 지표
- 컨텍스트 정밀도: 검색된 문서 중 관련 문서 비율
- 컨텍스트 재현율: 관련 문서 중 실제 검색된 비율
에이전트
에이전트 개요
- 자신의 환경을 인식하고 행동할 수 있는 시스템
- AI = 두뇌 역할 (정보 처리, 계획 수립, 완료 판단)
- 누적 오류 문제: 단계당 95% 정확도 × 10단계 = 60% 정확도
도구 유형 3가지
- 지식 증강: 외부 데이터 접근
- 능력 확장: AI 모델 한계 보완
- 쓰기 행동: 환경 직접 변경 (이메일 발송, DB 수정 등)
계획 수립 패턴
- 순차 실행, 병렬 실행, IF 조건문, For 반복문
- ReAct: 추론(계획) + 행동 + 관찰(성찰) 반복
에이전트 실패 유형
- 유효하지 않은 도구 호출
- 유효한 도구, 잘못된 파라미터
- 목표 달성 실패
메모리 시스템
유형 설명
| 내부 지식 | 학습 데이터에서 얻은 지식 |
| 단기 메모리 | 컨텍스트 (작업 종료 시 사라짐) |
| 장기 메모리 | 외부 데이터베이스 (RAG 등) |
7장. 파인튜닝
파인튜닝 개요
- 모델 전체 또는 일부를 추가 학습해 특정 작업에 맞게 조정
- 가중치를 직접 수정 (프롬프트 방식과 차별화)
파인튜닝 유형
- 지도 파인튜닝 (SFT): (입력, 출력) 쌍으로 학습
- 선호도 파인튜닝: (지시, 선호 응답, 비선호 응답) 형식
- 지속적 사전학습: 도메인 데이터로 자기지도 학습
파인튜닝 해야 하는 이유
- 특정 구조 출력 (JSON, YAML) 향상
- 도메인 특화 능력 향상
- 안전성 강화
- 편향 완화
- 모델 증류 (큰 모델 → 작은 모델)
파인튜닝 하지 말아야 하는 이유
- 데이터 확보 비용 및 시간 소요
- ML 지식 필요
- 지속적 관리 및 유지보수 부담
- 특정 작업 성능 향상 → 다른 작업 성능 저하 가능
- 프롬프팅으로 해결 가능한 경우 먼저 시도
파인튜닝 vs RAG 선택 기준
상황 권장 방법
| 정보 부족으로 오답 | RAG |
| 정보가 오래됨 | RAG |
| 출력 형식/스타일 문제 | 파인튜닝 |
| 관련 없는 내용 생성 | 파인튜닝 |
| 요약 | 파인튜닝 = 형식, RAG = 사실 |
메모리 병목 현상
파인튜닝 메모리 = 모델 가중치 + 활성화 + 그래디언트 + 옵티마이저 스테이트
옵티마이저별 스테이트 수
- SGD: 0개
- 모멘텀: 1개
- Adam: 2개 (가장 많이 사용)
양자화 (수치 표현 방식)
형식 비트 특징
| FP32 | 32bit | 높은 정밀도, 학습 기본 |
| FP16/BF16 | 16bit | 추론 표준, BF16은 범위 넓음 |
| INT8/INT4 | 8/4bit | 추론 최적화, 메모리 절감 |
PEFT (파라미터 효율적 파인튜닝)
LoRA (Low-Rank Adaptation)
- 가중치 행렬을 두 작은 행렬(A, B)로 분해
- W' = W + (α/r) × (A×B) 형태로 병합
- 학습 파라미터: 전체의 0.01%로도 뛰어난 성능
- 추론 지연시간 증가 없음 (병합 후 서빙)
- 랭크 r: 일반적으로 4~64 사이, 작을수록 메모리 효율적
QLoRA
- LoRA + 4비트 양자화 (NF4 형식)
- 650억 파라미터 모델을 단일 48GB GPU에서 파인튜닝 가능
모델 병합
3가지 접근법
- 합산 (선형 결합, SLERP): 가중치 값을 더함
- 레이어 쌓기 (프랑켄머징): 다른 레이어를 차곡차곡 쌓음
- 연결: LoRA 어댑터 랭크를 더함
활용 사례
- 다중 작업 파인튜닝 (재앙적 망각 방지)
- 연합 학습 (여러 기기의 모델 통합)
- 모델 업스케일링 (뎁스와이즈 스케일링)
8장. 데이터셋 엔지니어링
데이터 큐레이션 3대 기준
① 데이터 품질 (6가지 특성) 관련성, 작업 요구사항 부합, 일관성, 올바른 형식, 충분한 고유성, 규정 준수
② 데이터 커버리지
- 다양성이 핵심 (주제, 형식, 길이 등)
- 라마3: 수학·추론·코드가 학습 데이터의 절반 차지
- 올바른 데이터 조합 → 스케일링 법칙 실험으로 탐색
③ 데이터 양
- 파인튜닝 기법별 필요량 차이 (전체 파인튜닝 > PEFT)
- 기본 모델 성능이 좋을수록 더 적은 예시 필요
- 50~100개 예시로 먼저 실험
데이터 합성의 이유
- 대규모 데이터 생성
- 커버리지 확장 (특정 특성 데이터)
- 품질 향상 (AI가 더 복잡한 예시 생성)
- 프라이버시 문제 해결
- 모델 증류
AI 기반 데이터 합성 방법
- 지시 생성: 주제·키워드 목록 → AI로 지시 생성
- 응답 생성: 지시당 하나 또는 여러 응답
- 역번역 검증: 코드 번역 → 검증 → 역번역 검증
- CoT 데이터: 단계별 응답 포함 시 추론 능력 크게 향상
데이터 처리 단계
- 데이터 검사 (기본 통계 확인)
- 중복 제거 (전체, 문서 내, 문서 간)
- 데이터 정리 및 필터링
- 데이터 형식 맞추기
9장. 추론 최적화
추론 성능 지표
지표 설명
| TTFT | 첫 토큰까지 걸리는 시간 |
| TPOT | 출력 토큰당 시간 |
| 처리량 | 초당 출력 토큰 수 |
| 굿풋 | SLO 만족하는 초당 요청 수 |
| MFU | 이론 최대 대비 실제 처리량 비율 |
| MBU | 사용 가능한 메모리 대역폭 활용률 |
모델 수준 최적화
모델 압축
- 양자화 (가중치 전용이 가장 인기)
- 증류 (큰 모델 → 작은 모델)
- 프루닝 (불필요 파라미터 제거)
자기회귀 디코딩 병목 극복
- 추측 디코딩: 빠른 모델로 초안 생성 → 목표 모델 검증
- 참조 기반 추론: 입력에서 초안 토큰 복사
- 병렬 디코딩: 메두사 등 여러 토큰 동시 예측
어텐션 메커니즘 최적화
- KV 캐시: 이전 키-값 벡터 저장·재사용
- KV 캐시 크기: 2 × B×S×L×H×M
- 플래시 어텐션: 여러 연산 융합 커널
- 멀티 쿼리 어텐션, 그룹 쿼리 어텐션: KV 헤드 수 감소
- 로컬 윈도우 어텐션: 고정 윈도우만 어텐션 적용
추론 서비스 최적화
배치 처리
- 정적 배치: 고정 수 채울 때까지 대기
- 동적 배치: 최대 대기 시간 설정
- 연속 배치: 완료 즉시 새 요청 처리 (가장 효율적)
프리필·디코딩 분리
- 프리필: 연산 집약적
- 디코딩: 메모리 대역폭 집약적
- 분리 서빙으로 리소스 경쟁 방지
프롬프트 캐싱
- 공통 시스템 프롬프트 등 반복 부분 캐싱
- 특히 긴 문서 처리에 효과적
병렬 처리 전략
방식 특징 용도
| 복제 병렬 처리 | 모델 복제본 여러 개 | 처리량 증가, 구현 단순 |
| 텐서 병렬 처리 | 행렬 연산 분산 | 지연시간 감소, 큰 모델 서빙 |
| 파이프라인 병렬 처리 | 레이어 단계별 분산 | 학습 시 선호 |
10장. AI 엔지니어링 아키텍처
단계별 아키텍처 구축
1단계: 컨텍스트 보강
- 외부 데이터 소스 및 도구 연결
- RAG 파이프라인 구현
2단계: 가드레일 도입
입력 가드레일
- 개인정보 마스킹/마스킹 해제
- 프롬프트 주입 공격 차단
출력 가드레일
- 잘못된 형식, 환각, 유해 콘텐츠 탐지
- 실패 처리 정책 명시
3단계: 라우터·게이트웨이 추가
라우터: 의도 분류 → 최적 솔루션으로 라우팅 게이트웨이: 다양한 모델에 통합 인터페이스, 접근 제어, 폴백 정책
4단계: 캐싱으로 지연시간 감소
- 완전 일치 캐싱: 정확히 같은 요청만 캐시 (레디스 등)
- 시맨틱 캐싱: 의미적으로 유사한 요청도 캐시 (임베딩 유사도 기반)
- 주의: 사용자별 개인정보 데이터 유출 위험
5단계: 에이전트 패턴 추가
- 루프, 병렬 실행, 조건부 분기
- 쓰기 작업 추가 (환경 직접 변경, 위험 증가)
모니터링과 관찰 가능성
핵심 성능 지표 (DevOps 기반)
- MTTD: 문제 탐지 평균 시간
- MTTR: 문제 응답 평균 시간
- CFR: 변경 실패율
추적해야 할 지표
- 모델 품질: 사실 일관성, 유해성, 환각률
- 지연시간: TTFT, TPOT, 총 지연시간
- 비용: 입출력 토큰 수, API 호출 수
- 사용자 행동: 조기 종료율, 대화 길이, 재생성 비율
드리프트 감지
- 시스템 프롬프트 변경
- 사용자 행동 변화
- 기반 모델 업데이트
AI 파이프라인 오케스트레이션
- 구성요소 정의 + 체이닝 (함수 조합)
- 랭체인, LlamaIndex, Haystack 등
- 평가 기준: 통합성, 복잡 파이프라인 지원, 사용 편의성·성능·확장성
사용자 피드백
피드백 유형
- 명시적: 좋아요/싫어요, 별점, 예/아니오
- 암시적: 행동에서 추론 (구매, 클릭, 조기 종료 등)
자연어 피드백 신호
- 조기 종료: 대화가 잘 안 되는 신호
- 오류 교정: "아니요..", "내 말은.." 등
- 불평: 응답 품질 문제 직접 표현
- 사용자 편집: 비선호(원본) → 선호(편집본) 데이터 생성
피드백의 한계
- 관대함 편향, 무작위성, 위치 편향, 선호도 편향
- 퇴화 피드백 루프: 예측이 피드백에 영향 → 편향 심화
📊 핵심 요약 로드맵
기초 이해
├── 언어 모델 작동 원리 (자기회귀 vs 마스크)
├── 환각 원인과 대처법
└── 평가 지표 체계 (PPL, 교차 엔트로피)
애플리케이션 개발
├── 평가 주도 개발 → 기준 먼저 정의
├── 프롬프트 엔지니어링 → 가장 먼저 시도
├── RAG → 정보 부족 문제 해결
├── 파인튜닝 → 형식/스타일 문제 해결
└── 에이전트 → 복잡한 다단계 작업
운영 최적화
├── 추론 최적화 (양자화, KV캐시, 배치처리)
├── 아키텍처 설계 (가드레일, 라우터, 캐싱)
└── 모니터링 (지표, 로그, 드리프트 감지)
'정리 > 책 정리' 카테고리의 다른 글
| 이토록 위대한 몸 [줄리아 엔더스] 요약 정리 (0) | 2026.05.02 |
|---|---|
| 나의 완벽한 장례식 [조현선] 느낀점 (0) | 2026.05.02 |
| Ch7 RDF 확장: RDFS와 SCHACL (1) | 2026.04.26 |
| Ch6 시맨틕 웹 질의하기 : SPARQL 요약 정리 (1) | 2026.04.26 |
| Ch15 좋은 모델링과 나쁜 모델링 사례 요약 정리 (1) | 2026.04.25 |