소소한 컴퓨터 이야기

Ollama 사용 설정하기

by Cori

AI

Ollama를 활용해 토이프로젝트를 진행하게 되어, Ollama의 개념, 설치 방법 및 개발중인 도커 컨테이너와 Ollama를 연동하는 방법을 기록해본다.


Chap # 01. Ollama란 ?

로컬 환경에서 대형 언어 모델(LLM)을 실행할 수 있도록 설계된 오픈소스 프로젝트로, 인터넷 연결 없이도 다양한 모델을 활용할 수 있디. Ollama는 GPU 가속을 지원하여 빠른 추론이 가능하며, 기존의 클라우드 기반 AI 서비스와 달리 데이터를 로컬에서 처리 가능하다(보안 강화).

 

  • 로컬 실행: 클라우드에 의존하지 않고 로컬에서 LLM 실행 가능
  • 경량화된 모델 제공: 기존 대형 모델을 최적화하여 경량화된 버전 사용 가능
  • GPU 가속 지원: NVIDIA GPU를 활용하여 성능을 극대화
  • Docker 연동 가능: 컨테이너 환경에서 실행 가능 (배포 용이)

 

Chap # 02. Ollama 설치

운영체제별로 Ollama 설치 방법이 조금씩 다르지만, 전반적으로 어렵지 않다.

1. Windows

Ollama 공식 사이트에서 설치 파일(.exe)을 다운로드하고, 설치 파일 실행 후 안내에 따라 진행한다. 설치가 완료되면, 터미널에서 설치 여부를 확인할 수 있다. 

ollama --version

2. Ubuntu / Debian 

Ubuntu, Debian에서는 다음 명령어를 통해 설치할 수 있다. 

curl -fsSL https://ollama.ai/install.sh | sh

3. Mac

Mac에서는 homebrew를 사용해 간단하게 설치할 수 있다. 

brew install ollama

 

Chap # 03. Docker Container와 연동하기

현재 사용중인 개발 방식은 로컬 컴퓨터(Host)에서 Ollama를 실행해두고, 개발중인 도커 환경 내에서 호스트의 Ollama와 연결하는 것이다. 

Ollama가 실행중인지 확인하려면, 프로세스가 실행되고 있는지, Ollama가 사용하는 포트(Port: 11434)가 열려있는지 확인해보자.

ps aux | grep ollama # 실행중 프로세스 확인
netstat -tulnp | grep 11434 # 11434 포트가 열려있는지 확인

만약 아무런 반환 값이 없으면, 우선 로컬 컴퓨터에서 Ollama를 실행시켜주어야 한다. 

ollama serve &

개발 작업에 사용할 도커 컨테이너는,  실행시킬 때 Ollama 사용을 위한 포트 매핑을 해주어야 한다.

docker run -p 11434:11434 [Docker Image]

컨테이너 내부로 들어갔다면, 외부에서 실행되고 있는 Ollama와 연결이 가능한지 테스트해보자. 여기서 주의할 점은, 도커 내에서의 localhost는 컨테이너 내부를 가리키기 때문에, curl http://localhost:11434/~ 와 같은 방식으로 연결을 시도하면 잘 동작하지 않는다는 점이다 !!

 

컨테이너 내부에서 호스트의 Ollama 서버에 접근할 때는 host.docker.internal*을 사용해야 한다. 

(host.docker.internal* = 컨테이너 내부에서 호스트의 서비스를 호출할 때 사용하는 주소)

apt-get update -y
apt-get install curl -y
curl http://host.docker.internal:11434/api/tags

연결된 것을 확인했다면, 컨테이너 내에서 OLLAMA_HOST 환경 변수를 설정해주자.

export OLLAMA_HOST=http://host.docker.internal:11434

설정이 완료되었다. 다음과 같이 테스트 코드를 작성해서 실행하면, 컨테이너 내부에서 외부 Ollama의 모델이 동작하는 것을 볼 수 있을 것이다 ! 

import ollama
response = ollama.chat(
model="llava:13b", # 모델 이름 (llava-13b)
messages=[
{"role": "system", "content": "Describe the content of the image."}
],
)
print(response['message']['content'])

오늘은 Ollama가 무엇인지, 어떻게 설치하는지, 그리고 Docker로 실행하는 방법까지 살펴봤다. Ollama를 활용하면 로컬에서도 LLM을 쉽게 실행할 수 있어 AI 연구나 개발할 때 유용하지 않을까 싶다. 해당 포스트가 많은 도움이 되었길 바라며 이번 포스팅을 마친다.

 

Reference

[1] https://ollama.com/

블로그의 프로필 사진

블로그의 정보

코딩하는 오리

Cori

활동하기