본문 바로가기

전체 글

(36)
[kubernetes] GKE loadbalancer type service 부하분산기 관계 참고) https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview?hl=ko 네트워크 개요 | Google Kubernetes Engine(GKE) | Google Cloud 이 가이드에서는 Google Kubernetes Engine(GKE)의 네트워킹을 설명합니다. cloud.google.com 참고) https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer?hl=ko LoadBalancer 서비스 개념 | Google Kubernetes Engine(GKE) | Google Cloud Google Kubernetes Engine(GKE) Loa..
[MLOps] Model Monitoring(2) - AI서비스에서의 Model Drift 관리 model drift란? 모델 학습 후, 모델을 서비스에서 사용할 때 시간이 지나면서 실제 데이터는 학습 시점의 데이터와 많이 달라지게 된다. 예를 들면 코로나 시기 이전에 개발한 모델로 서비스를 운영한다면, 어느 순간 코로나와 관련된 데이터가 새롭게 등장하면서 모델의 정확성이 확 떨어질 수 있다. model drift란 변화하는 환경에 의해 모델의 성능이 저하되는 것을 말한다. 따라서 모델이 오래되었는지, 데이터 품질에 문제가 있는지, 모델과 맞지 않는 input이 있는지를 측정하여 model drift를 감지 후, 모델 성능을 개선해야한다. model drift 종류/원인 concept drift 예측하려는 변수의 의미가 변경되었을 때 발생하는 성능 저하. 모델의 정답 자체가 변경되면서, 모델의 입력..
[MLOps] Model Monitoring(1) - 모델 성능, Model Drift, 데이터 품질 모델 모니터링 도구인 Arize AI 참고 https://arize.com/model-monitoring/#! Model Monitoring Learn what model monitoring is, why it’s important, how to setup and configure alerts and monitors, and how it relates to ML observability arize.com 모델 모니터링이란? - 모델에서 일어나는 이상 수치를 감지하는 것. 모델 메트릭이 임계값을 초과할 때 알림을 줌. 모델 모니터링이 중요한 이유 - 실제 운용에서 모델은 무수히 많은 문제를 맏닥뜨리지만, 절반 이상의 ML 팀은 프로덕션 중인 모델에 이상이 있을 때, 이를 확인할 수 있는 신뢰할 수 있는 지..
타사 로그 파이프라인 / 모니터링 지표 수집 시스템 베스핀 추천 https://www.bespinglobal.com/stackdriver-gcp-monitoring-20180813/ Stackdriver를 이용한 GCP의 로깅 및 모니터링 소개 - BESPINGLOBAL www.bespinglobal.com - 현재는 stackdriver에서 monitoring으로 변경됨 - https://console.cloud.google.com/monitoring/dashboards/resourceList/kubernetes?authuser=0&project=mlops-dev-344406&supportedpurview=project&timeDomain=1h&pageState=(%22integrations%22:(%22p%22:7),%22interval%22:(),%..
[spring boot / react / nginx / docker-compose] local, dev, prd 환경 분리 상황 사이드 프로젝트에서 서버 한대에서 front, back을 컨테이너 기반으로 돌리는 중 비용 문제로 서버는 한대로 유지한 채, 운영 중인 서비스에는 영향이 없도록 테스트용 dev환경을 구축하고 싶음 아키텍처 reverse proxy로 nginx를 구동 spring boot, react, docker-compose 사용 db 사용 서버 환경 분리 1. spring boot 환경 분리 - src/main/resource/application.yml를 분리 1) 기존 application.yml에 local, dev, prd 추가 - default는 가장 하단에 기입된 환경 (여기서는 local) ... // 기존 application --- spring: profiles: active: prd --- s..
[nginx + docker + react] websocket connection to ws failed 현상 react + docker-compose + nginx(reverse proxy) 환경에서 /ws 소켓 연결이 끊어지는 현상이 발생 원인 cra에서 기본 포트를 3000포트로 설정해서 나는 에러 해결 1. react에서의 설정 1-1) .env 파일에서 WDS_SOCKET_PORT=0 설정 추가 1-2) 앞의 방법이 아니면, docker-compose에서 하단 설정 추가 environment: - WDS_SOCKET_PORT=0 ex) dev-frontend: container_name: dev-frontend restart: always build: context: ./frontend dockerfile: Dockerfile.dev ports: - "3001:3000" environment: - ..
머신러닝 시스템 디자인 패턴 - 04. 추론 시스템 만들기 4.1 시스템을 만들어야하는 이유 로컬 pc에서만 추론할 수 있게 구성하는 것은 서비스 형태로 활용될 수 없음 다른 외부 시스템과 연계해 모델이 호출되는 구조를 갖춰야함 추론기(시스템) 패턴 종류 - 웹 싱글 패턴 : 하나의 작은 모델을 하나의 추론기로 동기적으로 추론 - 동기 추론 패턴 : 요청에 대해 동기적으로 추론 - 비동기 추론 패턴 : 요청에 대해 비동기적으로 추론 - 배치 추론 패턴 : 배치 작업으로 추론 실행 - 전처리 / 추론 패턴 : 전처리와 추론으로 서버를 분리 - 직렬 마이크로서비스 패턴 : 의존관계에 있는 추론을 차례로 실행 - 병렬 마이크로서비스 패턴 : 하나의 요청을 여러개의 추론기로 추론 - 시간차 추론 패턴 : 동기 추론과 비동기 추론을 조합하여 추론 - 추론 캐시 패턴 : ..
머신러닝 시스템 디자인 패턴 - 03. 모델 릴리스하기 3.1 학습환경과 추론환경 학습 페이즈 실험에 목적을 둔 페이즈이기도 하기 때문에 코드 리뷰나 단위 테스트, 리펙토링은 사실상 거의 이뤄지지 않음 추론 페이즈 모델과 추론 코드가 실제 시스템에 포함되어 다른 시스템과 연계 가동되고 운용 따라서 장애나 문제가 발생하면 이를 감지하고 트러블 슈팅을 통해 즉시 복구해야한다. 추론환경은 끊임없이 가동되어야 하므로, 필요한 자원의 사용량을 최소한으로 조정하는것이 이익으로 이어지는 구조가 될 수 있음. 사용하는 라이브러리나 툴이 다름 학습환경 주피터 노트북 사용, 필요한 라이브러리 추가하며 개발 추론환경 주피터 노트북 사용 X, 요건에 따라 Java나 C++에서 모델을 로드하고 실행 추론을 위한 전용 라이브러리 존재 (TensorFlow Serving, ONNX R..