티스토리 뷰
Normalization / Standardization / Regularization
- Normalization: 값을 0~1 사이로 만듦
- 예: Min-Max Scaling

- Standardization: 평균 0, 분산 1이 되도록 scale을 조정. 값의 범위는 자유.
- 회귀 분석이나 PCA와 같은 알고리즘에서 많이 사용됨

- Regularization(규제): weight를 조정하는 데 규제를 거는 기법
- Overfitting을 방지하기 위해 사용
- 예: L1 regularization, L2 regularization (L2-norm을 추가하여 파라미터가 더 작은 값을 가지도록 함)
Data
- Data Parallelism
- Distributed Data Parallel (DDP): 모든 GPU가 전체 파라미터를 복제
- Sharded Data-Parallelism: 파라미터들을 GPU간에 분산하여 저장하고, 연산에 필요한 데이터만 GPU 간 통신하여 공유함. (ex: DeepSpeed, FSDP)
- Tensor Parallelism: 행렬을 여러 GPU에 분산 처리 (ex: Megatron-LM)
- Data Warehouse
- Database는 OnLine Transaction Processing (OLTP)를 위한 저장소이며, Data Warehouse는 OnLine Analysis Processing (OLAP)를 위한 저장소임
- OLTP는 행 기반, OLAP은 열 기반
- Data Warehouse는 ETL(추출-변환-로드) 프로세스를 통해 저장됨
- 여러 데이터 소스에서 데이터를 추출(Extract)하고, 이를 통일된 스키마로 변환(Transform)하여 Data Warehouse에 로드(Load)함
- Database는 OnLine Transaction Processing (OLTP)를 위한 저장소이며, Data Warehouse는 OnLine Analysis Processing (OLAP)를 위한 저장소임

- Data Lake
- Data Warehouse와의 큰 차이점은 ELT(추출-로드-변환) 프로세스를 사용한다는 점!
- Feature Store
- ML Pipeline에서 필요한 feature를 중앙 집중식으로 저장, 관리, 제공하는 시스템
- 데이터 일관성을 유지하고, 한번 정의해둔 feature를 여러 모델에서 재사용할 수 있음
- Batch 방식의 offline 저장과 실시간 online 저장을 모두 지원 => 학습용 데이터와 실시간 추론용 데이터를 동시에 관리 가능
- 학습-서빙 편향 (Training-Serving Skew) 문제를 해결하는 방법 중 하나
- 데이터 버전 관리 Level: 데이터가 특정 파일시스템에만 존재 - 학습할때마다 데이터 스냅샷 저장 - 데이터 버전화 - 대용량 데이터를 위한 특수 솔루션
Models
- Diffusion model (확산 모델)
- 데이터 증강을 위해 많이 사용되는 생성 모델
- 원본 데이터로부터 노이즈(Noise)를 조금씩 더해가면서 데이터를 완전히 노이즈로 만드는 Forward Process와, 이와 반대로 노이즈로부터 조금씩 복원해가면서 데이터를 만들어내는 Backward Process을 통해 학습한다.
- 주로 이미지 생성에 많이 쓰이지만 다른 모달에서도 사용 가능
- 예: DALL-E 2, Stable Diffusion
- 이미지 생성 모델
- DALL-E, unCLIP (CLIP에 prior, decoder가 추가된 구조)
- 멀티 모달 모델
- CLIP
- 텍스트와 이미지를 각각의 인코더로 인코딩한 후, 벡터 간 유사도를 기반으로 Contrastive Learning하여 학습
- CLIP
- 언어 모델
- SpanBERT vs. BART
- 두 모델 모두 마스킹된 span에 올 토큰을 예측하는 방식으로 학습하는 것은 동일
- SpanBERT는 span이 토큰 단위이므로 각 span마다 들어갈 토큰을 예측하면 됨
- 그러나 BART의 Text Infilling 기법에서는 연속된 토큰들을 하나의 span으로 취급하기 때문에, 마스킹된 span에 들어갈 토큰 수까지 예측해야 하는 것이 차이점!
- RoBERTa
- BERT의 마스킹 과정을 개선하여, 동적 마스킹(Dynamic masking)을 사용한다. 이는 데이터를 로딩할 때마다 마스킹 위치를 바꾸는 것을 의미한다.
- ELECTRA
- Generator는 마스킹된 위치에 대한 토큰을 예측하고, Discriminator는 이 토큰이 실제 데이터의 것인지 아니면 Generator에 의해 생성된 것인지를 판별한다. (‘문장’ 수준이 아니라 개별 ‘토큰’ 수준에서 예측하는 점에 유의!)
- SpanBERT vs. BART
Self-supervised Learning (자기 지도 학습)
- 레이블이 없는 데이터에서 스스로 학습에 필요한 레이블을 생성하여 학습하는 기법
- 데이터 자체에서 일부 정보를 숨기거나 변형하고 이를 예측하는 방식으로 모델을 학습시켜, 데이터의 내재된 구조나 특징을 학습
- SimCLR
- 학습 과정에서 Contrastive loss 계산 시 분자는 Positive sample 간의 유사도를 나타내며, 분모는 같은 배치의 다른 모든 샘플에 대한 유사도를 나타낸다.
- BYOL
- 온라인 네트워크가 경사하강법을 통해 업데이트되고, 타켓 네트워크는 온라인 네트워크의 파라미터를 이용한 EMA 방식으로 업데이트된다.
- Jigsaw puzzle
- 패치들은 무작위로 섞이고, 원래 순서대로 재배열함으로써 특징을 학습한다.
- MAE (Maskd Auto Encoder)
- Encoder는 마스킹된 이미지를 latent representation으로 만든다. 이 과정에서, Encoder는 누락된 정보를 추론하는 법을 학습하게 된다.
- Decoder는 Encoder로부터 받은 latent representation을 사용하여 원본 이미지의 마스킹된 부분을 복원한다. 이 복원 과정에서 Decoder는 마스킹된 부분을 보간하고, 원본 데이터와 비교하여 학습하는데, 이를 통해 원본 이미지를 가능한 정확하게 복원하려고 시도한다.
- RotNet
- 주어진 이미지를 여러 각도로 회전시킨 후 이미지가 어느 각도로 회전했는지를 예측하며 이미지의 특징을 학습한다.
- Masked Language Modeling (MLM)
Continual Learning

- 1. Logging
- 모든 데이터를 루프에 가져옴. 핵심 질문은 "어떤 데이터를 저장해야할까?"
- 2. Data Curation
- 핵심 질문은 "어떤 데이터를 레이블링하고 재학습에 우선적으로 적용할 것인가?"
- 3. Retraining Trigger
- 핵심 질문은 "언제 재훈련을 해야 하는가?". 이 단계의 결과는 재학습을 시작하라는 신호임
- 4. Dataset Formation (데이터셋 형성)
- 전체 데이터 중 재학습에 사용할 데이터셋을 선택
- (Training)
- 5. Offline Test
- 재학습된 모델이 프로덕션 환경에 투입하기에 충분히 좋은지 검증
- 6. Depolyment & Online Test
- 핵심 질문은 "배포가 성공적이었는지 어떻게 알 수 있는가?". 이 단계의 결과는 모든 사용자에게 이 모델을 완전히 출시하라는 신호임
Active Learning
- 모델이 스스로 학습에 가장 도움이 될 데이터를 선택하여 라벨링을 요청하는 능동적 학습 방법
- 라벨링할 데이터를 선택하는 주요 전략
- Uncertainty Sampling (불확실성 샘플링): 모델이 가장 확신이 없는 (예측 확률이 낮은) 데이터를 선택하는 전략
- Query By Committee: 여러 모델(위원회)이 서로 다르게 예측한 (일치도가 낮은) 데이터를 선택하는 전략 (이러한 데이터가 학습에 큰 영향을 준다고 판단)
- 이를 통해 전체 데이터 중 일부만 라벨링하여도 좋은 성능을 낼 수 있어, 라벨링 비용 및 시간을 크게 줄일 수 있음
강화 학습
- DQN (Deep Q-Network)
- Value function을 최적화
- CNN을 사용해 state를 표현하고, experience replay와 타겟 네트워크 기법을 통해 학습 안정성과 효율성을 높인다.
- 이산적 행동 공간에서 사용되며, 아타리 게임에서 뛰어난 성능을 보임
- PPO (Proximal Policy Optimization)
- Policy 모델을 기반으로 학습 (on-policy 방식)
- Reward Model을 사용해 강화학습 수행 => 학습이 복잡
- Critic 모델 (Value function을 추정하는 모델) 사용
주로 Actor-Critic 구조 사용, 기존 TRPO의 복잡함을 줄이고 Clipping 기법을 도입해 정책 업데이트 시 큰 변화가 발생하지 않도록 하여 안정성을 높임
- DPO (Direct Preference Optimization)
- Reward Model 없이 인간의 선호 데이터만으로 학습 (off-policy 방식)
- 학습이 간단하고 효율적. PPO보다 우수한 성능
- GRPO (Group Relative Policy Optimization)
- Policy 모델을 기반으로 학습 (on-policy 방식)
- Critic 모델 없이, policy 자체에서 여러 답변을 그룹화하고 그룹 내 답변 간의 상대적인 점수 차이를 이용해 policy를 업데이트하는
- 자원 효율적, 일반화 능력에 탁월
- DeepSeek-R1 모델에서 제안한 학습 방법
- DPO는 in-domain(훈련 데이터 범위 내)에서 좋은 성능을 내고, GRPO는 out-of-domain(훈련 범위를 벗어난 데이터)에서 더 뛰어난 일반화 능력을 보임
MoE (Mixture of Experts)

- 모델을 여러 개의 작은 전문화된 하위 모델(expert)로 분할하고, 입력 데이터마다 적합한 Expert만 선택적으로 활성화하여 효율적으로 학습/추론하는 기술
- 핵심 구성 요소
- Expert Networks: 여러 개의 하위 신경망으로, 각기 특정한 데이터나 작업에 특화되어 학습됨
- Gating Network: 입력 데이터를 분석해 어떤 Expert를 사용할지 결정. 보통 softmax 기반 확률을 사용해 일부 전문가(들)을 선택
- 입력 벡터 x에 대해 가중치 행렬 Wg를 곱한 결과에 Softmax 함수를 적용하여, 각 Expert에 할당할 확률 벡터 Gσ(x)를 계산합니다.

- 작동 원리
- 입력이 들어오면 Gating Network가 이를 분석해 최적의 Expert(s)를 선택
- 선택된 Expert Networks만 활성화되어 연산을 수행
- 이들의 출력을 Gating Network 확률 가중치에 따라 합산하여 최종 출력을 만듦
- 장점
- 선택된 전문가만 활성화해 효율적 계산 가능
- 모델 전체 용량을 크게 늘릴 수 있으면서도 연산 비용은 일정하게 유지
- 각 전문가가 특화되어 더 세밀한 모델링 가능
최적화/경량화
- NAS
- 최적의 신경망 구조를 자동으로 설계하는 방법이며, 다양한 신경망 구조를 탐색하고 평가한다.
- 주요 구성 요소
- Search Space: 탐색할 신경망 아키텍처의 범위를 정의하는 검색 공간
- Search Strategy: Search Space에서 최적의 아키텍처를 찾는 검색 방법
- 각 아키텍처의 성능을 평가하는 방법
- DARTS (Differentiable Architecture Search)
- NAS의 한 방법. Search Space를 미분 가능한 연속적인 공간으로 만들어 경사 하강법(gradient descent)을 통해 효율적인 신경망 아키텍쳐를 탐색하는 기법
- 모델 경량화 방법
- Pruning: 모델의 가중치나 뉴런 중에서 상대적으로 불필요한 부분을 제거
- Compound Scaling: 네트워크의 깊이, 너비, 해상도를 균형 있게 조절하여 효율성을 극대화
- 하이퍼파라미터 튜닝
- 그리드 탐색(Grid Search)
- 각 하이퍼파라미터에 대해 가능한 값의 범위를 정하고, 모든 가능한 조합을 격자(grid) 형태로 생성해 전부 시도해보는 방법
- 장점: 최적의 하이퍼파라미터 조합을 체계적으로 찾을 수 있음
- 단점: 탐색 공간이 커지면 계산량이 급격히 늘어남
- 랜덤 탐색(Random Search)
- 설정한 하이퍼파라미터 범위 내에서 임의로 무작위 조합을 선택하여 시도하는 방법
- 장점: 모든 조합을 탐색하지 않고 일부만 시도하므로 계산 시간이 빠르고 탐색이 효율적
- 단점: 최적의 조합을 보장하지 않음
- 베이지안 탐색/최적화(Bayesian Optimization)
- Surrogate Model: 이전에 시도한 하이퍼파라미터들의 결과를 바탕으로 확률 모델 (예: Gaussian Process)을 만들어 목적 함수의 영역을 확률적으로 추정함
- Acquisition Function: 그 추정을 활용해 다음에 탐색할 하이퍼파라미터 후보를 지능적으로 선택함
- 장점: 적은 수의 시도로도 최적값에 효과적으로 근접 가능
- 그리드 탐색(Grid Search)
- 성능 최적화 (추론 최적화)
- Model Distillation (지식 증류)
- 큰 모델(teacher)의 출력 분포를 작은 모델(student)이 모방하도록 학습시키는 방식 → 추론 속도 개선, 모델 크기 축소
- Quantization (양자화)
- 모델 가중치의 정밀도를 줄여 모델 크기를 줄이고 연산 자원을 줄이는 방식 → 메모리 및 실행 효율 향상
- Caching (캐싱)
- 자주 사용되는 입력에 대한 결과를 저장해두고 사용 → 응답시간 단축
- Batching (배치 처리)
- 여러 요청을 묶어서 한 번에 처리 → GPU 등 하드웨어 자원을 효율적 활용 가능
- Model Distillation (지식 증류)
Evaluation Metric
- Confusion Matrix

- Recall (재현율)
- 실제 Positive인 것 중에 모델이 맞춘 비율
- TP / (TP + FN)
- 사용 예시: 실제 Positive인 것을 놓치면 안되는 경우. 공항 검색대에서 캐리어에 폭발물이 들어있는지 판별하는 모델을 평가할 때 (폭발물이 들어있는 캐리어를 찾아내지 못하면 패닉!!).
- Precision (정밀도)
- 모델이 Positive라고 예측한 것 중에 실제로 맞춘 비율
- TP / (TP + FP)
- 사용 예시: 모델의 Positive 예측이 틀리지 않는게 중요한 경우. 암 진단 모델을 평가할 때 (암이라고 진단했는데 실제 암이 아닌 경우 패닉!!).
MLOps / Deployment
- Model-in-service: 호스팅된 웹 서버에 모델의 패키지 버전이 저장되어 있는 방식
- UI와 모델 병합, 프로토타입 방식 (Gradio, Streamlit)
- 장점: 기존 인프라를 재사용 가능
- 단점:
- 웹 서버가 모델과 다른 언어로 작성되었을 경우, 모델을 해당 언어로 변환하는 것이 어려움
- 모델은 서버 코드보다 훨씬 자주 변경될 수 있으므로 (특히 모델 구축 초기 단계에서), 모델을 업데이트할 때마다 전체 애플리케이션을 다시 배포해야 함
- 모델이 대용량일 경우 웹 서버 리소스를 많이 소모하며, 이는 사용자 경험에 영향을 미칠 수 있음
- 서버용 하드웨어에 GPU가 탑재되는 경우가 드물음
- 모델과 애플리케이션이 서로 다른 스케일링 속성을 가질 수 있음

- Batch Prediction: 각 데이터 포인트에 대해 모델을 실행한 다음, 각 모델 추론 결과를 데이터베이스에 저장
- UI와 모델 분리
- 장점: 구현이 쉬움, 안정성 (잘 동작하는 것이 검증됨), 확장성, 예측을 빠르게 검색 가능
- 단점: 모델의 예측 결과가 지연될 수 있음. 모델이 자주 오래된 상태가 됨.

- Model-as-service: 모델을 별도의 자체 서비스로서 온라인에서 실행. 모델 서비스에 요청을 보내고 응답을 받는 방식으로 서버/클라이언트와 상호 작용
- UI와 모델 분리
- 장점
- Dependability(신뢰성): 모델 버그로 인해 웹 애플리케이션이 중단될 가능성이 낮음
- Scalability(확장성): 모델에 맞는 최적의 하드웨어를 선택해 확장 가능
- Flexibility(유연성): 모델을 다양한 애플리케이션에서 쉽게 재사용할 수 있음
- 단점
- 모델이 별도의 서비스이므로 서버/클라이언트가 모델과 상호 작용할 때 네트워크 호출이 추가되어, 지연 시간(Latency)이 발생할 수 있음
- 별도의 서비스를 호스팅하고 관리해야 하므로 인프라가 복잡

- Edge Deployment
- 모델을 Client의 기기(Edge)에 직접 로드하는 방법
- 상당한 복잡성을 유발하므로 신중히 선택
- 장점: 비용이 무료, 서비스 운영을 걱정할 필요가 없음
- 단점: 하드웨어/소프트웨어 리소스가 제한적, 모델 개발자보다 사용자가 이 프로세스를 더 많이 제어하기 때문에 모델 업데이트가 어려움

- Docker
- Container 기반 배포 방법
- 종속성과 코드, 모델 등을 포함한 환경을 패키지화하여 안정적인 배포 환경 구성
- 경량화된 환경 제공. 라이브러리 및 종속성 관리 용이, 개발-배포 환경 간 일관성 보장
- Docker의 3가지 구성 요소
- Client: 명령어들이 정의된 Dockerfile로부터 이미지를 빌드하기 위해 노트북에서 실행되는 곳
- Docker Host: Dockerfile의 명령어들을 실행하여 Container를 생성함. Docker Host는 노트북이나 서버에서 실행됨
- Registry: 모든 Container가 저장되는 곳. Docker Host와 통신함
- 위와 같은 분리를 통해, Docker 이미지를 빌드, 풀, 실행하는 데 노트북의 컴퓨팅 및 스토리지 용량에 제약을 받지 않음

- Virtual Machine vs. Docker
- Virtual Machine: 전체 OS와 해당 OS를 기반으로 구축된 라이브러리 및 애플리케이션을 패키징함. OS 자체에 많은 코드가 있기 때문에 매우 무거움
- Docker: Docker와 같은 컨테이너는 OS와 격리하여 라이브러리와 애플리케이션을 함께 패키징하여 가벼움

- 모델 배포 방법은 크게 2가지가 있음 -> Container Orchestration, Serverless
- Container Orchestration (예: Kubernetes)
- Kubernetes 같은 오케스트레이터가 컨테이너화된 애플리케이션(모델) 및 그 의존성을 자동으로 배포, 확장, 관리하는 방법
- 복잡한 분산 시스템을 안정적으로 운영하기에 적합

- Serverless (예: AWS Lambda)
- 클라우드 공급자가 개발자 대신 인프라를 관리
- 인프라 관리를 더 높은 수준으로 추상화하여 운영 복잡성을 극적으로 줄이며, 배포가 더 간단하고 빠름
- 단점: 대형 모델 지원 어려움, GPU 지원 어려움, cold start 문제
기타
- Surrogate 모델이란
- 복잡한 시스템이나 모델을 대신하여 근사치를 제공하는 보조 모델. 블랙 박스 모델의 예측을 해석가능한 모델에 학습시킴으로써 예측을 해석하고 이해할 수 있다.
- Focal Loss
- 클래스 불균형 문제를 해결하기 위한 손실 함수. 모델이 쉽게 분류하는 샘플은 손실 기여도를 낮추고 어려워하는 샘플은 손실 기여도를 높여, 소수 클래스를 더 잘 분류하도록 한다.
- Overfitting 방지 방법
- Regularization, Dropout, Early Stopping, Batch Normalization
- GPU의 메모리를 차지하는 것
- 모델 파라미터의 부동 소수점, Gradient, Optimizer State, 데이터 Batch
- TDD (Test-Driven Development)
- Write test
- Test fails
- Write code
- Test pass
- Refactor
반응형
'AI' 카테고리의 다른 글
| MCP 쉽게 사용해보기 (with Claude Desktop, VS Code) (0) | 2025.10.17 |
|---|---|
| Gemma 3 (0) | 2025.10.06 |
| [Agent] Function call, Tool use, Planning 개념 구분 (2) | 2025.08.11 |
| Rotary Positional Embedding (RoPE)에 대해 알아보자 (0) | 2025.04.12 |
| KL-Divergence Loss (1) | 2023.12.23 |
댓글