몬테 카를로(Monte Carlo) 방법과 TD(Temporal Difference) 학습의 차이점은 무엇인가요?
MC
에피소드(시작부터 종료까지 일련의 상태와 행동)별 학습
보상의 총합 기반 → 초기 추정치가 매우 변동적임TD
각 시간 별로 바로 학습 가능 → 실시간 학습 가능
현재 상태의 추정 가치와 다음 상태의 추정 가치의 시간차 오류 사용 학습
Q-러닝(Q-Learning)과 SARSA의 차이점은 무엇인가요?
머신러닝 모델을 프로덕션 환경에 배포하기 전에 고려해야 할 사항은 무엇인가요?
- 모델 성능 평가:
정확도:
다양한 데이터셋 (훈련, 검증, 테스트)에서 모델 정확도를 측정하고 비교합니다.
정확도 지표 (예: AUC, RMSE)를 사용하여 모델 성능을 정량화합니다.
안정성:
모델 드리프트 (성능 변화)를 모니터링하고 감지합니다.
모델 재학습 및 버전 관리를 통해 안정성을 유지합니다.
재현성:
동일한 데이터셋과 설정으로 모델 학습 시 동일한 결과를 얻을 수 있도록 테스트합니다.
랜덤 시드 고정, 모델 저장 및 로딩 기능 활용- 모델 배포 환경 구축:
모델 서빙:
Flask, TensorFlow Serving, KServe 등을 활용하여 모델 예측 API를 구축합니다.
모델 서빙 환경 (하드웨어, 소프트웨어)을 프로덕션 환경과 동일하게 구성합니다.
모니터링:
Prometheus, Grafana 등을 활용하여 모델 성능, 데이터 분포, 시스템 상태 등을 모니터링합니다.
이상 감지 알림 시스템을 구축하여 문제 발생 시 신속하게 대응합니다.
자동화:
Jenkins, GitLab CI/CD, GitHub Actions 등을 활용하여 모델 학습, 배포, 테스트 과정을 자동화합니다.
지속적인 통합/배포 (CI/CD) 파이프라인을 구축하여 배포 프로세스를 효율화합니다.- 모델 관리:
버전 관리:
Git, GitHub, GitLab 등을 활용하여 모델 코드, 데이터, 설정 등을 버전 관리합니다.
모델 버전 추적, 비교, 롤백 기능을 활용하여 모델 관리를 효율화합니다.
모델 설명:
모델 카드, 설명 문서 등을 작성하여 모델 작동 방식, 예측 결과 해석 등을 명확하게 설명합니다.
모델 설명 툴 (ModelCard, SHAP) 활용- 모델 보안:
암호화:
모델 코드, 데이터, 설정 등을 암호화하여 보호합니다.
암호화 라이브러리 (PyNaCl, OpenSSL) 활용
접근 제어:
모델 API에 대한 접근 권한을 제어합니다.
역할 기반 접근 제어 (RBAC) 시스템 활용- 추가 고려 사항:
모델 설명:
ModelCard, SHAP 등을 활용하여 모델 작동 방식, 예측 결과 해석 등을 설명합니다.
모델 모니터링:
Prometheus, Grafana 등을 활용하여 모델 성능, 데이터 분포 변화 등을 지속적으로 모니터링합니다.
모델 재학습:
새로운 데이터가 확보되거나 모델 성능이 저하될 경우 모델 재학습을 진행합니다.
모델 버전 관리 시스템 활용
모델의 추론 속도(Inference Speed)를 개선하기 위한 방법에는 어떤 것들이 있나요?