AI-System-Builiding-and-Operating
AI 시스템 구축과 운영(아키텍처, 배포, 모니터링) 관련 정리
Model-in-Service vs Model-as-a-Service
구분 | Model-in-Service | Model-as-a-Service(MaaS) |
---|---|---|
정의 | 앱 내부에 모델 포함해 운영 | 모델을 독립 API 서비스로 배포, 여러 앱에서 호출 |
구조 | 모델·애플리케이션 강결합 | 모델은 독립 실행, 앱은 네트워크/API로 연동 |
배포 위치 | 앱 서버 내부(온프레미스/내장) | 클라우드·온프레미스 API 서버 |
유지보수 | 모델 변경 시 서비스 전체 배포 | 모델만 교체/업데이트, 서비스는 그대로 |
확장성 | 서비스 단위 확장(모델 확장 비효율) | 모델 서비스만 별도 스케일링 가능 |
장점 | 단순 구조, 네트워크 호출 없음 → 지연↓ | 공용 사용, 교체·버전관리 용이, 확장성↑ |
단점 | 앱 전체 수정/중복 배포 발생 | 네트워크 비용·별도 인프라 필요 |
활용 | 소규모 앱, 오프라인, 전용 기능 | Azure ML, SageMaker, GCP AI Platform 등 대규모 환경 |
AI 모델 배포 프로세스
문제 해설 그림 참고(아키텍처/파이프라인)
핵심 단계
- 패키징: 컨테이너화(Docker), 종속성 잠금
- 서빙: REST/gRPC/스트리밍(배치/온라인), A/B·카나리·블루그린 배포
- 스케일링: 오토스케일(동시요청·지연 기준), GPU/CPU 혼합
- 관측성: 로깅/메트릭(지연, 에러율), 트레이싱, 모델/데이터 드리프트 모니터링
- 안전장치: 요청 검증, 레이트리미트, 안전필터, 롤백 전략
- 거버넌스: 모델카드, 버전/아티팩트 레지스트리, 재현성(Seed/환경)
딥러닝 방법 개요
- Zero-shot: 학습에 없던 클래스를 설명/지식 기반으로 바로 처리
- Few-shot: 소량 예시로 빠른 적응
- One-shot: 예시 1개로 학습/적응
- Transfer Learning: 사전학습 지식을 전이해 성능/수렴 개선
- Meta-learning: “빨리 배우는 방법” 학습(태스크 전반에 빠른 적응)
- GZSL(Generalized Zero-Shot): seen+unseen을 동시에 다루는 설정
추가 메모
- Zero/Few-shot은 LLM·비전-언어 모델에서 프롬프트/아답터로 활용 빈번
- GZSL은 허구/허상 방지 위해 텍스트 속성/어트리뷰트 정렬 품질이 핵심
Transfer vs Meta-Learning
구분 | Transfer Learning | Meta-Learning |
---|---|---|
핵심 아이디어 | 기존 모델 지식 재사용 | “빠르게 배우는 법” 자체 학습 |
접근 방식 | Pre-train → Fine-tune | 다양한 태스크 경험으로 빠른 적응 |
데이터 필요성 | 새 태스크에 일정량 필요 | 아주 적은 데이터로도 적응 |
대표 사례 | BERT/ResNet 파인튜닝 | MAML, ProtoNet, Few-shot LLM 적응 |
Zero/Few-shot과 관계 | Zero-shot은 전이 모델에 프롬프트로 적용 | Few/One-shot 잘하기 위한 핵심 기법 |
프롬프팅 방법
- Zero-shot: 예시 없이 질문만 제공
- Few-shot: 몇 개의 예시를 함께 제공
- Chain-of-Thought(CoT): 단계별 추론 설명을 유도
- Self-Consistency: 여러 CoT 경로 중 다수결 앙상블
- ReAct(Reason+Act): 추론과 도구 호출 병행
- Role/Persona Prompting: 역할 부여로 스타일/제약 제어
- RAG(Retrieval-Augmented Generation): 외부 지식 검색 후 반영
AI 모델 아키텍쳐 설계(NAS)
NAS (Neural Architecture Search)
- 정의
신경망 아키텍처(구조)를 자동으로 설계하는 방법론.
사람이 CNN, RNN 구조를 직접 설계하는 대신, 탐색 알고리즘이 자동으로 최적 구조를 찾음.
- NAS 구성 요소
- 탐색공간 (Search Space)
탐색 가능한 모든 아키텍처 후보들의 집합.
예: Conv3x3, Conv5x5, Skip Connection, Pooling 등을 어떻게 조합할 수 있는지.
- 상태공간 (State Space)
탐색 과정에서 “현재까지의 아키텍처 상태”를 표현.
예: 현재까지 몇 개의 레이어를 어떤 연산으로 쌓았는가?
- 보상공간 (Reward Space)
선택된 아키텍처를 평가했을 때 얻을 수 있는 보상(성능 지표)의 집합.
예: 검증 정확도, F1-score, Latency, FLOPs, 메모리 사용량.
- NAS 탐색 전략 (Search Strategy)
강화학습 기반: RNN Controller가 아키텍처를 생성 → 보상(성능)에 따라 학습 (예: NASNet).
진화 알고리즘 기반: 후보 아키텍처를 세대별로 진화시키며 성능 좋은 구조 선택 (예: AmoebaNet).
Gradient 기반 (DARTS): 탐색 공간을 **연속화(differentiable)**하여 그라디언트 최적화로 탐색.
Bayesian Optimization 기반: 확률 모델로 성능을 예측하며 탐색.
One-Shot NAS (ENAS): 슈퍼넷(Supernet)을 학습한 뒤, 가중치 공유로 빠른 탐색.
FLOPS, 모델 경량화
FLOPs: 모델이 한 번의 추론(forward pass) 또는 학습 시 필요한 총 연산 횟수
“이 모델을 실행하려면 얼마나 많은 수학 연산(곱셈, 덧셈 등)을 해야 하는가?”
기법 | 설명 | 효과 |
---|---|---|
Pruning | 중요하지 않은 가중치/채널 제거 | FLOPs ↓, 파라미터 ↓ |
Quantization | FP32 → INT8/INT4 변환 | 메모리 ↓, 속도 ↑ |
Knowledge Distillation | 큰 모델 → 작은 모델 학습 | 모델 크기 ↓, 성능 유지 |
Low-Rank Factorization | 가중치 행렬을 저차원 행렬 곱으로 근사 | 연산량 ↓ |
Parameter Sharing | 여러 레이어가 같은 가중치 공유 | 파라미터 ↓ |
Efficient Architecture | MobileNet, ShuffleNet처럼 처음부터 효율적 구조 설계 | FLOPs ↓, 속도 ↑ |
NAS 기반 | Neural Architecture Search로 최적 구조 탐색 | 성능 대비 효율 ↑ |
Compound Scaling | Depth·Width·Resolution을 균형 있게 동시에 확장 (EfficientNet) | 같은 자원 대비 성능 ↑ |
AI-System-Builiding-and-Operating
https://hamin7.github.io/2025/09/04/AI-System-Builiding-and-Operating/
install_url
to use ShareThis. Please set it in _config.yml
.