티스토리 뷰

안녕하세요, AI 엔지니어링을 학습하기 위해 인프런 AI 엔지니어링 완독챌린지에 참여하며 주차별 이해한 내용을 기록합니다.

 

4주차 독후감

7장 '파인튜닝'과 8장 '데이터셋 엔지니어링'은 AI 모델을 실제 서비스에 적용하는 데 있어 가장 실질적이고 중요한 핵심 기술을 다루고 있습니다. 특히, 파인튜닝 섹션에서 대규모 모델의 학습에서 발생하는 메모리 병목 현상을 해결하기 위한 양자화와 PEFT(LoRA) 같은 최신 기법들을 구체적으로 다룬 점이 인상 깊었습니다. 이는 단순히 이론을 넘어 현업 AI 엔지니어가 직면하는 하드웨어 제약과 그 해결책을 제시하며 실용적인 깊이를 더했습니다.

또한, 8장 데이터셋 엔지니어링은 "모델은 데이터에 의해 결정된다"는 명제를 다시 한번 강조하며, 데이터 큐레이션의 중요성부터 중복 제거, 합성 데이터의 활용까지 다루어, 고성능 AI 시스템 구축의 근간이 데이터에 있음을 명확히 이해할 수 있었습니다. 두 장은 AI 엔지니어링의 실질적인 문제 해결 능력을 키우는 데 필수적인 지식들을 체계적으로 제공하고 있습니다.

 

 

7장. 파인튜닝 (Fine-Tuning)

파인튜닝은 이미 대규모 데이터셋으로 학습된 사전 학습 모델(Pre-trained Model)을 특정 작업이나 도메인에 맞게 추가로 학습시키는 과정을 말합니다.

 

7.1 파인튜닝 개요 및 7.2 파인튜닝이 필요한 경우

  • 파인튜닝 개요: 대규모 언어 모델(LLM)과 같은 사전 학습 모델은 방대한 일반 지식을 가지고 있지만, 특정 산업 분야의 전문 지식이나, 원하는 작업(예: 감성 분석, 질의응답)에 최적화되어 있지 않을 수 있습니다. 파인튜닝은 이러한 모델의 성능을 특정 목표에 맞춰 개선하는 핵심 기술입니다.
  • 파인튜닝이 필요한 이유:
    • 특정 작업에 대한 정확도를 높일 때.
    • 도메인 특화 지식을 모델에 주입할 때.
    • 출력 형식이나 모델의 행동(Alignment)을 제어하고 싶을 때.
  • 파인튜닝을 하지 말아야 하는 이유:
    • 데이터가 충분하지 않거나 품질이 낮을 때.
    • 단순히 최신 정보만 반영하고 싶을 때 (이 경우 RAG가 더 효율적일 수 있음).
  • 파인튜닝과 RAG (Retrieval-Augmented Generation):
    • RAG는 외부 지식(문서)을 검색하여 모델의 답변 생성에 참고하게 하는 방법으로, 최신 정보 반영이나 출처 명시에 유리합니다.
    • 파인튜닝은 모델 자체의 지식과 능력을 개선하는 것으로, 새로운 기술 습득이나 모델의 근본적인 행동 변화에 유리합니다. 이 둘은 상호 보완적으로 사용될 수 있습니다.

7.3 메모리 병목 현상

대규모 모델을 파인튜닝할 때는 막대한 GPU 메모리가 필요해 병목 현상이 발생할 수 있습니다.

  • 역전파와 학습 가능한 파라미터: 모델 학습 시 역전파를 위해 활성화 함수 출력(Activations) 값들을 메모리에 저장해야 합니다. 특히 학습 가능한 파라미터의 수가 많을수록, 그리고 배치 크기(Batch Size)가 클수록 메모리 사용량이 급증합니다.
  • 메모리 계산: 학습 시 메모리 사용량은 주로 모델 파라미터 저장, 옵티마이저 상태 저장, 활성화 값 저장에 의해 결정됩니다.
  • 수치 표현 방식과 양자화: 메모리 절약을 위해 파라미터의 수치 표현 방식을 변경합니다.
    • 일반적으로 FP32 (32비트 부동 소수점)를 사용하지만, FP16 또는 BF16 (16비트)을 사용하면 메모리를 절반으로 줄일 수 있습니다.
    • 양자화(Quantization)는 파라미터를 4비트(Int4)나 8비트(Int8)와 같이 더 낮은 정밀도로 표현하여 메모리 사용량을 대폭 절감하는 기법입니다.

7.4 파인튜닝 기법

메모리 효율과 학습 효율을 높이기 위한 다양한 파인튜닝 기법들이 개발되었습니다.

  • 파라미터 효율적 파인튜닝 (PEFT: Parameter-Efficient Fine-Tuning): 모델 전체가 아닌 일부 파라미터만 학습하거나 추가적인 작은 파라미터를 도입하여 학습하는 기법입니다.
    • LoRA (Low-Rank Adaptation): 사전 학습된 가중치 행렬에 작은 저랭크 행렬(Low-Rank Matrix) 쌍을 추가하여 학습함으로써 학습 파라미터 수를 획기적으로 줄입니다.
  • 모델 병합과 다중 작업 파인튜닝:
    • 모델 병합(Model Merging): 서로 다른 작업에 대해 파인튜닝된 모델의 가중치를 결합하여 새로운 모델을 만듭니다.
    • 다중 작업 파인튜닝(Multi-Task Fine-Tuning): 여러 작업을 하나의 데이터셋으로 묶어 동시에 모델을 파인튜닝합니다.
  • 파인튜닝 전술:
    • Full Fine-Tuning: 모델의 모든 파라미터를 학습합니다. 가장 좋은 성능을 기대할 수 있으나 메모리 비용이 높습니다.
    • Feature Extraction (Head-Tuning): 모델의 출력층(Head)만 학습하고 사전 학습된 본체(Body)는 고정합니다.
    • Layer-wise Fine-Tuning: 모델의 마지막 몇 개 층만 학습합니다.

 

 

8장. 데이터셋 엔지니어링 (Dataset Engineering)

데이터셋 엔지니어링은 AI 모델 학습에 사용될 데이터를 수집, 정제, 가공, 관리하는 전반적인 과정을 의미하며, 모델 성능에 결정적인 영향을 미칩니다.

 

8.1 데이터 큐레이션 (Data Curation)

모델 학습에 적합한 고품질의 데이터셋을 선별하고 조직화하는 과정입니다.

  • 데이터 품질: 정확성, 일관성, 최신성이 중요합니다. 오염된 데이터(Noise)는 모델 학습을 방해합니다.
  • 데이터 커버리지: 모델이 학습해야 할 다양한 시나리오나 도메인을 데이터가 충분히 포괄하는지 확인합니다.
  • 데이터 양: 일반적으로 데이터 양이 많을수록 성능이 좋지만, 데이터의 품질이 양보다 우선합니다.
  • 데이터 수집과 주석: 데이터를 수집하고 모델이 이해할 수 있도록 레이블(주석)을 다는 작업입니다. 시간과 비용이 많이 소요됩니다.

8.2 데이터 증강 및 합성 (Data Augmentation & Synthesis)

데이터의 양을 늘리고 다양성을 확보하기 위한 기법들입니다.

  • 데이터 합성을 하는 이유:
    • 실제 데이터 수집이 어렵거나 비용이 많이 들 때.
    • 희귀한 사례(Rare cases)를 확보하기 어려울 때.
    • 데이터셋의 편향(Bias)을 줄이고 모델의 일반화 성능을 높일 때.
  • 전통적인 데이터 생성 기법: 이미지 회전, 자르기, 색상 변경이나 텍스트의 동의어 대체, 백트랜슬레이션(번역 후 재번역) 등이 있습니다.
  • AI 기반 데이터 합성: 생성형 AI 모델(Generative Models)을 활용하여 원본 데이터와 유사하거나 새로운 특성을 가진 데이터를 생성합니다 (예: LLM으로 새로운 질의응답 쌍 생성).
  • 모델 종류: 데이터를 합성하는 데 사용되는 모델 종류에는 GAN, VAE, LLM 등이 있습니다.

8.3 데이터 처리 (Data Processing)

수집된 원시 데이터를 학습에 적합한 형태로 정제하고 변환하는 과정입니다.

  • 데이터 검사: 데이터의 누락, 오류, 이상치(Outliers) 등을 식별하고 처리합니다.
  • 데이터 중복 제거: 학습 데이터셋 내의 완전 또는 부분 중복을 제거하여 모델이 특정 데이터에 과적합(Overfitting)되는 것을 방지합니다.
  • 데이터 정리 및 필터링: 품질이 낮은 데이터(저품질 텍스트, 노이즈가 많은 이미지 등)를 제거하거나 수정합니다.
  • 데이터 형식 맞추기: 모든 데이터가 모델이 요구하는 입력 형식(예: 토큰화, 특정 해상도)에 맞도록 변환합니다.

 

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함