Llamafile vs. Ollama – LLM 실행과 모델 배포를 위한 최적의 선택 #1

LLM 모델을 실행하는 모듈이라면 Ollama 플랫폼이 유명하죠. 물론, 우리도 여러 차례 다양한 주제로 Ollama를 사용해 보기도 했고요. 최근 들어 LLM 모델을 더 효율적으로 배포하고 활용할 수 있도록 하는 다양한 도구들이 나타나고 있는 것 같아요. 오늘은 그중에서도 Llamafile이라고 하는 LLM 실행 모듈에 대해 살펴보겠습니다.


Llamafile vs. Ollama

Llamafile

기존 llama.cpp 프로젝트를 기반으로 개발되었으며, llama.cpp는 Meta의 LLaMA 시리즈 같은 대형 언어 모델(LLM)을 다양한 컴퓨터 환경에서 빠르고 가볍게 실행할 수 있도록 도와주는 엔진입니다.

Llamafile은 여기서 한 단계 더 나아가, 모델 파일(가중치), 실행 엔진, 그리고 실행에 필요한 모든 라이브러리를 하나의 실행 파일(.exe, .elf 등)로 패키징하여 배포합니다. 이러한 방식을 ‘올인원(All-in-one) 실행 파일’ 또는 ‘Fat Executable’이라고도 부릅니다.

Llamafile의 주요 장점

  1. 뛰어난 이식성 (Portability): Llamafile은 단 하나의 파일만으로 실행이 가능합니다. 복잡한 설치 과정이나 환경 설정 없이, Windows, macOS, Linux 등 다양한 운영체제에서 바로 사용할 수 있습니다.
  2. 간편한 배포 (Simple Deployment): 개발자는 원하는 모델과 실행 환경을 하나의 Llamafile로 통합하여 배포할 수 있습니다. 사용자는 단순히 파일을 다운로드하고 실행하기만 하면 되므로, 설치나 설정에 대한 부담이 없습니다.
  3. 쉬운 버전 관리 (Easy Version Management): 각 Llamafile은 특정 모델과 버전에 맞춰져 독립적으로 운영됩니다. 예: llama3-8b-v1.llamafile, llama3-8b-v2.llamafile 이처럼 파일 이름만으로도 어떤 모델과 버전인지 식별 가능하며, 여러 버전 또는 모델을 충돌 없이 동시에 관리할 수 있습니다.
  4. 강화된 보안 (Security): Llamafile은 실행에 필요한 환경을 파일 내부에 모두 포함하고, 외부 리소스에 대한 접근을 최소화하여 보안을 강화합니다. 예를 들어: HTTP 서버가 파일 시스템에 접근하지 못하도록 제한, 네트워크 사용을 엄격히 제어하는 샌드박스 기능 탑재.

Llamafile과 Ollama 비교 요약

특징LlamafileOllama
핵심 목적단일 파일로 LLM 배포 및 실행로컬 LLM의 관리, 실행 및 통합 플랫폼
설치/설정거의 없음 (단일 실행 파일)설치 필요 (더 체계적인 관리 시스템)
휴대성매우 뛰어남 (파일 하나로 실행)상대적으로 낮음 (설치된 환경이 필요)
모델 관리모델 가중치를 파일에 포함 (개별 파일 관리)중앙 집중식 모델 관리 (다운로드, 업데이트, 삭제)
사용 시나리오빠른 프로토타이핑, 제한된 자원 환경, 임베딩, 간편 배포복잡한 AI 프로젝트, 모델 관리 요구사항, 기존 워크플로우 통합
통합 용이성REST API를 통해 직접 상호작용API 및 다양한 커뮤니티 통합(LangChain, LlamaIndex 등)
주요 장점단순성, 휴대성, 빠른 시작포괄적인 모델 관리, 유연성, 확장성, 다양한 모델 지원
  • Llamafile이 적합한 경우:
    • 개인 사용자 또는 초심자가 특정 LLM을 빠르게 테스트하거나 체험하고자 할 때: 별도의 설치 과정 없이 즉시 실행할 수 있는 간편함은 최고의 장점입니다.
    • 데모 또는 POC(개념 증명) 목적으로 LLM을 손쉽게 배포해야 할 때: 클라이언트에게 파일을 전달하는 것만으로 LLM 기능을 시연할 수 있습니다.
    • 인터넷 연결이 제한되거나 독립적인 환경에서 LLM을 구동해야 할 때: 모든 것이 하나의 파일에 포함되어 있어 네트워크 의존성이 없습니다.
    • 소스 제어 시스템(Git 등)에서 LLM 모델 파일을 직접 관리하고 싶을 때: 실행 파일 자체가 모델을 포함하므로 버전 관리가 직관적입니다.
    • 아주 작은 임베디드 시스템이나 특수 목적의 경량 애플리케이션에 LLM 기능을 통합해야 할 때: 최소한의 의존성으로 구동 가능합니다.
  • Ollama가 적합한 경우:
    • 다수의 LLM을 관리하고 서비스해야 하는 개발 환경: 다양한 모델을 쉽게 다운로드하고, 전환하며 사용할 수 있는 중앙 집중식 관리 기능이 필수적일 때.
    • API를 통해 LLM을 프로그램적으로 연동하여 새로운 애플리케이션이나 서비스를 구축하고자 할 때: 표준화된 API는 개발 생산성을 크게 향상시킵니다.
    • 다양한 모델을 쉽게 탐색하고, 파인 튜닝하거나, 자신만의 커스텀 모델을 추가하여 사용해야 할 때: Ollama의 모델 관리 기능이 유용합니다.
    • 활발한 커뮤니티 지원과 확장 가능한 생태계를 선호하는 사용자: Open WebUI 등 다양한 프론트엔드 도구와의 연동을 통해 사용 편의성을 극대화할 수 있습니다.
    • 모델 서빙을 위한 안정적이고 확장 가능한 로컬 서버를 구축하고자 할 때: Ollama는 LLM 서빙을 위한 효율적인 인프라를 제공합니다.


파일 다운로드 및 설치

자, 그러면 라마파일을 설치해야죠. 아래 페이지에서 다운로드합니다.

현재(25년 5월) 기준 라마파일 최신 버전은 v0.9.3이네요. (https://github.com/Mozilla-Ocho/llamafile/releases)

페이지 하단에 “Assets”부분에서 해당 버전을 다운로드합니다. 다운로드 후 파일에 .exe를 붙여줍니다.

이제, LLM 모델을 다운로드해야죠. LLM 모델은 추후 비교를 위해서도 필요하므로 한국어가 가능한 작은 모델을 선택하기로 하겠습니다.

또, Ollama에서 설치할 수 있는 모델과 동일하면 추후 서로 다른 실행 모듈에서 동작하는 모델을 비교하기 위해 같은 모델로 선정합니다.

deepseek-r1, Ollama
deepseek-r1, Ollama

이 두 조건에 따라 “DeepSeek-R1-Distill-Llama-8B”의 양자화된 Q4_K_M 모델이 적합할 듯합니다.

Huggingface에서 “DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf” 모델을 다운로드합니다. 다운로드가 완료되면 위에서 받았던 “llamafile-0.9.3“과 같은 폴더에 둡니다.

llamafile과 LLM 모델
llama-file과 LLM 모델

그럼, 필요한 파일은 모두 다운했으니, 라마파일을 이용해 모델을 실행합니다. CMD를 열고 다음 명령어를 입력합니다.

llamafile-0.9.3.exe --model DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf

CMD에서 명령어를 실행하면 다음과 같습니다. 얼핏 보면 CMD에서 Ollama를 통해 모델을 실행할 때와 비슷한데요, 한 가지 다른 부분은 붉은색 박스 부분이에요.

llamafile 실행 화면 1.
llama-file 실행 화면 1.

실행 로그를 보면 현재 시스템 환경에 대해 나오고 바로 아래에 서버 주소가 나옵니다.

Server: http://127.0.0.1:8080/

웹브라우저를 열고 주소창에 상기 주소를 입력하여 연결해 보면 아래와 같은 화면을 확인할 수 있어요. 물론 아래 화면은 연결된 첫 화면이 아니라 이미 DeepSeek-R1 모델과 대화하는 화면이기는 한데요, 이렇게 웹 UI를 사용할 수 있다면 Ollama에서와 같이 웹 UI를 사용하기 위해 Docker 등을 연결할 필요가 없습니다. 좀 더 편리하죠.

llamafile 실행 WebUI
llamafile 실행 WebUI

이 화면의 llama.cpp와 관련한 옵션은 다음 글에서 더 자세하게 정리해 보기로 할게요.


답글 남기기