LLM 트윈 프로젝트 – 두 번째 세미나 – 2장 1/2

2장에서는 LLM Twin 프로젝트 구현 및 배포에 사용될 필수 도구들을 소개합니다.

이 글은 2장 두 개의 글 중 첫 번째 글로 파이썬과 관련된 도구들에 대해 이야기합니다.

 

  1. 파이썬 인터프리터: 책의 모든 코드는 Python 3.11.8에서 테스트되었습니다. https://www.python.org/downloads/에서 다운로드할 수 있지만, 여러 버전의 Python을 관리하기 위해 pyenv 사용을 권장합니다.
  2. pyenv를 이용한 Python 버전 관리: pyenv (https://github.com/pyenv/pyenv?tab=readme-ov-file#installation)는 여러 Python 버전을 관리하는 도구입니다. pyenv install 3.11.8 명령어로 Python 3.11.8을 설치하고, pyenv versions로 설치된 버전을 확인할 수 있습니다. pyenv global 3.11.8 명령어는 시스템 전체의 기본 Python 버전을 3.11.8로 설정하지만, 레포지토리 내에서만 특정 버전을 사용하기 위해 .python-version 파일을 활용하는 방법을 제시합니다.
  3. 레포지토리 클론 및 .python-version 파일:
    • git clone https://github.com/PacktPublishing/LLM-Engineers-Handbook.git 명령어로 레포지토리를 복제합니다.
    • 레포지토리 내에서 pyenv local 3.11.8 명령어를 한 번 실행하면 .python-version 파일이 생성되어 해당 디렉토리 내에서 Python 3.11.8을 사용하도록 설정됩니다. python --version 명령어로 설정된 Python 버전을 확인할 수 있습니다.

 

Poetry – 의존성 및 가상 환경 관리를 위한 도구

  1. 의존성 관리자의 역할:
    • 파이썬 프로젝트는 다양한 외부 라이브러리(의존성)에 의존합니다. 의존성 관리자는 이러한 의존성을 정의, 설치, 업데이트, 관리하는 도구입니다.
  2. Poetry의 장점:
    • 의존성 고정: pyproject.toml 파일에서 의존성의 버전 범위를 지정하면, Poetry는 정확한 버전을 poetry.lock 파일에 기록합니다. 이를 통해 모든 설치에서 동일한 버전의 패키지를 사용하여 예측 가능한 동작을 보장합니다. “내 컴퓨터에서는 작동하는데…”와 같은 문제를 방지합니다.
    • 가상 환경 생성: Poetry는 프로젝트별로 독립적인 가상 환경을 생성합니다. 이를 통해 프로젝트 간 의존성 충돌을 방지합니다.
  3. Poetry 설치 및 사용:
    • https://python-poetry.org/docs/ 에서 Poetry를 설치할 수 있습니다. LLM-Engineers-Handbook 레포지토리에서 poetry install --without aws 명령어를 사용하여 의존성을 설치하고, poetry shell 또는 poetry run 명령어로 가상 환경을 활성화합니다.
  4. pyproject.toml과 poetry.lock 파일의 차이:
    • pyproject.toml 파일은 의존성의 버전 범위를 지정하고, poetry.lock 파일은 실제 설치된 의존성의 정확한 버전과 하위 의존성까지 기록합니다. poetry.lock 파일은 프로젝트의 일관성을 유지하는 데 중요한 역할을 합니다.
  5. Poetry와 유사한 도구:
    • Venv와 Conda는 가상 환경 생성 도구이지만 의존성 관리 기능이 부족합니다. Pipenv는 Poetry와 유사하지만 속도가 느리고, uv는 Rust로 작성된 빠른 대안입니다. (https://github.com/astral-sh/uv)

참고 블로그 글: poetry 의 거의 모든것 (튜토리얼)

 

Poe the Poet – CLI 명령어 관리를 위한 도구

  1. Poe the Poet의 역할:
    • Poe the Poet는 Poetry 플러그인으로, 프로젝트와 상호 작용하는 데 필요한 모든 CLI 명령어를 관리하고 실행하는 데 사용됩니다. Makefile, Invoke, shell 스크립트 등 다른 옵션도 있지만, Poe the Poet는 별도의 스크립트 작성 없이 Poetry의 pyproject.toml 파일에서 작업을 정의하고 실행할 수 있도록 합니다. 이는 프로젝트 작업 관리를 위한 우아한 방법이며, 동시에 명령어에 대한 문서화 역할도 수행합니다.
  2. Poe the Poet의 사용 예:
    • pyproject.toml 파일에 다음과 같이 작업을 정의할 수 있습니다.

      • 그리고 poe testpoe formatpoe start 명령어로 작업을 실행할 수 있습니다.
  3.  Poe the Poet 설치:
    • poetry self add 'poethepoet[poetry_plugin]' 명령어로 Poetry 플러그인으로 설치합니다.
  4. LLM-Engineers-Handbook 레포지토리 설정:
    • pyenv와 Poetry가 설치되어 있다면, 다음 명령어로 레포지토리를 복제하고 의존성과 Poe the Poet 플러그인을 설치할 수 있습니다.

      •  
    • 레포지토리의 완벽한 작동을 위해서는 .env 파일 설정과 OpenAI, Hugging Face 토큰 획득 등 추가 단계가 필요하지만, 설치 가이드가 아니므로 레포지토리의 README(https://github.com/PacktPublishing/LLM-Engineers-Handbook)에 자세한 내용이 제공됩니다.
About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*