Want to Become a Sponsor? Contact Us Now!🎉

LLM
홈 컴퓨터에서 Llama.cpp를 손쉽게 실행하는 방법

Llama.cpp: 페이스북의 LLaMA Model을 위한 C/C++ 포트

Published on

환상적인 Llama CPP 세계에 오신 것을 환영합니다! 언어 모델로 손을 더럽히는 것에 눈이 간절하다면, 이곳이 바로 당신이 찾던 곳입니다. Llama CPP는 프롬프트 엔지니어링 분야에서 파장을 일으키는 도구이며 그 이유를 알 수 있도록 해줍니다.

이 포괄적인 안내서에서는 Llama CPP에 대해 알아야 할 모든 것을 살펴보겠습니다. 설정부터 첫 번째 모델 실행까지 모든 것을 다룰 겁니다. 그래서, 이 강력한 도구의 전체 잠재력을 발휘해 보죠.

최신 LLM 뉴스를 알고 싶나요? 최신 LLM 리더 보드를 확인하십시오!

Llama CPP란 무엇인가요?

Llama CPP는 언어 모델과의 원활한 작업을 가능하게 해주는 프로젝트입니다. 복잡한 알고리즘과 실용적인 구현 사이의 간극을 줄이는 도구입니다. 그러나 정확히 무엇인지 알아볼까요?

  • 언어 모델: 단어 시퀀스의 발생 가능성을 예측하는 계산 모델입니다. 이것은 챗봇, 번역 서비스, 심지어 스마트폰의 자동 수정 기능과 같은 다양한 응용 프로그램의 기초입니다.

Llama CPP는 또 다른 도구가 아닌 튼튼한 프레임워크로 다음과 같은 작업을 수행할 수 있게 해줍니다:

  • Hugging Face와 같은 플랫폼의 미리 훈련된 모델 실행
  • CPU 또는 GPU를 사용하여 프로젝트 빌드
  • Python과 통합하여 확장 기능 사용

Llama CPP 설정: 단계별 안내서

Llama CPP를 시작하는 것은 아주 간단합니다. 컴퓨터와 인터넷 연결만 있으면 됩니다. 다음은 설정 방법입니다:

  1. 저장소 복제: 터미널을 열고 다음 명령을 실행하여 GitHub에서 Llama CPP 저장소를 복제합니다.

    git clone https://github.com/ggerganov/llama.cpp
    cd llama.cpp

    이렇게 하면 저장소가 다운로드되고 새로 복제된 디렉토리로 이동합니다.

  2. 언어 모델 다운로드: Llama CPP에서 작업하기 위해 언어 모델이 필요합니다. Hugging Face나 원래 LLaMa 프로젝트에서 이를 다운로드할 수 있습니다. 복제된 리포지토리 내의 디렉토리에 이를 배치합니다.

  3. 빌드 선택: CPU 또는 GPU를 사용하여 프로젝트를 빌드할지 결정합니다. GPU 기반 컴파일을 하려면 NVIDIA CUDA 툴킷을 설치해야 합니다.

  4. 코드 컴파일: make 명령을 사용하여 코드를 컴파일합니다. GPU를 사용하는 경우 다른 명령을 실행해야 하는데, 다음 섹션에서 이에 대해 설명하겠습니다.

이러한 단계를 따라하면 시스템에 Llama CPP를 성공적으로 설정한 것입니다. 이제 CPU와 GPU 빌드 중에서 선택하는 CPU와 GPU 빌드와 같은 기술적인 측면에 대해 알아보는 등 더 기술적인 측면으로 진입할 준비가 되었습니다.

Python에서 Llama-cpp-python 실행하기

Python 스크립트 내에서 Llama CPP 모델을 실행하려면 llama_cpp_python 라이브러리를 사용할 수 있습니다. 자세한 예제는 다음과 같습니다:

from llama_cpp_python import LlamaModel
 
# 모델 초기화
model = LlamaModel("/path/to/your/model")
 
# 프롬프트 설정 및 텍스트 생성
prompt = "안녕하세요. 어떻게 지내세요?"
text = model.generate(prompt)
 
# 생성된 텍스트 출력
print(f"'{prompt}' 프롬프트에 대한 생성된 텍스트: {text}")

이 Python 스크립트는 llama_cpp_python 라이브러리에서 LlamaModel 클래스를 가져와 다운로드한 언어 모델의 경로로 모델을 초기화하고 주어진 프롬프트를 기반으로 텍스트를 생성합니다.

Docker에서 Llama.cpp 실행하기

Docker에 익숙하신 분들은 Llama CPP 프로젝트를 컨테이너화하여 배포와 확장성을 향상시킬 수 있습니다. Llama CPP 프로젝트를 Docker 컨테이너에 빌드하고 실행하는 방법은 다음과 같습니다:

# Llama CPP 디렉토리로 이동합니다.
cd /path/to/llama_cpp_directory
 
# Docker 이미지 빌드
docker build -t llama_cpp_image .
 
# Docker 컨테이너 실행
docker run -it --name llama_cpp_container llama_cpp_image

이 예제에서 llama_cpp_image는 Docker 이미지의 이름이며 llama_cpp_container는 실행 중인 컨테이너의 이름입니다. 이들은 사용자가 설정할 수 있습니다.

CPU와 GPU 중 선택: Llama CPP 빌드 최적화

Llama CPP 프로젝트를 빌드할 때 CPU와 GPU 두 가지 주요 옵션이 있습니다. 각각의 장단점이 있지만, 선택은 최종적으로 특정한 요구 사항과 리소스에 따라 결정됩니다.

CPU 대 GPU: 간단한 비교:

  • 속도: GPU 빌드는 병렬 처리 기능으로 인해 일반적으로 더 빠릅니다.
  • 리소스 사용: CPU 빌드는 리소스 사용이 적지만 더 느릴 수 있습니다.
  • 유연성: GPU 빌드는 특정 하드웨어와 추가 설정이 필요하지만 성능이 높습니다.

자세히 살펴보겠습니다:

처음 시작하거나 강력한 GPU가 없는 경우 CPU 빌드가 가장 좋은 선택입니다. 간단하며 추가 설치가 필요하지 않습니다. CPU만 사용하여 Llama CPP 프로젝트를 컴파일하는 방법은 다음과 같습니다:

  1. 디렉토리로 이동: 터미널을 열고 복제된 Llama CPP 디렉토리로 이동합니다.
  2. 코드 컴파일: 다음 명령을 실행합니다:
    make
  3. 모델 실행: 컴파일이 성공적으로 완료된 후, 빌드된 실행 파일을 사용하여 모델을 실행할 수 있습니다.

자신의 하드웨어의 전체 성능을 활용하려는 경우 GPU 빌드가 가장 적합합니다. 특히 NVIDIA GPU가 있는 경우 계산 속도를 크게 높일 수 있습니다. 다음과 같은 방법으로 실행해 보세요:

  1. NVIDIA CUDA Toolkit 설치: GPU에 대한 코드를 컴파일하기 전에 NVIDIA CUDA 툴킷을 설치해야 합니다. 공식 NVIDIA 사이트에서 다운로드할 수 있습니다.
  2. CUDA 지원으로 컴파일: Llama CPP 디렉토리로 이동하여 다음 명령을 실행합니다:
    make clean && LLAMA_CUBLAS=1 make -j
  3. GPU 지원으로 실행하기: 모델을 실행할 때 --n-gpu-layers 플래그를 사용하여 계산을 GPU로 오프로드합니다.

참고: GPU 빌드를 사용하면 모델의 특정 레이어를 GPU로 오프로드하여 프로세스를 더 빠르고 효율적으로 만들 수 있습니다.

처음으로 Llama CPP 모델 실행하기

기본 모델 실행

빌드된 모델을 실행하려면 빌드 프로세스 중에 생성된 실행 가능한 파일을 사용합니다. --model-path 플래그는 다운로드한 언어 모델이 위치한 경로를 지정합니다. 다음은 실행 방법입니다:

# Llama CPP 실행 파일이 있는 디렉토리로 이동합니다.
cd /path/to/llama_cpp_directory
 
# 모델 실행
./llama_cpp_executable --model-path /path/to/your/model

참고: /path/to/your/model을 다운로드한 언어 모델이 저장된 실제 디렉토리 경로로 바꾸세요. llama_cpp_executable은 Llama CPP를 빌드한 후 생성된 실행 파일의 이름입니다.

고급 기능: GPU 오프로드 및 추가 기능

Llama CPP를 GPU 지원으로 빌드한 경우, 모델 실행 속도를 높이기 위해 계산을 GPU로 오프로드할 수 있습니다. --n-gpu-layers 플래그는 신경망의 몇 개의 레이어를 GPU에서 처리할지 지정합니다.

# GPU 오프로드로 모델 실행
./llama_cpp_executable --model-path /path/to/your/model --n-gpu-layers 2

이 예시에서 2는 두 개의 신경망 레이어가 GPU에서 처리될 것을 의미합니다. 사용하는 GPU의 성능과 실행하는 모델의 크기에 따라 이 숫자를 조정할 수 있습니다.

성능 최적화: 모델 변환이

Llama CPP는 성능을 개선하기 위해 모델을 다른 형식으로 변환해 주는 convert.py라는 Python 스크립트를 제공합니다. 예를 들어, 모델을 fp16 (16비트 부동소수점)로 변환하여 크기를 줄이고 속도를 높일 수 있습니다.

# convert.py 스크립트가 있는 디렉토리로 이동합니다.
cd /path/to/llama_cpp_directory/scripts
 
# 변환 스크립트 실행
python convert.py --input /path/to/original/model --output /path/to/converted/model --type fp16

결론

이 안내서에서는 Llama CPP 설정부터 첫 번째 모델 실행 및 추가 기능 탐색까지 다양한 내용을 다뤘습니다. Llama CPP의 유연성, 성능 최적화 옵션, Python 통합 및 Docker 지원과 같은 추가 기능을 통해 언어 모델을 사용하고자 하는 모든 사람들에게 강력한 도구로서의 Llama CPP를 제공합니다.

FAQ

  • Llama CPP란 무엇인가요?

    • Llama CPP는 언어 모델 작업에 사용되는 강력한 도구입니다. CPU 및 GPU 빌드, Python 통합 등을 지원합니다.
  • Llama CPP를 Python에서 어떻게 실행하나요?

    • llama-cpp-python GitHub 저장소에서 제공하는 코드와 문서를 사용하여 Llama CPP를 Python과 통합시킬 수 있습니다.
  • Llama CPP의 속도는 어떻게 되나요?

    • Llama CPP의 속도는 CPU 또는 GPU 빌드를 사용하는지에 따라 달라집니다. GPU 빌드는 병렬 처리 기능으로 인해 일반적으로 더 빠릅니다.
  • Llama CPP는 GPU를 사용하나요?

    • 네, Llama CPP는 GPU 기반의 계산을 지원하므로 모델 실행을 크게 빠르게 할 수 있습니다.

최신 LLM 뉴스를 알고 싶나요? 최신 LLM 리더보드를 확인해 보세요!

Anakin AI - The Ultimate No-Code AI App Builder