본문 바로가기

Engineering22

[Linux] 쉘 커맨드 정리 포스팅 개요 컴퓨터와 친해지기 시작한 이래로 쫌쫌따리 터미널을 사용해왔는데, 그때 그때 사용하는 명령어를 잠깐씩 쓰다보니 매번 까먹는 것 같아서 터미널 기본 명령어와 단축키만 간략하게 정리해보았다. 터미널 컴퓨터와 사용자 간 소통을 위한 인터페이스 마우스가 아닌 키보드로 명령을 입력하고 프로그램을 실행하기 위한 도구 (CLI) cf. CLI vs GUI CLI (Command Line Inteface) 터미널에서 텍스트를 통해 컴퓨터를 조작하는 명령어 기반의 인터페이스 ex. window의 CMD window, Mac의 Terminal GUI (Graphical User Interface) 화면에서 마우스를 통해 컴퓨터를 조작하는 그래픽 기반의 유저 인터페이스 터미널 명령어 1. 탐색하기 ls : lis.. 2023. 3. 4.
[MLOps] 09 Jenkins 포스팅 개요 본 포스팅은 CD 자동화 tool인 Jenkins와 Jenkins의 플러그인 중 하나인 Jenkins Pipeline의 개념에 대해 정리하는 글입니다. Jenkins란? Jenkins란? Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software. - Jenkins 소프트웨어 개발 시의 지속적 통합 서비스를 제공하는 tool Jenkins의 역할과 장점 소스코드 일관성 유지 소스 관리 시스템은 필요 정적 코드 분석에 의한 코딩 규약 준수 여부.. 2023. 2. 20.
[m1 mac] jenkins 설치 포스팅 개요 m1 mac에서 jenkins를 설치하는 과정에 대해 정리한 글입니다. 1. jenkins 설치 brew install openjdk # 안해도 될런지 모르겠음 brew install jenkins 2. jenkins 시작 brew services start jenkins # cf. jenkins 제어 명령어 brew services start jenkins # 젠킨스 시작 brew services stop jenkins # 젠킨스 종료 brew services restart jenkins # 젠킨스 재시작 jenkins를 시작한 후, http://localhost:8080/로 jenkins 서버 UI에 접속 3. UI에 나와있는 주소로부터 초기 패스워드를 확인한 후 로그인 cat [주소] .. 2023. 2. 11.
[MLOps] 08 ML Workflow - Github Actions 포스팅 개요 본 포스팅은 ML Workflow와 관련 자동화 tool인 Github Actions에 대해 정리하는 글입니다. ML Workflow란? Github의 예시를 통하여 workflow에 대해 알아보겠습니다. Github: 오픈소스 프로젝트를 위한 플랫폼 Github을 통해 만들어진 프로젝트는 공식적으로 프로젝트를 사용(user)하고 프로젝트에 기여(contributer)하는 것이 가능 Github flow: Git branch를 효과적으로 분리하고 관리하는 branching 전략 중 하나 흐름 create branch → commit change → pull request → get feedback → tests changes → merge branch (새로 생성된 branch를 master.. 2023. 2. 9.
[MLOps] 07 Kubeflow Kubeflow 성숙한 MLOps를 위해서는? Reproducibility: 실행 환경의 일관성 & 독립성 Job Scheduling: 스케쥴 관리, 병렬 작업 관리, 유휴 자원 관리 Auto-healing & Auto-scaling: 장애 대응, 트래픽 대응 → 이를 쉽게 실행할 수 있는 인프라가 쿠버네티스와 같은 컨테이너 기반의 오케스트레이션 시스템임 kubeflow Machine Learning Toolkit for Kubernetes 각 역할마다 모듈을 쪼개서 개발됨 Experimental 단계 문제 인식 + 데이터 수집 + 데이터 분석 ML 알고리즘 선택 + 모델 설계 실험 + 학습 hyperparameters 튜닝 Production 단계 ⇒ 머신러닝 모델 프로젝트의 end-to-end에서 필.. 2023. 2. 8.
[MLOps] 06 Model Monitoring - Prometheus 포스팅 개요 모델의 serving(배포)까지 성공했다면, 그 다음 단계는 무엇일까요? 그것은 바로 배포한 모델이 우리의 의도대로 동작하고 있는지에 대한 확인일 것입니다. 모델이 서비스화 되는 과정에서 예상치 못한 문제가 발생하지는 않았는지, 모델 자체가 불완전하지는 않은지 등 사전에 고려하지 못한 이슈를 발견하고 해결하기 위해 우리는 모델을 모니터링 할 필요가 있습니다. 이에 본 포스팅에서는 ML Model Monitoring의 방법론과 Prometheus, Grafana에 대하여 정리해보겠습니다. Model Monitoring Model Monitoring과 그 구성 요소 Model Monitoring이란, ‘serving한 모델의 지속 가능한 운영을 위한 관리’로 정리할 수 있습니다. 그렇다면 모델의.. 2023. 2. 8.
[MLOps] 05 Model Serving 포스팅 개요 본 포스팅은 머신러닝 모델 serving의 개념과 변화에 대해 정리하는 글입니다. 0. Model Serving 개요 머신러닝 모델의 Serving은 곧 머신러닝 모델의 서비스화를 뜻합니다. 여기서 서비스화란, 사용자가 특정한 방식으로 input을 전해주면, 서버에서 모델의 inference를 수행한 후, 사용자는 input에 대한 결과값을 전달받을 수 있도록 하는 것입니다. 이 때 고려해야 할 점은, 사용자가 보내는 input은 그 형태가 다양하며, 사용자가 input을 보내는 주기도 제각각이라는 것입니다. input 형태의 예시 HTTP API Request 챗봇과의 대화 넷플릭스 영상 좋아요 버튼 유튜브 구독 버튼 네이버 길찾기 버튼 이와 같이 다양한 형태의 input을 동적인 주기로 .. 2023. 1. 21.
[MLOps] 04 Model Management & MLflow 포스팅 개요본 포스팅은 머신러닝 모델의 life cycle과 그 관리 툴 중 하나인 MLflow에 대하여 정리한 글입니다. 머신러닝 모델의 life cycle 구성과 모델 관리의 필요성에 대해 알아본 후, MLflow에 대해 정리하고자 합니다.  ML Model의 Life CycleML Model의 Life Cycle머신러닝 모델은 다음과 같은 life cycle을 가집니다. Raw Data → Data Processing → Train & EvaluateTrain & Evaluate: 각각의 데이터와 모델, 파라미터로 학습을 해본 후 → 각각의 시도에서 성능 평가를 한 뒤 → 가장 좋은 성능을 내는 모델을 최종 모델로 결정 모델 재현을 위해서 기록해두어야 할 정보위와 같은 과정을 통해 도출한 최종 모델.. 2023. 1. 20.
[MLOps] 03 Data Management & DVC Data managementProblemML model을 개발하다보면, raw data를 조금씩 바꿔가면서(feature engineering) 여러 버전의 데이터를 생성하게 됩니다.그런데 이렇게 데이터를 바꿔가며 실험하다보면 어떤 데이터가 어떤 feature engineering을 통해 도출된 데이터인지 기억하기 어려워집니다.Solution일반적인 software을 개발할 때에도 source code는 지속해서 수정되기에, Git + GitHub, GitLab, Bitbucket을 통해 버전 관리 및 협업을 진행합니다.ML 분야에서도 마찬가지로 Git + GitHub, GitLab, Bitbucket을 통해 버전 관리, 협업 등을 진행합니다.하지만, GitHub, GitLab, Bitbucket 등의 .. 2023. 1. 20.