Docker가 AI 개발 및 배포에 왜 필요할까?
먼저 Docker가 무인지 알아보자.
Docker란?
다들 개발을 하다보면 내 컴퓨터에서는 잘 작동하는 코드가 다른 사람 컴퓨터에서는 잘 작동하지 않는 경험을 해봤을 것이다.
이 문제는 개발자마다 개발 환경과 운영 환경이 다르기 때문에 발생하는 현상인데
이 문제를 해결 해주는 기술이 Docker이다.
Docker는 환경이 저장 되어있는 이미지를 가지고 컨테이너(가상 환경)를 생성하여 이 컨테이너 안에서 코드를 실행하기 때문에 일관된 실행을 보장한다.
AI 개발에서 Docker의 필요성
환경 차이 해결
AI 모델을 학습하거나 배포할 때, 여러 패키지와 라이브러리들이 필요하다.
예를 들어 PyTorch, Pandas, omegaconf 등 이러한 라이브러리들이 정확한 버전으로 설치되어야만 하고 Python 버전 또한 버전이 정확해야 코드가 정상적으로 작동한다.
Docker를 사용한다면 이런 환경 차이를 해결할 수 있다. Docker 이미지를 사용하면 다른 사람들과 개발 환경을 손쉽게 공유할 수 있고, 모든 사람이 똑같은 개발 환경에서 작업을 할 수 있게 된다.
AI 모델 배포 용이
AI 모델을 학습시킨 후, 이를 서버나 클라우드 환경에 배포하려면 운영 환경이 개발 환경과 일치해야 한다.
그렇지 않으면 배포 실패가 발생할 수 있다.
Docker는 동일한 이미지를 사용하여 개발 환경과 운영 환경을 완벽하게 일치시킬 수 있기 때문에 배포할 때 발생할 수 있는 오류를 최소화 시킬 수 있다.
효율적인 협업
여러 명의 개발자가 함께 개발할 때, 개발 환경이 각기 다르면 환경 세팅과 관련된 문제가 생겨 시간을 낭비할 수 있다.
Docker를 사용한다면 팀원들이 동일한 이미지 즉 동일한 개발 환경을 가지고 작업을 시작할 수 있기 때문에, 환경 설정 문제로 인한 시간 낭비 및 인력 낭비를 줄일 수 있다.
Docker는 AI 환경 설정과 배포 과정에서 발생할 수 있는 여러 가지 문제들을 이미지를 사용하여 손쉽게 해결할 수 있다.
특히 배포와 협업 측면에서 효율이 뛰어나기 때문에 Docker를 사용하는 방법과 활용하는 방법을 공부하는 것을 추천한다.