EDB AI Accelerator와 Nvidia NIM 연동하기

Ian Kinsey
2025년 2월 19일

AI는 방대한 데이터에서 인사이트를 빠르게 도출하는 필수 도구가 되었지만, AI 모델을 설정하는 과정은 여전히 까다롭습니다. Nvidia NIM은 온프레미스 또는 클라우드 환경에서 생성형 AI 모델을 간편하게 배포할 수 있도록 지원하는 플랫폼입니다. 여기에 EDB AI Accelerator를 결합하면, 다양한 AI 모델을 Postgres와 손쉽게 통합하여 데이터베이스 내에서 직접 AI를 활용할 수 있습니다.

이번 글에서는 Docker를 사용해 NIM 모델을 설정하고, 이를 Postgres와 연결하는 방법을 소개합니다.


NIM 모델을 사용하는 방법

NIM 모델을 활용하는 방법은 두 가지가 있습니다:

  • Nvidia 클라우드 서비스 이용
  • Docker를 사용하여 직접 배포

이번 튜토리얼에서는 Docker를 이용한 배포 과정을 다룹니다.

Docker를 이용한 NIM 모델 설정

이 가이드는 Ubuntu 24.04 LTS 환경에서 진행되며,
AWS **EC2 g5.8xlarge 인스턴스 (1024GB gp3 스토리지 포함)**에서 실행됩니다.

1. Nvidia CUDA Toolkit 설치

Nvidia 공식 웹사이트에서 CUDA Toolkit을 다운로드하고 설치합니다.

2. Docker 설치

Docker를 다운로드하고 설치합니다.
설치 방법은 여기에서 확인할 수 있습니다.

3. NGC API 키 생성 및 로그인

  • Nvidia NGC에서 API 키를 발급받습니다.
  • 발급된 API 키를 사용해 NGC 컨테이너 레지스트리에 로그인합니다.

docker login nvcr.io

로그인 시 다음 정보를 입력합니다:

  • Username: $oauthtoken
  • Password: <NGC API KEY>

4. Nvidia NGC CLI 설치

Nvidia NGC CLI를 다운로드하여 설치합니다.
설치 방법은 여기에서 확인할 수 있습니다.

5. NIM 모델 실행하기

아래 스크립트를 쉘 스크립트로 저장한 후 실행합니다.
(자세한 설정 옵션은 Nvidia 공식 문서를 참고하세요.)

# Choose a container name
export CONTAINER_NAME=Llama3-8B-Instruct
NGC_API_KEY="<NGC API KEY>"
# Define the repository and image
Repository=nim/meta/llama3-8b-instruct
export IMG_NAME="nvcr.io/${Repository}:latest"
# Set local cache path
export LOCAL_NIM_CACHE=~/.cache/nim
mkdir -p "$LOCAL_NIM_CACHE"
# Start the LLM NIM container
docker run -it --rm --name=$CONTAINER_NAME \
--runtime=nvidia \
--gpus all \
--shm-size=16GB \
-e NGC_API_KEY=$NGC_API_KEY \
-v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \
-u $(id -u) \
-p 8000:8000 \
$IMG_NAME

6. 배포 테스트

아래 명령어를 실행해 모델이 정상적으로 작동하는지 확인합니다.

curl -X POST "http://0.0.0.0:8000/v1/chat/completions" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"model": "meta/llama3-8b-instruct",
"messages": [
{
"role": "user",
"content": "Tell me a story"
}
]
}'

클라우드 환경에서 설정하기

또는 Nvidia의 클라우드 기반 NIM을 사용할 수도 있습니다.
가입은 여기에서 진행하세요.

1. 모델 선택

Nvidia의 모델 라이브러리에서 원하는 모델을 선택합니다.

2. API 키 생성

모델 페이지에서 API 키를 생성합니다.


AI Accelerator와 모델 통합하기

1. EDB Postgres AI에서 AI Accelerator 활성화

EDB의 생성형 AI 기능을 사용하려면 여기에서 가입하세요.

CREATE EXTENSION aidb CASCADE;

2. 모델 등록하기

(1) 클라우드 기반 모델 사용 시

SELECT aidb.create_model(
'my_nim_llm',
'nim_completions',
'{"model": "meta/llama-3.3-70b-instruct"}',
'{"api_key":"<NIM API KEY>"}'::JSONB
);

(2) Docker 컨테이너에서 실행 중일 경우

SELECT aidb.create_model(
'my_nim_llm',
'nim_completions',
'{"model": "meta/llama-3.3-70b-instruct", "url": "http://<NIM_HOST>:8000/v1/chat/completions"}'::JSONB
);

3. 모델 실행하기

다음 쿼리를 실행하여 모델과 상호작용할 수 있습니다:

SELECT aidb.decode_text('my_nim_llm', 'Tell me a short, one sentence story');

실행 결과는 다음과 비슷할 것입니다:

decode_text
----------------------------------------------------------------------------------------
As the clock struck midnight, a single tear fell from the porcelain doll's glassy eye.

이제 EDB AI Accelerator를 통해 Nvidia NIM 모델을 성공적으로 활용할 수 있습니다!
Postgres에서 AI 기능을 어떻게 활용할 수 있는지 더 알아보려면 여기를 참고하세요.

본문: Integrating EDB’s AI Accelerator with Nvidia NIM

이메일: salesinquiry@enterprisedb.com