본문 바로가기

전체 글

Model Drift의 개념과 원인 (+ Data Drift, Label Drift, Concept Drift) 머신러닝 모델을 학습하고 배포에 이르렀다는것은 학습과 평가 단계에서 어느정도 서비스에 적용이 가능한 수준의 성능이 확보되었다는 의미일 것이다. 따라서 모델을 배포했을 당시에는 의도했던 수준의 퍼포먼스를 확인할 수 있다. 하지만, 모델이 배포 된 후, 성능하락 속도의 차이는 있겠지만, 시간이 흐름에 따라 모델은 처음에 기대했던 성능에서 차츰 퍼포먼스가 떨어지게된다. 이런 현상을 Model drift, Model decay(모델의 쇠퇴), Model staleness(모델의 진부)라고 한다. 아래에서는 이러한 현상을 model drift로 통일하여 설명하도록 하겠다. 오늘은 모델의 퍼포먼스가 떨어지는 이유와 해결방법에 대해서 정리해보자. Model Drift ? model drift란 한마디로, 예측하지 못.. 더보기
MLOps란? 오늘은 MLOps에 대해서 자세히 정리해보고자 한다. MLOps 란? 먼저 MLOps라는 용어는 Machine Learning Operations, ML과 Ops(Operations)의 합성어로, 학습한 머신러닝 모델을 안정적이고 효율적으로 배포 및 유지관리하는 것을 목표로 하는 '패러다임'이다. 그리고, MLOps Process는 ML과 Operation에 해당하는 영역으로 각각 구분할 수 있다. ML 단계 : 데이터 수집, 전처리, 모델 구축, 학습, 평가 등 Ops 단계 : 모델 배포, 모니터링, 테스트 등 MLOps는 불과 몇년전부터 주목받기 시작한 기술인데, 이는 ML이 실제 서비스에 적용되고 운영되기 시작하면서 머신러닝 모델의 지속적 통합, 배포, 학습을 관리할 수 있는 시스템의 필요성을 인식.. 더보기
[Cache]Soft Cache & Hard Cache 컴퓨터 시스템에서 캐시(cache)는 데이터 처리 속도를 향상시키는 중요한 역할을 한다. 오늘은 소프트캐시와 하드캐시의 차이점과 각각의 역할과 목적을 정리해보려한다. 하드캐시 (Hardware Cache) 하드캐시는 CPU 또는 GPU 내부에 위치한 빠른 메모리 공간인데, 속도가 느린 주 기억장치(RAM)와 빠른 CPU/GPU 사이의 속도 차이를 극복하기 위해 사용된다. 하드캐시는 자주 접근하는 데이터와 명령어를 저장하여, 프로세서가 빠르게 접근할 수 있도록 도와주며, 당연하지만, 하드캐시의 경우 내부가 가득찼을때 또는 새로운 데이터가 필요할때, 내부 매커니즘에 따라 삭제를 진행한다. 가장 대표적으로 LRU(Least Recently Used)와 같은 알고리즘을 사용한다. 특징: 매우 빠른 접근 속도... 더보기
[Linux] 프로세스 확인 명령어 옵션 비교 (ps -ef / ps aux) 1) PS ? ps 명령어는 UNIX 계열 운영 체제에서 현재 실행 중인 프로세스 목록을 표시하는 데 사용되며, 다양한 옵션을 가지고 있다. 그 중 ps -ef와 ps aux는 이 옵션들 중 가장 널리 사용되는 두 가지 형태이다. 2) 세부 옵션 비교 ps -ef와 ps aux 모두 시스템에서 실행 중인 프로세스에 대한 상세한 정보를 제공하지만, 출력 형식과 표시되는 정보에 약간의 차이가 있어, 용도와 목적에 맞게 사용할 수 있다. ps -ef -e 옵션 : 모든 프로세스를 나열한다. -f 옵션 : 전체 포맷을 사용하며. 각 프로세스에 대한 상세한 정보를 보여준다. 출력 내용 UID(사용자 ID) PID(프로세스 ID) PPID(부모 프로세스 ID) C(프로세서 사용량) STIME(시작 시간) TTY(터.. 더보기
[Linux] Top 관련 명령어 정리 top을 통해 살펴보는 프로세스 정보들 top 시스템의 상태를 전반적으로 가장 빠르게 파악 가능(CPU, Memory, Process) 옵션 없이 입력하면 interval 간격(기본 3초)으로 화면을 갱신하며 정보를 보여줌 top 실행 전 옵션 순간의 정보를 확인하려면 -b 옵션 추가(batch 모드) -n : top 실행 주기 설정(반복 횟수) top 실행 후 명령어 shift + p : CPU 사용률 내림차순 shit + m : 메모리 사용률 내림차순 shift + t : 프로세스가 돌아가고 있는 시간 순 k : kill. k 입력 후 PID 번호 작성. signal은 9 f : sort field 선택 화면 -> q 누르면 RES순으로 정렬 a : 메모리 사용량에 따라 정렬 b : Batch 모드로.. 더보기
2023.07월 회고 이번달은 서비스 진행 측면이나, 당뇨CDSS연구과제 그리고, 파트별 학습 계획도 순조롭게 진행되고 있어, 업무에 대한 피드백보다, 개인적인 시간관리 및 생활방식과 습관에 대해서 돌아보는 시간을 가져보려한다. 시간관리 시간관리를 잘한다라는 개념은 사람마다 다를 것 같다. 좋은 시간관리라는 워딩 자체가 시간에 대한 평가가 포함되어 있고, 사람의 가치관에 따라 평가는 달라진다. 그렇기 때문에, 시간관리를 계획하기 전에 나에게 좋은 시간은 무엇인지 먼저 생각해봐야할 것 같다. 1) 회사에서 주어지는 시간에 할당된 업무를 집중도있게 빠르게 수행하고, 그 과정에서 스스로의 성장을 가져갈 수 있는 밀도 있는 시간을 보내었을때 좋은 시간을 보내었다 라고 평가할 수 있겠다. 2) 일이 침범할 수 없는 가족과 함께하는 고.. 더보기
[CUDA] torch.cuda.is_available() 를 True로 만들자! (GPU셋팅하기) 1. GPU가 사용 가능한 상태인지 확인 import os os.environ['CUDA_DEVICE_ORDER']="PCI_BUS_ID" os.environ['CUDA_VISIBLE_DEVICES']='0' device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') print('Device:', device) # print('Current cuda device:', torch.cuda.current_device()) print('Count of using GPUs:', torch.cuda.device_count()) [Out] -> 사용불가한 상태라면, 'CPU', Count of using GPUs : '0'으로 출력된다. 지금은 이상.. 더보기
2023.06월 회고 # CDW, PMS 연동 이번 라벨링 도구 배포의 핵심은 의료 플랫폼내에서 구축한 여러 서비스들을 하나로 동작하게끔 구현하는것인데, 먼저 데이터가 적재된 CDW와 데이터에 라벨을 마킹하기위한 위한 라벨링도구, 데이터를 분석하기 위한 WIDE를 통합해서 전체 프로세스가 서로 유기적으로 동작하게끔 구현하는것이 목표 였다. 지금까지는 라벨링 도구내에서 Frontend 파트와 협의의 통한 POC level의 구현이라, 별다른 큰 이슈는 없었고 소통도 수월했지만, CDW, PMS측과 함께 개발을 진행하면서 조금 더 꼼꼼한 커뮤니케이션이 필요했다. → 아쉬웠던 점 사실, 전체 개발 볼륨을 지금 생각해보면, 지금 일정보다 조금 더 빠르게 완료할 수 있었던 부분이 있지 않을까 생각한다. 물론, CDW 및 PMS에서 작.. 더보기