메뉴 닫기

NGC에서 LLM 구동

이 글에서는 ‘NGC에서 LLM 구동’ 방법을 단계별로 설명합니다.
NVIDIA GPU Cloud(NGC)를 통해 Ollama 같은 LLM(Local Large Language Model)을 GPU 가속 환경에서 손쉽게 실행할 수 있습니다.


(이미지 출처 : https://nvidianews.nvidia.com/multimedia/corporate/nvidia-logos)
 

1. NGC란 무엇인가?

NGC(NVIDIA GPU Cloud) 는 엔비디아가 직접 제공하는 GPU 가속 애플리케이션 컨테이너 허브입니다.
딥러닝, 머신러닝, 고성능 컴퓨팅(HPC), 데이터 사이언스 등의 작업을 위한 최적화된 환경이 미리 구성된 컨테이너 이미지를 제공합니다.
즉, CUDA, cuDNN, PyTorch, TensorFlow 등 GPU 관련 프레임워크를 사용하려면 일반적으로 복잡한 버전 호환성 문제를 일일이 해결해야 하지만, NGC 컨테이너를 사용하면 이러한 환경을 별도의 설정 없이 즉시 개발에 활용할 수 있습니다.
특히 연구자나 엔지니어가 다양한 딥러닝 모델을 빠르게 실험하거나, AI 애플리케이션을 클라우드 환경에서 테스트하고자 할 때 매우 유용합니다.

※ 테스트 환경 : Ubuntu 24.04 + NVIDIA RTX 5080
 

2. 왜 Ollama를 NGC에서 실행할까?

Ollama는 로컬 환경에서 다양한 오픈소스 LLM(Local Large Language Model)을 손쉽게 실행할 수 있도록 해주는 플랫폼입니다.
대표적으로 Gemma, Llama, Mistral, Phi, Qwen 등의 모델을 로컬에서 빠르게 다운로드하고 API로 사용할 수 있습니다.
즉, 다음과 같은 사용자가 NGC에서 Ollama를 사용하는 것이 특히 유리합니다.
AI 모델 연구자 : 다양한 LLM의 성능을 동일한 환경에서 벤치마크하려는 경우
– 
AI 서비스 개발자 : GPU 가속 환경에서 API 테스트 및 추론 속도를 검증하려는 경우
– 
온프레미스 AI 인프라 구축자 : 클라우드 종속 없이 내부 GPU 서버에서 LLM 서비스를 운영하려는 경우
 

3. NGC에서 Ollama 설치 단계

1) NVIDIA GPU 드라이버

GPU를 인식하려면 호스트 시스템에 드라이버가 반드시 설치되어야 합니다.
ubuntu-drivers devices 명령 실행 후 recommended 표시된 드라이버를 설치합니다. (예: nvidia-driver-550)
# apt -y install nvidia-driver-550

2) Docker 설치

NGC 컨테이너는 Docker 기반으로 동작하므로 Docker 를 설치합니다.
# curl -fsSL https://get.docker.com | sh

3) NVIDIA Container Toolkit 설치

도커 컨테이너가 GPU를 사용할 수 있도록 연결해주는 구성요소입니다.
(예전의 nvidia-docker2가 이 툴킷으로 대체)

# curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg –dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg –dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed ‘s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g’ | \
tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# apt update
# apt -y install nvidia-container-toolkit

※ 참고 : CUDA Toolkit은 별도로 설치할 필요가 없습니다.
             컨테이너 내부에 이미 최적화된 CUDA 버전이 포함되어 GPU 연산이 가능합니다.
 

4. NGC 컨테이너 실행

PyTorch 프레임워크가 포함된 최신 NGC 이미지를 실행합니다.
(GPU 카드 출시 이후의 버전이어야 장치를 인식)
# docker run –gpus all -it –rm nvcr.io/nvidia/pytorch:25.06-py3

컨테이너 내부에 진입하면 GPU 사용이 자동으로 가능하며, torch.cuda.is_available() 명령으로 확인할 수 있습니다.
 

5. NGC에서 Ollama 설치 및 LLM 실행

컨테이너 내부에서 Ollama를 설치합니다.
# curl -fsSL https://ollama.com/install.sh | sh

설치 후, 출력된 메세지중 아래는 무시해도 됩니다.
WARNING: Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies.

Ollama 설치 스크립트는 GPU 드라이버를 자동으로 감지하려 하지만, 컨테이너 환경에서는 lspci나 lshw와 같은 시스템 유틸리티가 설치되어 있지 않아 GPU를 감지하지 못하는 경우가 많기 때문입니다.
실제로 ollama run 명령으로 실행 후, 다른 터미널에서 자원 모니터링을 해보면 사용되고 있음이 확인됩니다.

1) Ollama 백그라운드 실행

컨테이너 내에서는 ollama serve 로 ollama 를 실행하면 되지만, 프롬프트로 떨어지지 않아 나머지 작업은 다른 터미널을 열고 진행해야 합니다.
불편함을 줄이고자 아래와 같이 ollama 를 백그라운드에서 실행하고, 모든 로그 출력은 ollama.log 파일에 기록되도록 합니다.
# nohup ollama serve > ollama.log 2>&1 &

2) 모델 실행

모델 없이 실행하면 모델을 먼저 자동으로 다운로드 받고 실행됩니다.
# ollama run gemma3:27b “넌 누구니?”

토큰을 확인하려면
# ollama run gemma3:27b “넌 누구니?” –verbose

API 호출 방법
# curl http://localhost:11434/api/generate -d ‘{
“model”: “gemma3:27b”,
“prompt”: “넌 누구니?”,
“stream”: false
}’ | jq

위 응답에서 eval_count가 출력 토큰 수를 의미하며, prompt_eval_count가 입력 토큰 수를 의미합니다.
– eval_count : 출력된 토큰 수
– prompt_eval_count : 
입력 토큰 수

답변 없이 출력 token 수만 보고 싶을 경우 jq 옵션을 아래와 같이 사용합니다.
jq -r ‘.eval_count / (.eval_duration / 1000000000)’
 

6. 맺음말 및 활용 예시

NGC 컨테이너를 이용하면 NGC에서 LLM 구동 환경을 빠르게 구성할 수 있습니다.
특히 Ollama와 결합하면 LLM 모델의 온프레미스 테스트, 로컬 추론 서버 구축, 성능 벤치마크 등의 작업을 손쉽게 진행할 수 있습니다.

앞으로는 이를 기반으로 아래와 같이 확장해 볼 수 있을 것입니다.
– 사내 GPU 인프라를 활용한 내부 LLM 서비스 운영
– NGC 컨테이너를 포함한 CI/CD 파이프라인 통합 테스트
– 모델 학습 및 파인튜닝 전 단계의 프로토타이핑 환경 구축

결국 중요한 것은 NGC에서 LLM 구동 환경을 얼마나 일관되게 재현할 수 있는가입니다.
NGC 컨테이너는 그 출발점을 가장 단순하고 효율적으로 만들어주는 좋은 선택지가 될 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다.