인공지능 모델 병렬로 합치기

Tasker_Jang·2024년 6월 16일
0
# 프로젝트 구조

```plaintext
project-root/
├── docker-compose.yaml
├── main.py
├── model1/
│   ├── Dockerfile  # 모델 1에 대한 도커 파일
│   ├── requirements.txt
│   └── app.py
├── model2/
│   ├── Dockerfile  # 모델 2에 대한 도커 파일
│   ├── requirements.txt
│   └── app.py
└── model3/
    ├── Dockerfile  # 모델 3에 대한 도커 파일
    ├── requirements.txt
    └── app.py

Docker 및 Docker Compose

Docker 파일이란 무엇인가?

Docker 이미지 생성을 위한 설정 파일입니다. 이미지에는 코드와 환경설정 등이 포함되며, 컨테이너는 이 이미지를 기반으로 만들어집니다.

Docker Compose란 무엇인가?

도커 컴포즈는 여러 컨테이너를 하나의 서비스로 정의하고 관리할 수 있는 도구입니다. 여러 컨테이너를 통해 격리된 환경에서 각 모델을 구동시킬 수 있습니다.

Docker Compose를 써야 하는 이유

  • 여러 개의 컨테이너를 일일이 관리하는 불편함 해소
  • 컨테이너의 옵션과 환경을 정의한 파일을 통해 순차적으로 생성
  • 컨테이너의 의존성, 네트워크, 볼륨 등을 함께 정의 가능
  • 유동적으로 컨테이너 수 조절 가능
  • 컨테이너 서비스 디스커버리 자동화

Docker Compose 설치

  • 공식 문서에서 현재 도커 버전과 호환되는 도커 컴포즈 다운로드

Docker Compose 사용

  • docker-compose.yaml 파일 작성
  • yaml은 들여쓰기 문법을 사용 (2개의 공백으로 하위 항목 구분)
  • 구동: docker-compose up -d
  • 삭제: docker-compose down

중요 사항

  • 각 모델에 대한 requirements.txt에 모듈 버전을 명확히 명시

각 모델 병렬 합치기 주의사항

  • 모든 모델의 응답이 올 때까지 while문 활용
  • 각 task 결과를 받으면 프레임 하나에 대한 결과 송출
  • 프레임 및 화질 낮추기 (예: 5초에 한 번 추적)
  • 모델 병렬화 및 경량화가 핵심
  • 프레임 단위 결과 분석 후 합친 동영상 출력
  • 합친 후 파인 튜닝 필요

예시 이미지

Docker Compose


.
profile
터널을 지나고 있을 뿐, 길은 여전히 열려 있다.

0개의 댓글