Ollama와 Open-WebUI를 이용해서 오픈소스 LLM을 사용해보자 (설치편)
요즘엔 많은 기존 LLM 서비스들이 무료로 많이 풀리고 있다. 특히 채팅 모델은 여러 업체에서 무료로 제공하고 있고 성능과 속도도 일반적인 사용자에게는 충분한 것들이 많다.
다만 기존 서비스들은 서비스 업체의 서버를 사용하게 되기 때문에 많은 정보들이 저장되고 민감한 정보들은 사용하지 못하는 경우들이 생긴다. 그럴 때 유용한게 로컬 환경에서 사용할 수 있는 오픈 소스 LLM들이다. 내 컴퓨터 안에서 모든 걸 처리하기 때문에 단순히 LLM을 사용하기 위해서 내가 입력하고 업로드한 자료들이 외부로 퍼지거나 학습 될 걱정을 하지 않아도 된다.
가장 유명한 조합은 Ollama + Open-WebUI.
Ollama는 오픈소스 LLM을 쉽게 API로 사용할 수 있게 만들어주는 LLM 모델을 구동할 수 있는 서버 프로그램이다. Open-WebUI는 ChatGPT와 같이 LLM 모델과 상호 작용을 할 수 있는 일종의 UI를 제공해주는 라이브러리라고 생각하면 된다.
이번 글에서는 Ollama + Open-WebUI를 설치하는 법에 대해서 간단히 알아본다.
Ollama 설치
Ollama를 설치하는 법은 두가지가 있다. 컴퓨터에 직접 설치, 혹은 Docker Container로 설치.
직접 설치하는 경우, 공식 홈페이지에서 본인의 운영환경에 맞는 설치 파일을 다운로드 해서 설치하면 된다. 매우 쉽다.
https://www.ollama.com/download
설치가 끝나고 Ollama를 실행 시킨 후에는 터미널에 아래 커맨드로 원하는 모델을 구동할 수 있다.
ollama run <모델명>
구동할 수 있는 모델은 Ollama 공식 홈페이지에서 검색하면 된다.
https://www.ollama.com/search
예를 들어 Gemma3 1b 모델을 사용하고 싶다면
ollama run gemma3:1b
로 구동할 수 있다. 아직 모델이 다운로드 되지 않은 경우에는 자동으로 먼저 모델을 다운로드 한 뒤에 구동한다. 터미널에서 직접 해당 모델과 채팅할 수 있다.
구동하지 않고 모델만 다운로드 하고 싶은 경우에는 아래 커맨드.
ollama pull <모델명>
Ollama와 Open-WebUI 동시에 설치
어차피 둘 다 세트로 사용할거라면 docker-compose를 이용해서 둘 다 한거번에 docker container에 설치하면 편하다.
공식 깃허브에 docker-compose.yaml
이 있으니 그대로 가져다가 쓰면 된다.
docker-compose.yaml
파일이 있는 디렉토리에서 아래 커맨드 실행.
docker compose up -d
컨테이너가 활성화되면 http://localhost:3000 으로 Open-WebUI에 접속 할 수 있다.
Ollama 컨테이너에 모델 다운로드 하는 법
로컬 컴퓨터에 Ollama를 설치한 경우에는 그냥 터미널에서 ollama pull <모델명>
을 하면 되지만 docker container에 Ollama를 구동한 경우에는 그냥 터미널에서는 해당 커맨드를 사용할 수 없다.
docker container 안에서 ollama pull <모델명>
커맨드를 실행해야 한다. Ollama를 구동하고 있는 container 이름이 ollama인 경우 아래 커맨드로 가능하다.
docker exec -it ollama ollama pull <모델명>
docker exec -it <ollama컨테이너명> ollama pull <모델명>
Ollama와 Open-WebUI를 각기 다른 머신에 설치 하는 법
Ollama는 LLM 모델을 돌려야하기 때문에 어느정도 머신 성능이 뒷받침 되어야한다. 그렇기 때문에 Ollama는 고성능 머신에, Open-WebUI는 저성능 머신에 설치하고 사용하고 싶을 수 있다.
그러기 위해서는 우선 Ollama의 환경 변수 중 OLLAMA_HOST
의 값을 변경해줘야 한다.
본인의 운영체제에 맞는 환경 변수 변경 법은 공식 깃허브를 참조하면 된다.
OLLAMA_HOST
값을 0.0.0.0:11434
로 변경해주자.
다음으로 Open-WebUI 설치하는 방법. Ollama와 함께 설치하는 docker-compose.yaml
파일에서 ollama
부분만 제거하고 환경 변수 중 OLLAMA_BASE_URL
값을 Ollama가 구동되고 있는 IP주소를 넣어주면 된다.
예를 들어 Ollama가 같은 네트워크 상의 다른 머신인 192.168.1.2에서 구동되고 있다면 OLLAMA_BASE_URL=http://192.168.1.2:11434
라고 적어주면 된다.
services:
open-webui:
build:
context: .
args:
OLLAMA_BASE_URL: '/ollama'
dockerfile: Dockerfile
image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main}
container_name: open-webui
volumes:
- open-webui:/app/backend/data
ports:
- ${OPEN_WEBUI_PORT-3000}:8080
environment:
- 'OLLAMA_BASE_URL=http://192.168.1.2:11434'
- 'WEBUI_SECRET_KEY='
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
volumes:
open-webui: {}
이것으로 오픈 소스 LLM 모델을 사용할 준비는 끝이다. 다음 글에서는 사용 방법에 대해서 알아본다.