Zeno ZENO
AI Engineering / AI Basic · 조회 2 · 좋아요 0

3. AI 개발 환경 구축과 재현성 확보

AI 프로젝트를 시작할 때 가장 먼저 해야 할 개발 환경 구축과 재현성 확보 방법을 초보자도 따라할 수 있게 단계별로 정리했습니다.

AI 개발 환경 구축과 재현성 확보

AI 프로젝트를 시작하기 전에 가장 먼저 해야 하는 것이 개발 환경을 제대로 구축하는 것입니다. 이 글에서는 초보자도 따라할 수 있도록 기본부터 자세히 설명합니다.

1. 정의

개발 환경 구축은 AI 프로젝트를 진행할 때 필요한 프로그램과 도구를 내 컴퓨터에 설치하고, 일관되게 사용할 수 있는 상태로 만드는 작업입니다.

재현성(Reproducibility)은 같은 코드와 데이터를 사용했을 때, 언제 어디서 실행하더라도 정확히 동일한 결과를 얻을 수 있는 상태를 의미합니다.

AI Engineering에서는 “내 컴퓨터에서는 되는데 다른 곳에서는 안 된다”는 문제를 방지하기 위해 개발 환경과 재현성을 매우 중요하게 다룹니다.

2. 필요한 이유

AI 프로젝트는 여러 사람이 협업하거나, 나중에 다시 실행해야 하는 경우가 많습니다. 환경이 다르면 같은 코드도 다른 결과가 나와서 문제가 생깁니다.

개발 환경을 제대로 구축하면:

  • 실험 결과를 신뢰할 수 있습니다.
  • 팀원들과 쉽게 코드를 공유할 수 있습니다.
  • 나중에 모델을 배포하거나 재학습할 때 오류가 줄어듭니다.

재현성이 없으면 “이 모델이 어떻게 만들어졌지?”를 다시 확인하는 데 많은 시간이 낭비됩니다.

3. 핵심 개념

  • Virtual Environment (가상환경): 프로젝트별로 독립된 Python 환경을 만드는 공간입니다. 서로 다른 프로젝트가 패키지 버전 충돌을 일으키지 않습니다.
  • Dependency Management (의존성 관리): 프로젝트에 필요한 패키지(라이브러리)와 그 버전을 기록하고 관리하는 작업입니다.
  • Reproducibility (재현성): 동일한 결과를 언제나 얻을 수 있는 상태입니다.
  • Random Seed: 컴퓨터가 무작위로 선택하는 값을 고정시키는 숫자입니다. 모델 학습 시 매번 같은 결과를 내기 위해 사용합니다.
  • requirements.txt: 필요한 Python 패키지 목록을 기록하는 파일입니다.

4. 주변 기초 개념

venv: Python에 기본으로 포함된 가상환경 도구입니다. 가장 간단합니다.

Poetry: 최신에 많이 사용하는 의존성 관리 도구입니다. requirements.txt보다 더 편리한 버전 관리와 패키지 설치를 지원합니다.

Git: 코드 변경 이력을 관리하는 버전 관리 시스템입니다.

.gitignore: Git에 올리지 않을 파일(가상환경 폴더, 큰 데이터 파일 등)을 지정하는 파일입니다.

5. 실제 흐름

  1. 프로젝트 폴더를 만들고 Git 초기화
  2. Python 가상환경 생성 및 활성화
  3. 필요한 패키지 설치 (scikit-learn, pandas, numpy 등)
  4. 사용한 패키지 버전을 파일로 기록 (requirements.txt 또는 pyproject.toml)
  5. Random Seed를 고정하는 코드를 작성
  6. .gitignore 설정

6. 예시

새로운 AI 프로젝트를 시작할 때 가장 기본적인 환경 설정 순서입니다.

7. 코드 또는 설정 설명

터미널(명령 프롬프트)에서 실행하는 명령어 예시입니다.

# 1. 프로젝트 폴더 만들기
mkdir my-ai-project
cd my-ai-project

# 2. Git 초기화
git init

# 3. Python 가상환경 만들기 (Python 3.10 이상 권장)
python -m venv venv

# 4. 가상환경 활성화 (Windows)
venv\Scripts\activate

# Mac / Linux
source venv/bin/activate

# 5. 필요한 패키지 설치
pip install numpy pandas scikit-learn jupyter matplotlib

# 6. 설치된 패키지 목록 저장
pip freeze > requirements.txt

Random Seed 고정 예시 코드:

import numpy as np
import torch  # PyTorch를 사용할 경우
import random

def set_seed(seed=42):
    random.seed(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    if torch.cuda.is_available():
        torch.cuda.manual_seed_all(seed)

set_seed()  # 학습 시작 전에 항상 호출

8. 주의점

  • 전역 Python에 패키지를 설치하지 마세요. 반드시 가상환경을 사용하세요.
  • requirements.txt를 항상 최신 상태로 유지하세요.
  • Random Seed를 설정하지 않으면 매번 학습 결과가 달라져서 실험 비교가 어려워집니다.
  • venv 폴더는 Git에 올리지 마세요 (.gitignore에 venv 추가).
  • Python 버전은 팀원들과 동일하게 맞추는 것이 좋습니다.

9. 요약

AI 프로젝트의 첫 단계는 안정적인 개발 환경을 구축하고 재현성을 확보하는 것입니다. 가상환경, 의존성 관리, Git, Random Seed 고정을 제대로 하면 이후 모든 실험이 신뢰할 수 있게 됩니다. “내 컴퓨터에서는 되는데”라는 문제를 미리 방지할 수 있습니다.

10. 핵심 용어 정리

  • Virtual Environment = 프로젝트별 독립된 Python 실행 환경
  • Reproducibility = 언제 어디서 실행해도 동일한 결과를 얻는 것
  • Random Seed = 무작위성을 고정시키는 숫자
  • requirements.txt = 프로젝트에 필요한 패키지 목록 파일
  • Poetry = 현대적인 Python 의존성 관리 도구
  • .gitignore = Git에 올리지 않을 파일을 지정하는 설정 파일
  • Dependency = 프로젝트가 의존하는 외부 패키지

AD

'AI Basic' 카테고리의 다른 글

전체보기