AI-System-Builiding-and-Operating

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)

  1. 정의

신경망 아키텍처(구조)를 자동으로 설계하는 방법론.

사람이 CNN, RNN 구조를 직접 설계하는 대신, 탐색 알고리즘이 자동으로 최적 구조를 찾음.

  1. NAS 구성 요소
  1. 탐색공간 (Search Space)

탐색 가능한 모든 아키텍처 후보들의 집합.

예: Conv3x3, Conv5x5, Skip Connection, Pooling 등을 어떻게 조합할 수 있는지.

  1. 상태공간 (State Space)

탐색 과정에서 “현재까지의 아키텍처 상태”를 표현.

예: 현재까지 몇 개의 레이어를 어떤 연산으로 쌓았는가?

  1. 보상공간 (Reward Space)

선택된 아키텍처를 평가했을 때 얻을 수 있는 보상(성능 지표)의 집합.

예: 검증 정확도, F1-score, Latency, FLOPs, 메모리 사용량.

  1. 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) 같은 자원 대비 성능 ↑
Author

Hamin Lee

Posted on

2025-09-04

Updated on

2025-09-04

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.