콘텐츠로 이동

4.2. 엔진 및 런타임 관리

엔진 메뉴는 추론 엔진과 런타임 의존성을 관리하는 중앙 허브입니다. 이곳에서 llama.cpp, MLX 등 다양한 추론 백엔드의 여러 버전을 다운로드하고, 업데이트하며, 하드웨어에 맞게 설정할 수 있습니다.

엔진 페이지 이해하기

엔진 페이지는 세 가지 주요 섹션으로 구성됩니다:

  1. 설치된 엔진 - 현재 시스템에 설치된 엔진들
  2. 설치된 런타임 - 엔진이 의존하는 런타임 라이브러리
  3. 사용 가능한 엔진 - 공식 레지스트리에서 다운로드 가능한 새 엔진들

엔진 관리 엔진 관리

왜 엔진을 직접 관리해야 하나요?

하드웨어별 최적화

각 GPU마다 다른 엔진 빌드가 필요합니다:

하드웨어 최적의 엔진 변형
NVIDIA RTX/GeForce CUDA 13 기반 llama.cpp
NVIDIA (구형) CUDA 12 기반 llama.cpp
AMD Radeon/Instinct ROCm/HIP 기반 llama.cpp
Intel Arc SYCL 또는 Vulkan 기반 llama.cpp
Apple Silicon Metal 기반 llama.cpp, MLX 또는 MLXcel
CPU 전용 CPU용 llama.cpp (AVX2/AVX-512)

지원되는 추론 엔진

Backend.AI GO는 다양한 추론 엔진을 지원합니다:

엔진 지원 형식 플랫폼 설명
llama.cpp GGUF 전체 고성능 GGUF 모델 추론
MLX LM Safetensors, GGUF macOS (Apple Silicon) Apple MLX 기반 추론
MLXcel Safetensors macOS (Apple Silicon) Lablup의 최적화된 MLX 서빙 엔진

포맷별 기본 엔진 설정

동일한 형식을 지원하는 여러 엔진이 있을 때 (예: MLX LM과 MLXcel 모두 Safetensors 지원), 설정 > 추론 > 포맷별 기본 엔진에서 기본으로 사용할 엔진을 설정할 수 있습니다.

버전 관리

여러 엔진 버전을 동시에 설치하고 운영할 수 있습니다:

  • 새 릴리스를 적용하기 전에 미리 테스트
  • 문제 발생 시 이전 버전으로 롤백
  • 버전 간 성능 비교

의존성 관리

일부 엔진은 런타임 라이브러리가 필요합니다. 엔진 페이지에서 이러한 의존성을 자동으로 감지하고 필요시 설치해 줍니다.


엔진 설치하기

레지스트리에서 설치

  1. 사이드바 메뉴에서 엔진 페이지로 이동합니다.

  2. 사용 가능한 엔진 섹션으로 스크롤합니다.

  3. 원하는 엔진을 찾습니다 (예: llama.cpp).

  4. 다운로드 버튼을 클릭합니다.

  5. 여러 변형이 있는 경우 (예: CUDA 13, Metal, CPU) 대화 상자가 나타납니다:

    • 감지된 하드웨어에 따라 권장 변형이 표시됩니다
    • 각 변형의 다운로드 크기가 표시됩니다
    • GPU에 맞는 변형을 선택하세요
  6. 다운로드가 즉시 시작됩니다. 플로팅 다운로드 대기열 패널에서 진행 상황을 확인할 수 있습니다.

다운로드 진행 단계

설치 과정은 여러 단계를 거칩니다:

단계 설명
다운로드 중 레지스트리에서 엔진 패키지 전송 중
압축 해제 중 압축된 아카이브 해제 중
검증 중 체크섬을 통한 파일 무결성 확인 중
설치 중 최종 위치로 파일 복사 중

런타임 의존성

엔진이 설치되지 않은 런타임 라이브러리를 필요로 하는 경우, 자동으로 다운로드됩니다. 런타임 다운로드에 대한 별도의 진행률 표시기가 나타납니다.

오프라인 설치

에어갭(air-gapped) 환경이나 수동 다운로드를 선호하는 경우:

  1. Backend.AI GO Releases에서 .baiengine 패키지 파일을 다운로드합니다.

  2. incoming 디렉토리에 파일을 배치합니다:

    ~/.backend-ai-go/engines/incoming/
    
    %APPDATA%\backend.ai-go\engines\incoming\
    
  3. 엔진 페이지를 열면 대기 중인 패키지 배너가 나타납니다.

  4. 가져오기 버튼을 클릭하여 감지된 패키지를 설치합니다.

또는 .baiengine 파일을 엔진 페이지로 드래그 앤 드롭할 수도 있습니다.


설치된 엔진 관리하기

엔진 카드

설치된 각 엔진은 다음 정보를 보여주는 카드로 표시됩니다:

  • 엔진 이름 및 버전 (예: llama.cpp 1.0.0)
  • 가속기 배지: Metal, CUDA 13, CPU 등
  • 상태 배지:
    • 🟢 활성 - 현재 모델 실행 중
    • 🟠 업데이트 가능 - 레지스트리에 새 버전 존재
  • 지원 형식: GGUF, MLX 등
  • 설치 크기

수행 가능한 작업

작업 설명
별표 아이콘 이 엔진 유형의 기본 엔진으로 설정
새로고침 아이콘 최신 버전으로 업데이트 (가능한 경우)
휴지통 아이콘 엔진 제거
카드 클릭 상세 정보 드로어 열기

기본 엔진 설정하기

동일 엔진의 여러 변형이 설치된 경우 (예: llama.cpp의 CUDA 13 버전과 CPU 버전), 하나를 기본값으로 설정할 수 있습니다:

  1. 엔진 카드에서 별표 아이콘을 클릭합니다.
  2. 별표가 채워지면 해당 엔진이 기본값으로 설정된 것입니다.
  3. 모델 로드 시 Backend.AI GO가 이 엔진 변형을 우선 사용합니다.

여러 기본값 설정

기본 엔진 ID당 하나의 기본값을 설정할 수 있습니다. 예를 들어, 기본 llama.cpp CUDA 13과 기본 MLX 엔진을 동시에 설정할 수 있습니다.


엔진 상세 정보 드로어

엔진 카드를 클릭하면 세 개의 탭이 있는 상세 정보 드로어가 열립니다:

개요 탭

  • 기본 정보: ID, 버전, 가속기, 설치 날짜
  • 매니페스트 상세: 포맷 버전, 업스트림 버전, 플랫폼 호환성
  • 가속기 정보: 특정 백엔드 세부 정보 및 최적화 내용

파일 탭

설치된 파일 탐색:

  • 디렉토리 구조
  • 파일 크기
  • 문제 해결이나 설치 확인에 유용

의존성 탭

런타임 의존성 확인:

  • 필수 vs 선택 의존성
  • 각 의존성의 설치 상태
  • 버전 요구 사항

런타임 라이브러리

런타임이란?

런타임 라이브러리는 엔진 작동에 필요한 공유 의존성입니다. 가장 일반적인 것들은 다음과 같습니다:

런타임 용도
CUDA 13 런타임 NVIDIA GPU 가속, 최신 GPU용
CUDA 12 런타임 NVIDIA GPU 가속, 구형 GPU용
ROCm/HIP 런타임 AMD GPU 가속
oneAPI/SYCL 런타임 Intel GPU 가속

자동 설치

런타임이 필요한 엔진을 설치할 때:

  1. Backend.AI GO가 누락된 의존성을 감지합니다.
  2. 런타임이 자동으로 다운로드됩니다.
  3. 다운로드 대기열에 두 개의 진행률 표시기가 나타납니다.
  4. 런타임이 엔진 설치 완료 전에 설치됩니다.

설치된 런타임 보기

설치된 런타임 섹션에는 다음이 표시됩니다:

  • 런타임 이름 및 버전
  • 설치 날짜
  • 이 런타임에 의존하는 엔진들

런타임 카드를 클릭하면 의존하는 엔진의 전체 목록을 볼 수 있습니다.

런타임 지속성

런타임은 엔진 버전 간에 공유됩니다:

  • 엔진 업데이트 시: 런타임은 그대로 유지됨
  • 런타임을 사용하는 모든 엔진 제거 시: 런타임은 유지됨 (향후 사용 대비)
  • 런타임 수동 삭제 시: 의존하는 엔진이 작동하지 않을 수 있음

하드웨어 감지

Backend.AI GO는 최적의 엔진 변형을 추천하기 위해 시스템 하드웨어를 자동으로 감지합니다.

감지 항목

  • GPU 제조사: NVIDIA, AMD, Intel, Apple
  • GPU 모델: 특정 카드 이름 (예: RTX 4090, RX 7900 XTX)
  • 드라이버 버전: CUDA 버전, ROCm 버전 등
  • VRAM: 사용 가능한 비디오 메모리
  • 디스크 공간: 엔진 설치에 사용 가능한 저장 공간

시스템 기능 확인

시스템 기능은 엔진 변형 선택 시 표시됩니다:

  • 하드웨어에 맞는 최적의 변형에 권장 배지 표시
  • 설치 대화 상자에 사용 가능한 가속기 목록 표시
  • 저장 공간 부족 시 경고 표시

엔진 업데이트하기

업데이트 확인

Backend.AI GO는 주기적으로 레지스트리에서 새 엔진 버전을 확인합니다. 업데이트가 있으면:

  • 엔진 카드에 주황색 업데이트 가능 배지가 나타납니다
  • 업데이트 버전 번호가 표시됩니다

업데이트 적용

  1. 엔진 카드에서 새로고침 아이콘을 클릭합니다.
  2. 새 버전이 다운로드되어 기존 버전을 대체합니다.
  3. 설정 및 기본 환경 설정은 유지됩니다.

활성 엔진

모델이 실행 중인 동안에는 엔진을 업데이트할 수 없습니다. 먼저 모델을 중지한 후 업데이트하세요.


문제 해결

엔진이 설치되지 않음

증상 해결 방법
다운로드 실패 인터넷 연결 확인; 나중에 다시 시도
압축 해제 실패 충분한 디스크 공간 확보
검증 실패 패키지가 손상되었을 수 있음; 다시 다운로드
런타임 누락 런타임 다운로드가 실패했을 수 있음; 수동 확인

엔진이 시작되지 않음

증상 해결 방법
"라이브러리를 찾을 수 없음" 런타임 의존성 누락; 엔진 재설치
"GPU를 감지할 수 없음" GPU 드라이버 업데이트; CPU 변형 시도
즉시 충돌 시스템 요구 사항 확인; 다른 변형 시도

멈춘 다운로드 해결

다운로드가 멈춘 것 같으면:

  1. 다운로드 대기열에서 취소 버튼을 클릭합니다.
  2. 정리가 완료될 때까지 기다립니다.
  3. 설치를 다시 시도합니다.

검증 중 취소 불가

파일 손상을 방지하기 위해 검증 단계에서는 취소 버튼이 비활성화됩니다.


모범 사례

올바른 변형 선택

  • 최대 성능을 위해: GPU에 맞는 엔진 변형 선택
  • 호환성을 위해: CPU 변형은 어디서나 작동하지만 속도가 느림
  • 메모리 제한 시스템의 경우: 일부 변형이 더 메모리 효율적임

엔진 최신 상태 유지

새 버전에는 보통 다음이 포함됩니다:

  • 성능 향상
  • 버그 수정
  • 새로운 모델 아키텍처 지원
  • 보안 패치

디스크 공간 관리

엔진 패키지는 상당히 클 수 있습니다 (100MB - 1GB 이상). 주기적으로:

  • 사용하지 않는 엔진 변형 제거
  • 파일 탭에서 설치 크기 확인
  • 실제로 사용하는 변형만 유지

모델 로딩과의 연동

엔진 페이지는 모델 로딩 시스템과 긴밀하게 연동됩니다:

  1. 모델 형식 감지: 모델을 로드하면 Backend.AI GO가 형식(GGUF, Safetensors 등)을 확인합니다.

  2. 엔진 선택: 해당 형식을 지원하는 설치된 엔진을 찾습니다.

  3. 포맷별 기본값: 설정에서 해당 형식의 기본 엔진을 확인합니다.

  4. 우선순위 기반 선택: 기본값이 설정되지 않은 경우 우선순위에 따라 엔진이 선택됩니다:

    • Safetensors 형식: MLXcel > MLX LM
    • GGUF 형식: llama.cpp (GPU 가속 우선)
  5. 하드웨어 최적화: 동일 우선순위에서 GPU 가속 변형이 CPU 전용보다 우선됩니다.

포맷별 기본값 설정

설정 > 추론 > 포맷별 기본 엔진에서 각 모델 형식에 사용할 엔진을 설정할 수 있습니다. MLXcel과 MLX LM이 모두 설치되어 있을 때 Safetensors 모델을 처리할 엔진을 선택하고 싶을 때 특히 유용합니다.

모델 로딩에 대한 자세한 내용은 다음을 참조하세요:


기술 세부 사항

엔진 패키지 형식

엔진 패키지는 .baiengine 형식을 사용합니다:

  • 바이너리와 메타데이터를 포함하는 ZIP 아카이브
  • manifest.json에 엔진 및 요구 사항 기술
  • 체크섬으로 파일 무결성 보장
  • 각 OS/아키텍처용 플랫폼별 빌드

디렉토리 구조

~/.backend-ai-go/
├── engines/
│   ├── incoming/              # 오프라인 패키지 스테이징
│   ├── installed.json         # 설치된 엔진 레지스트리
│   ├── llama-cpp-metal/       # 엔진: Metal 기반 llama.cpp
│   ├── llama-cpp-cuda13/      # 엔진: CUDA 13 기반 llama.cpp
│   └── mlx/                   # 엔진: MLX
├── runtimes/
│   ├── installed.json         # 설치된 런타임 레지스트리
│   ├── cuda13-runtime/        # 런타임: CUDA 13
│   └── hip-runtime/           # 런타임: AMD HIP
├── logs/                      # 애플리케이션 로그
└── config/                    # 설정 파일

지원되는 가속기

가속기 플랫폼 설명
metal macOS M 시리즈 칩용 Apple Metal
cuda Windows, Linux NVIDIA CUDA
rocm Linux AMD ROCm
hip Windows AMD HIP (ROCm의 Windows 포트)
vulkan 전체 크로스 플랫폼 GPU API
sycl 전체 Intel oneAPI SYCL
cpu 전체 폴백용 CPU 전용 추론

엔진 시스템은 사용자의 하드웨어에 최적화된 추론 백엔드를 항상 사용할 수 있도록 보장하여, 로컬 AI를 접근 가능하고 성능 좋게 만들어 줍니다.