Go (2)
Serving YOLOv5 Segmentation Model with Amazon EC2 Inf1
Introduction
YOLOv5 모델을 ONNX로 변환하여 Triton Inference Server로 배포한 경험은 있지만, Amazon EC2 Inf1을 통해 모델을 배포하고 REST API를 직접 구성해본 경험은 없어 직접 inference server와 API server를 구성해보려고한다.
공식 문서와 참고 자료들도 존재하지만 실질적 개발을 하는데 있어 막히는 부분이 꽤 많아 기록으로 남긴다.
Local 내 구현
Git Hooks 기반 Python Code Formatting
Introduction
저번에 이어서 python code들의 formatting을 조금 더 간편하게 Git Hooks를 통해 도전한다.
Git Hooks
Git Hooks는 Git 작업의 특정 지점에서 실행되는 스크립트다.
사용자 정의 작업을 수행하거나 작업의 유효성을 검사하기 위해 사용되며 git repository 내부에 설정되어 해당 이벤트가 발생할 때마다 실행된다.
pre-commit
pre-commit은 Git Hooks을 활용하여 코드 commit 전에 자동으로 실행되는 도구다.
코드의 품질을 유지하고 일관성을 강제하기 위해 사용되며 일반적으로 코드 스타일 체크, 정적 분석, 테스트 실행 등의 작업을 수행한다.
또한 commit 하기 전에 코드에 대한 일련의 검사를 수행하여 품질을 향상시키고, 잠재적인 오류나 스타일 가이드 위반을 방지한다.
1 | $ pip install pre-commit |
pre-commit은 위와 같이 설치할 수 있으며, .pre-commit-config.yaml
파일을 사용하여 구성한다.
이 파일에는 사용할 Git Hooks 스크립트, 훅을 실행할 리포지토리 경로, 특정 파일에 대한 훅의 적용 여부 등의 설정이 포함된다.
pre-commit은 다양한 Git Hooks (코드 포맷팅, 정적 분석, 린팅, 테스트 실행 등)를 지원하며을 수행할 수 있다..pre-commit-config.yaml
파일에서 필요한 훅을 구성하고 해당 훅이 실행될 때 어떤 작업을 수행할지 결정할 수 있다.
GitHub Actions 기반 Formatting 자동화
Introduction
Algorithm 문제를 풀고 GitHub에서 관리하고 있었는데, 문제를 해결할 때 replit을 초기에 많이 사용했었다.
하지만 현재 사용하고 있는 Visual Studio Code와 indentation의 규칙이 달라서 GitHub Actions로 모두 동일한 format을 가지도록 자동화하겠다.
GitHub Actions는 구동 조건 (CronJob, 특정 branch에 push, …)을 만족하면 준비된 스크립트를 자동적으로 실행해준다.
따라서 CI/CD를 포함하여 다양한 작업에 사용되고 있다. (로또 자동화도 가능,,,)
