AI 엔지니어링 [칩 후옌] 요약 정리

2026. 4. 29. 11:26정리/책 정리

728x90
반응형

📌 책 개요

AI Engineering (Chip Huyen, 2025) 파운데이션 모델을 기반으로 AI 애플리케이션을 만드는 실전 가이드


1장. AI 애플리케이션 입문

AI 엔지니어링이란

  • 이미 존재하는 파운데이션 모델을 활용해 애플리케이션을 만드는 과정
  • 전통적 ML엔지니어링(모델 자체 개발)과 구분됨
  • 진입 장벽이 낮아지면서 가장 빠르게 성장하는 엔지니어링 분야

AI 엔지니어링 성장의 3가지 요인

요인 설명

범용 AI 능력 파운데이션 모델이 다양한 작업 수행 가능
AI 투자 증가 구축 비용 감소, 시장 출시 속도 향상
낮아진 진입 장벽 API 기반 서비스형 모델 접근 방식

언어 모델의 두 가지 유형

마스크 언어 모델 (BERT 계열)

  • 앞뒤 컨텍스트를 모두 활용해 빈칸 채우기
  • 감정분석, 텍스트 분류, 코드 디버깅에 적합

자기회귀 언어 모델 (GPT 계열)

  • 이전 토큰만 보고 다음 토큰 예측
  • 텍스트 생성의 대세, 훨씬 높은 인기

자기지도학습의 핵심 역할

  • 레이블 없는 대규모 데이터로 학습 가능
  • 데이터 레이블링 병목 현상 극복
  • 모델 규모를 효과적으로 키울 수 있는 기반

모델 응답 품질을 결정하는 3가지

  1. 모델이 어떻게 행동해야 하는지에 대한 지시
  2. 질의 응답에 사용할 수 있는 컨텍스트
  3. 모델 자체

2장. 파운데이션 모델 이해하기

환각(Hallucination)의 두 가지 가설

① 자기기만 가설 (딥마인드, 2021)

  • 모델이 주어진 데이터와 자신이 생성한 데이터를 구분 못함
  • 잘못된 가정 → 이를 정당화하기 위한 연속 환각 발생
  • 해결책: 강화학습(RL)으로 프롬프트와 생성 토큰 구분 학습, 사실·반사실 데이터 포함

② 내부 지식 불일치 가설 (OpenAI, Leo Gao)

  • 지도 파인튜닝(SFT) 시 레이블러의 지식을 모델이 모름
  • 모델에게 없는 지식 기반 응답 모방 → 사실상 환각 학습
  • RLHF가 환각 줄이지만 역설적으로 InstructGPT에서는 증가 사례도 있음

환각 실용적 대처법

  • "모르면 '모르겠습니다'라고 말하세요" 프롬프트
  • 간결한 응답 요청 (생성 기회 감소)
  • 검색 증강(RAG)으로 외부 정보 제공

3장. 평가 방법론

파운데이션 모델 평가가 어려운 이유

  1. 모델이 똑똑해질수록 평가 더 어려워짐
  2. 개방형 특성으로 정답 기준 평가 불가
  3. 대부분 블랙박스
  4. 평가 범위가 알려진 작업 + 새로운 작업 발견까지 확장

주요 평가 지표 체계

언어 모델 지표

  • 엔트로피: 토큰이 담고 있는 평균 정보량
  • 교차 엔트로피: 모델이 데이터 내용 예측하기 어려운 정도. H(P,Q) = H(P) + DKL(P||Q)
  • 퍼플렉시티(PPL): 교차 엔트로피의 지수함수. 불확실성 측정
  • BPC/BPB: 모델 간 비교를 위한 표준화 지표

퍼플렉시티 해석 규칙

  • 구조화된 데이터일수록 낮음 (HTML < 일상 텍스트)
  • 어휘 크기가 클수록 높음
  • 컨텍스트 길이가 길수록 낮음

퍼플렉시티 활용 사례

  • 모델 성능 간접 지표
  • 데이터 오염 탐지
  • 학습 데이터 중복 제거
  • 비정상 텍스트 탐지

정확한 평가 방법

기능적 정확성

  • 코드 생성 능력 평가 (HumanEval, MBPP)
  • 테스트 케이스로 실행 검증

참조 데이터 유사도

방식 설명

정확한 일치 완전 일치 여부 (이진)
어휘적 유사도 n-gram, 퍼지 매칭 (표면 형태 유사도)
의미적 유사도 임베딩 기반 코사인 유사도 (의미 유사도)

AI 평가자 (LLM-as-a-Judge)

3가지 활용 방식

  1. 응답 품질 독립 평가 (1~5점)
  2. 생성 응답 vs 참조 응답 비교 (True/False)
  3. 두 응답 중 더 나은 것 선택 (A/B)

AI 평가자 프롬프트 필수 요소

  • 수행할 작업 명확히 설명
  • 따라야 할 기준 (상세할수록 좋음)
  • 점수 체계 (분류 > 이산 수치 > 연속 수치 순으로 잘 작동)

AI 평가자의 한계

  • 비일관성
  • 평가 기준 모호성
  • 비용과 지연시간 증가
  • AI 평가자 자체의 편향

특화된 평가자 유형

  • 보상 모델: (프롬프트, 응답) → 점수
  • 참조 기반 평가자: 참조 응답 기준 품질 점수
  • 선호도 모델: 두 응답 중 더 나은 것 선택

비교 평가와 모델 순위

LMSYS 챗봇 아레나 방식

  • 두 모델 응답 중 더 나은 것 선택
  • 크라우드소싱으로 대규모 데이터 수집
  • 포화되지 않는 평가 방식 (새 모델 등장해도 유효)

한계점

  • 모든 질의를 선호도로 평가 불가 (정확성 필요한 경우)
  • 표준화 부재
  • 비교 성능이 절대 성능을 보장하지 않음

4장. AI 시스템 평가하기

평가 주도 개발 (Evaluation-Driven Development)

개발 전에 평가 기준을 먼저 정의 → 소프트웨어의 테스트 주도 개발(TDD)에서 영감

평가 기준 4가지 분류

① 도메인 특화 능력

  • 공개/비공개 벤치마크 활용
  • 객관식: 지식·추론 평가에 적합, 생성 능력 평가엔 부적합

② 생성 능력

  • 사실 일관성: 국소적(컨텍스트 기준) vs 전역적(공개 지식 기준)
  • 탐지 방법: SelfCheckGPT(자체검증), SAFE(검색증강 사실성 평가)
  • 텍스트 함의: 함의/모순/중립 3분류
  • 안전성: 부적절 언어, 유해 추천, 혐오 발언, 폭력, 고정관념, 편향

③ 지시 수행 능력

  • IFEval: 형식 준수 능력 측정
  • INFOBench: 내용 제약, 언어 지침, 문체 규칙까지 측정

④ 비용과 지연시간

  • TTFT, TPOT, 토큰당 시간 등
  • 필요한 것 vs 있으면 좋은 것 구분 중요

모델 선택 프로세스 4단계

  1. 하드 속성 부적합 모델 필터링
  2. 공개 정보로 유망 모델 추려내기
  3. 자체 평가 파이프라인으로 최적 모델 선정
  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가지 구성요소

  1. 작업 설명: 모델이 해야 할 일, 역할, 출력 형식
  2. 예시: 작업 수행 방법 시연
  3. 작업: 구체적으로 수행할 내용

인컨텍스트 학습

  • 제로샷: 예시 없이 지시만으로 수행
  • 퓨샷: 몇 가지 예시 제공 후 수행

시스템 프롬프트 vs 사용자 프롬프트

  • 시스템 프롬프트 = 작업 설명 (페르소나, 역할)
  • 사용자 프롬프트 = 실제 작업 내용
  • 시스템 프롬프트가 성능 향상에 더 효과적 (앞부분 위치 + 후처리 학습 영향)

컨텍스트 효율성

  • 모델은 프롬프트 시작과 끝을 중간보다 더 잘 처리
  • NIAH(건초더미 속 바늘) 테스트로 측정

프롬프트 엔지니어링 모범 사례

① 명확하고 명시적인 지시

  • 모호함 없이 작업 설명
  • 특정 페르소나 부여
  • 예시 제공
  • 출력 형식 지정

② 충분한 컨텍스트 제공

  • 필요 정보 직접 제공 또는 도구 통해 수집
  • 환각 감소 효과

③ 복잡한 작업 → 하위 작업 분해

  • 각 하위 작업별 별도 프롬프트
  • 모니터링/디버깅/병렬화 용이
  • 단점: 지연시간 증가, 비용 증가

④ 생각의 사슬 (Chain-of-Thought)

  • "단계별로 생각하세요" 추가
  • 제로샷, 원샷, 단계 명시 등 다양한 방식
  • 수학, 추론 문제에서 특히 효과적

⑤ 자기비평 (Self-Critique)

  • 모델에게 자신의 출력 검토 요청
  • 더 비판적 사고 유도

⑥ 프롬프트 반복 개선

  • 변경사항 체계적 테스트
  • 버전 관리 + 실험 추적

⑦ 도구 활용

  • DSPy, OpenPrompt 등 자동화 도구
  • 프롬프트브리더: 진화 전략으로 최적 프롬프트 탐색

방어적 프롬프트 엔지니어링

3가지 주요 공격 유형

  1. 프롬프트 추출: 시스템 프롬프트 역공학
  2. 탈옥·프롬프트 주입: 안전 기능 우회
  3. 정보 추출: 학습 데이터 노출 유도

간접 프롬프트 주입

  • 수동적 피싱: 공개 웹에 악성 코드 숨김
  • 능동적 주입: 이메일 등으로 직접 공격

방어 방법

  • 모델 수준: 지시 계층 학습, 안전 파인튜닝
  • 프롬프트 수준: 하지 말아야 할 일 명시, 시스템 프롬프트 반복
  • 시스템 수준: 격리, 명시적 승인 없이 쓰기 작업 차단, 이상 탐지

6장. RAG와 에이전트

RAG (검색 증강 생성)

RAG 아키텍처

  • 외부 데이터 소스에서 관련 정보 검색 → 생성 향상
  • 검색기 품질이 전체 시스템 성공 좌우

검색 알고리즘 비교

방식 장점 단점

어휘적 검색 (TF-IDF, BM25) 빠름, 구현 단순 의미 파악 못함
임베딩 기반 검색 의미 이해, 높은 정확도 느림, 임베딩 모델 필요
하이브리드 검색 두 방식의 장점 결합 복잡도 증가

벡터 검색 주요 알고리즘

  • LSH: 해싱 기반, 빠르지만 정확도 낮음
  • HNSW: 그래프 기반, 높은 정확도
  • IVF: K-평균 클러스터링 기반
  • 제품 양자화: 벡터 압축으로 연산 절약

검색 최적화 전략

청킹 전략

  • 고정 길이 분할, 재귀적 분할, 겹침 청킹
  • 작은 청크 = 더 많은 정보, 더 많은 연산
  • 임베딩 모델의 컨텍스트 제한 이내 유지

재순위화: 초기 결과를 더 정확하게 재정렬 질의 재작성: AI로 질의 재구성해 검색 정확도 향상 컨텍스트 검색: 각 청크에 관련 컨텍스트 추가 (앤트로픽 방식)

RAG 평가 지표

  • 컨텍스트 정밀도: 검색된 문서 중 관련 문서 비율
  • 컨텍스트 재현율: 관련 문서 중 실제 검색된 비율

에이전트

에이전트 개요

  • 자신의 환경을 인식하고 행동할 수 있는 시스템
  • AI = 두뇌 역할 (정보 처리, 계획 수립, 완료 판단)
  • 누적 오류 문제: 단계당 95% 정확도 × 10단계 = 60% 정확도

도구 유형 3가지

  1. 지식 증강: 외부 데이터 접근
  2. 능력 확장: AI 모델 한계 보완
  3. 쓰기 행동: 환경 직접 변경 (이메일 발송, 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가지 접근법

  1. 합산 (선형 결합, SLERP): 가중치 값을 더함
  2. 레이어 쌓기 (프랑켄머징): 다른 레이어를 차곡차곡 쌓음
  3. 연결: LoRA 어댑터 랭크를 더함

활용 사례

  • 다중 작업 파인튜닝 (재앙적 망각 방지)
  • 연합 학습 (여러 기기의 모델 통합)
  • 모델 업스케일링 (뎁스와이즈 스케일링)

8장. 데이터셋 엔지니어링

데이터 큐레이션 3대 기준

① 데이터 품질 (6가지 특성) 관련성, 작업 요구사항 부합, 일관성, 올바른 형식, 충분한 고유성, 규정 준수

② 데이터 커버리지

  • 다양성이 핵심 (주제, 형식, 길이 등)
  • 라마3: 수학·추론·코드가 학습 데이터의 절반 차지
  • 올바른 데이터 조합 → 스케일링 법칙 실험으로 탐색

③ 데이터 양

  • 파인튜닝 기법별 필요량 차이 (전체 파인튜닝 > PEFT)
  • 기본 모델 성능이 좋을수록 더 적은 예시 필요
  • 50~100개 예시로 먼저 실험

데이터 합성의 이유

  • 대규모 데이터 생성
  • 커버리지 확장 (특정 특성 데이터)
  • 품질 향상 (AI가 더 복잡한 예시 생성)
  • 프라이버시 문제 해결
  • 모델 증류

AI 기반 데이터 합성 방법

  • 지시 생성: 주제·키워드 목록 → AI로 지시 생성
  • 응답 생성: 지시당 하나 또는 여러 응답
  • 역번역 검증: 코드 번역 → 검증 → 역번역 검증
  • CoT 데이터: 단계별 응답 포함 시 추론 능력 크게 향상

데이터 처리 단계

  1. 데이터 검사 (기본 통계 확인)
  2. 중복 제거 (전체, 문서 내, 문서 간)
  3. 데이터 정리 및 필터링
  4. 데이터 형식 맞추기

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캐시, 배치처리)
├── 아키텍처 설계 (가드레일, 라우터, 캐싱)
└── 모니터링 (지표, 로그, 드리프트 감지)
728x90
반응형