728x90
반응형
Ollama란 무엇일까?
- Ollama는 대규모 언어 모델(LLM)을 로컬 환경에서 쉽게 실행·관리할 수 있도록 해주는 오픈소스 플랫폼이다.
- 본글에서는 Ollama를 설치 하고 실제 활용하는 방법에 대해 글을 정리해 보고자 한다.
Ollama 설치 하기
- 설치하는 서비스 아키텍쳐 구성은 아래 그림과 같다.
- Ollama라는 LLM(대규모 언어 모델) 실행 엔진과, 이 Ollama를 웹 브라우저에서 편리하게 사용할 수 있도록 해주는 웹 인터페이스인 Open WebUI를 도커 컨테이너로 실행하여 서로 연결하는 구조를 설명 한 그림이다.

상세 구성 요소 설명
- ollama 서비스 (백엔드 AI 엔진)
- 역할: 실제로 LLM 모델(예: Llama 3, Mistral 등)을 다운로드하고 관리하며, 추론(inference)을 실행하는 핵심 엔진으로 API 서버 역할을 담당한다.
- 이미지: docker.io/ollama/ollama:latest (공식 Ollama 최신 이미지 사용)
- 포트:
- 컨테이너 내부 포트 11434를 호스트의 11434 포트와 연결합니다.
- 이 포트를 통해 외부(또는 다른 컨테이너)에서 Ollama API에 접근할 수 있습니다.
- 볼륨 (저장소):
- 호스트의 ./data/ollama 디렉토리를 컨테이너의 /root/.ollama에 마운트합니다.
- 목적: 다운로드한 거대한 LLM 모델 파일들을 컨테이너가 삭제되어도 호스트에 영구적으로 보관하기 위함입니다.
- 기타:
- # devices: - nvidia.com/gpu=all: 주석 처리되어 있지만, NVIDIA GPU를 사용하여 성능을 가속화하려면 이 부분의 주석을 해제하고 관련 설정(NVIDIA Container Toolkit 등)을 해야 합니다.
- security_opt: - label=disable: SELinux 등의 보안 레이블링을 비활성화하여 권한 문제를 방지합니다.
- restart: always: 컨테이너가 죽으면 자동으로 재시작합니다.
- open-webui 서비스 (프론트엔드 웹 인터페이스)
- 역할: 사용자가 웹 브라우저를 통해 Ollama와 쉽게 상호작용(채팅, 모델 관리 등)할 수 있도록 돕는 웹 애플리케이션입니다. ChatGPT와 유사한 UI를 서비스를 제공 합니다.
- 이미지: ghcr.io/open-webui/open-webui:main (Open WebUI 공식 메인 브랜치 이미지 사용)
- 포트:
- 컨테이너 내부의 웹 서버 포트 8080을 호스트의 3000 포트와 연결합니다.
- 사용자는 브라우저에서 http://localhost:3000으로 접속하게 됩니다.
- 환경 변수:
- OLLAMA_BASE_URL=http://ollama:11434: 가장 중요한 연결 고리입니다. Open WebUI가 API 요청을 보낼 Ollama 서버의 주소를 지정합니다. 여기서 http://ollama는 도커 네트워크 내부에서 ollama 컨테이너를 가리키는 호스트 이름(서비스 이름)입니다.
- 볼륨 (저장소):
- 호스트의 ./data/webui를 컨테이너의 /app/backend/data에 마운트합니다.
- 목적: 사용자의 채팅 기록, 설정, 로그인 정보 등을 영구적으로 저장합니다.
- 의존성:
- depends_on: - ollama: ollama 컨테이너가 먼저 실행된 후에 open-webui 컨테이너가 실행되도록 순서를 보장합니다.
- Llama 3
- Llama 3는 메타(Meta)에서 개발한 최신 오픈소스 대규모 언어 모델(LLM) 이다.
- 이전 모델인 Llama 2보다 성능이 크게 향상되었으며, 다양한 크기의 모델로 제공되어 활용 범위가 넓다.
- 활용 분야
- 챗봇: 고객 서비스, 교육, 엔터테인먼트 등 다양한 분야에서 자연스러운 대화가 가능한 챗봇 개발에 활용될 수 있습니다.
- 콘텐츠 생성: 기사 작성, 소설 창작, 코드 생성, 번역 등 다양한 종류의 콘텐츠를 생성하는 데 사용될 수 있습니다.
- 검색 및 요약: 방대한 정보에서 필요한 정보를 빠르게 찾고 요약하는 데 활용될 수 있습니다.
Podman Compose로 Ollama 설치 하기
사전 준비 사항
- podman 과 podman compose 가 설치 되어 있지 않다면 별도로 설치 한다.
- Rocky 에서는 기본 설치가 되어있다.
- 설치 환경 구성
[root@rocky9:~]$ podman --version
podman version 5.4.0
[root@rocky9:~]$ podman compose --version
>>>> Executing external compose provider "/usr/local/bin/podman-compose". Please see podman-compose(1) for how to disable this message. <<<<
podman-compose version 1.5.0
podman version 5.4.0
[root@rocky9:~]$ cat /etc/redhat-release
Rocky Linux release 9.6 (Blue Onyx)
Ollama 설치 계정 생성 및 docker-compose.yml 작성
- 설치할 계정 및 디렉토리 생성
adduser -d /nvme/ollama ollama
su - ollama
mkdir ai-ollama
cd ai-ollama/
[root@rocky9:~]$ adduser -d /nvme/ollama-docker ollama
[root@rocky9:~]$ passwd ollama
Changing password for user ollama.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@rocky9:~]$ su - ollama
[ollama@rocky9:~]$ mkdir ai-ollama
[ollama@rocky9:~]$ cd ai-ollama/
[ollama@rocky9:~/ai-ollama]$
- docker-compose.yml
version: '3.8'
services:
# [Backend] Ollama 서비스
ollama:
image: docker.io/ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ./data/ollama:/root/.ollama # 모델 데이터 영구 저장
# GPU 사용 시 아래 devices 주석 해제 (CDI 설정 필수)
# devices:
# - nvidia.com/gpu=all
security_opt:
- label=disable # SELinux 권한 문제 방지
restart: always
# [Frontend] Open WebUI (ChatGPT 유사 화면)
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080" # 3000번 포트로 접속
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- ./data/webui:/app/backend/data
depends_on:
- ollama
security_opt:
- label=disable
restart: always
Ollama 설치
- podman 으로 설치 하기
podman compose up -d
- Open WebUI 접속
- http://IP:3000/
- 접속 해서 관리자 계정을 생성한다.


- 설치 하고 웹에 접속 하면 바로 사용을 할수가 없다 .
- llama3 모델을 설치 해야 비로소 사용이 가능 하다.
# ollama 컨테이너 안에 명령을 내려서 'llama3' 모델을 다운로드
podman exec -it ollama ollama run llama3
- llama3 를 설치 하고 난후 설치한 모델을 선택하면 GPT 처럼 채팅이 가능 하다
- 테스트로 BTS 에 대해 질문을 해보았다...

- 한글로 번역해달라고 해봤습니다... ㅎ

다른 모델도 사용 할수 있다고하니... 이것도 해봐야 겠습니다.
- Google Gemma (젬마): 구글이 만든 오픈 모델 (Apache 2.0)
- Mistral (미스트랄): 프랑스 기업이 만든 고성능 모델 (Apache 2.0)
728x90
반응형
