MLflow는 머신 러닝 모델의 라이프 사이클을 관리하기 위한 오픈소스 플랫폼입니다. MLflow는 다음과 같은 세 가지 주요 기능을 제공합니다. MLFlow는 머신러닝 학습 주기 관리를 위한 오픈소스 플랫폼이다. MLFlow의 주요 기능은 아래와 같습니다. MLflow 트래킹(tracking) : MLflow Tracking은 실험 결과를 기록하여 실험간의 비교 지원을 할 수 있다. 기록 가능한 실험 요소로 실험시 사용한 하이퍼 파라메터나, 실험 결과 loss, auccracy 의 학습 과정에서 출력되는 주요 지표 들을 저장할 수 있다. 실험 결과들이 쌓이다 보면 각 실험들의 특징을 비교하기 어려울 수 있는데 이러한 경우는 는 tag 기능과 note 기능을 이용해 부가적인 정보를 기록함으로서 실험간의 비교시에 사용할 수 있도록 한다.
TensorRT 설치
TensorRT를 실행하려면 NVIDIA GPU 드라이버와 CUDA와 관련한 환경 설치를 먼저 진행하고 이후 NGC 컨테이너를 이용해 TensorRT를 실행할 수 있다. 출처 : Optimizing and Accelerating AI Inference with the TensorRT Container from NVIDIA NGC TensorRT 환경 설치 TensorRT 설치를 위해서는 GPU가 있는 우분투 환경이 필요하다. 이어서 다음 순서대로 설치를 진행한다. NVIDIA GPU 드라이버를 설치 Cuda 설치 먼저 NVIDIA GPU 드라이버 설치를 진행한다. 권장 드라이버를 자동으로 설치하려면 아래 명령을 입력한다.
TensorRT 소개
TensorRT는 NVIDIA GPU상에서 모델의 추론 속도를 최적화해 주는 프레임워크이다. TensorRT 최적화 방식 TensorRT는 GPU의 cuda 코어에서 시행된다. cuda는 GPU와 직접 통신하기 위한 API에 해당한다. (cudo 코어와 유사하게 Tensor 코어 방식이 있지만 구글 직원이 아니라면 TPU 배포는 좋은 선택지는 아닐 수 있다.) TensorRT는 다음 그림에 소개된 크게 6가지 방식으로 최적화를 수행한다. 위에서 몇가지만 살펴보면 Kernel Auto-tuning은 Cuda 드라이버에 맞춰 최적의 런타임을 생성할 수 있도록 한다. GPU 플랫폼 기반으로 최상의 레이어와 알고리즘, 최적의 배치 크기를 선택하는 방식이다.
MLOps 오픈소스
MLOps를 체계적으로 적용하기에 앞서 MLOps 도구를 도입할 필요가 있습니다. ML Ops의 도구 중 오픈소스는 기업이 도입하기에 유리한 방식입니다. 오픈소스 도입 전에 한가지 생각해 볼 점이 있습니다. 오픈소스 선택 MLOps에서 오픈소스를 사용하는 것은 매우 일반적인 방법입니다. 오픈소스는 머신 러닝 개발자들에게 매우 유용한 도구입니다. 다양한 머신 러닝 라이브러리와 프레임워크를 제공하며, 이를 사용하여 머신 러닝 모델을 쉽게 개발할 수 있습니다. 특히, 오픈소스를 사용하면 머신 러닝 모델의 개발 속도를 높일 수 있습니다. 또한, 오픈소스 커뮤니티에서는 다양한 문제들에 대한 해결책을 제공하며, 이를 활용하여 머신 러닝 모델을 개발할 수 있습니다.
MLOps 플랫폼
MLOps 플랫폼이란? MLOps 플랫폼 기술은 상용을 위한 기계학습 애플리케이션 배포 및 확장과 관련한 기술이다. 크게 세가지 관점의 기술 내용을 포함합니다. ML 모델 상태 관리 E2E 머신러닝 오케스트레이션 컨테이너 기술 ML 모델 상태 관리 기술은 머신러닝 모델의 생명 주기를 관리하고, 모델의 자동 배포 및 모델의 상태 정보를 관리하는 기술입니다. 이를 통해 모델의 생성 일자, 생성 주기, 모델의 성능 수치와 같은 모델의 특성 정보를 포함하여 모델을 모니터링하고, 모델의 사용량 및 처리량을 지속적으로 모니터링하고 제어할 수 있습니다.
머신러닝 엔지니어가 알아야 할 MLOps
안녕하세요, 개발자 여러분! 오늘은 머신러닝 엔지니어로서 꼭 알아야 할 MLOps에 대해 알아보겠습니다. MLOps의 필요성 MLOps(Machine Learning Operations)는 머신러닝 모델의 개발, 배포, 모니터링 등을 자동화하고 관리하는 일련의 프로세스를 의미합니다. 머신러닝 모델을 개발하는 것만큼이나 중요한 것이 바로 이 MLOps입니다. MLOps의 주요 구성 요소 데이터 수집 및 전처리 모델 학습 및 평가 모델 배포 및 서빙 모니터링 및 알림 데이터 수집 및 전처리 머신러닝 모델 개발에 있어 가장 중요한 부분 중 하나는 바로 데이터입니다.
MLOps란 무엇인가?
MLOps는 머신러닝과 소프트웨어 분야의 DevOps를 합친 합성어입니다. ML은 머싱러닝(Machine Learning)을 의미하며 Ops는 시스템 운영을 의미합니다. 이름 그대로 머신러닝 시스템 운영을 지원하는 체계입니다. ML 모델의 생성 배포에 필요한 운영 비용을 낮추고 효율적으로 ML 모델을 운영하기 위해 필요한 모범 사례 모음이기도 합니다. MLOps는 생명 주기의 각 과정을 자동화하는 데 과업들을 포함합니다. MLOps라는 용어에서 느껴지듯 ML 영역과 IT 의 역할을 합쳐 놓은 합성어이다. MLOps는 크게 ML 영역과 DEV영역과 OPS영역을 포괄하는 용어로 데이터 구축, 모델 개발 및 훈련, 모델 배포와 관련해 효율성과 생산성을 개선시키는데 초점이 있습니다.
Mac에서 Kotlin 설치
kotlin은 IntelliJ IDEA 개발사로 유명한 JetBrains에서 2011년에 공개한 오픈 소스 프로그래밍 언어이다. Java와 유사하며 Java에 비해 조금 더 간결한 문법을 사용한다는 특징이 있다. Java와 100% 상호 호환이 가능하다. Android의 공식 언어로 채택된 언어이기도 하다. 코틀린 구성에 앞서 java를 설치하도록 한다. (환경 MacOS) brew install openjdk@17 설치가 완료되면 설치된 openjdk 경로를 bash_profile에 반영해준다. echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> /Users/smarthome/.bash_profile source ~/.bash_profile 어어서 java버전을 확인한다. $ java -version openjdk version "17.0.5" 2022-10-18 OpenJDK Runtime Environment Homebrew (build 17.
딥러닝 GPU 성능 비교
GPU와 CPU의 차이점 GPU는 그래픽 처리에서 사용했다. 최근 GPU는 그래픽 처리 뿐 아니라 병렬 수치 연산에도 이용되고 있다. 딥러닝은 대량의 곱셈, 큰 행렬의 내적 등을 수행하는데 GPU 컴퓨팅을 이용하면 연속을 고속화하여 처리할 수 있다. CPU(CPU, Central Processing Unit)와 GPU(GPU, Grapical Processing Unit)는 공통적으로 마이크로프로세서이다. 둘다 데이터를 처리한다는 공통점이 있다. 그런데 이 둘은 아키텍처가 다르고 용도와 목적이 다르다. CPU는 코어 성능이 중요한 워크 로드에 적합하다. CPU 내부의 ALU(arithmetic Logic Unit)는 순차적인(sequential) 방식으로 명령어를 하나씩 처리하는 특징이 있다.
시스템 사고로 장애를 방지하세요
안녕하세요, 개발자 여러분! 오늘은 시스템 장애 발생 시 효과적으로 대응하기 위한 전략에 대해 알아보겠습니다. 시스템 장애의 불가피성 아무리 단단한 시스템이라 하더라도 서버의 장애나 성능 이슈에 있어서 자유로울 수 없습니다. 시스템 운영자는 장애가 발생했을 때 당황하기 쉽지만, 문제 원인을 빠르게 분석하고 처리할 수 있는 방법과 절차가 필요합니다. APM을 활용한 모니터링과 트러블슈팅 APM(Application Performance Management)와 같은 시스템을 이용해 모니터링과 트러블슈팅을 위한 시스템의 각종 정보들을 평소에 확인하여 대비해야 합니다. APM은 애플리케이션의 성능을 실시간으로 모니터링하고, 문제 발생 시 신속하게 대응할 수 있도록 도와줍니다.