이 글에서는 카카오클라우드의 VM 환경에서 Ollama와 OpenWebUI를 활용하여 나만의 오픈소스 기반 LLM 서비스를 구축하는 과정을 다룹니다. Ollama는 오픈소스 언어 모델 라이브러리로, 강력한 언어 모델을 손쉽게 활용할 수 있으며, OpenWebUI는 이러한 모델들을 웹 인터페이스에서 직관적으로 관리할 수 있게 도와주는 도구입니다. 두 도구를 조합하여 클라우드 환경에서 언어 모델을 손쉽게 배포하고 운영하는 방법을 소개하고, 이를 통해 필요한 서비스에 맞춘 최적의 LLM 솔루션을 구현하는 데 필요한 주요 단계를 설명하고자 합니다.
1. Ollama와 OpenWebUI 특징
1-1. Ollama
Ollama는 다양한 오픈소스 언어 모델을 제공하는 플랫폼으로, 사용자들이 다양한 AI 작업을 수행할 수 있도록 설계되었습니다. 특히 텍스트 생성, 요약, 번역 등 폭넓은 텍스트 처리가 가능하며, Python API를 통해 클라우드 환경에서 쉽게 통합할 수 있습니다.
- 오픈소스 LLM: Ollama는 여러 언어 모델을 제공해 텍스트 생성, 요약, 번역과 같은 작업에 활용됩니다.
- 가벼운 실행 환경: 다양한 모델 크기를 제공하여, 16GB RAM 정도의 서버 환경에서도 안정적으로 구동할 수 있습니다.
- 사용 편의성: Python API를 지원해 텍스트 처리 작업을 손쉽게 설정하고, 클라우드 배포도 수월하게 지원합니다.
1-2. OpenWebUI
OpenWebUI는 웹 기반의 인터페이스로, LLM과 같은 모델들을 직관적으로 관리하고 실행할 수 있는 도구입니다. Ollama와 같은 오픈소스 모델을 웹 브라우저에서 관리할 수 있게 하여, 다양한 작업 설정과 테스트를 간편하게 합니다.
- 웹 기반 인터페이스 제공: OpenWebUI는 LLM을 직접 제어하고 테스트할 수 있는 웹 인터페이스를 제공합니다.
- 유연한 클라우드 호환성: 클라우드 환경에서 손쉽게 설정할 수 있어, 다양한 모델을 로드하고 설정을 변경하기가 용이합니다.
- 모델 호환성: 여러 오픈소스 모델을 지원해 다양한 언어 모델을 자유롭게 활용할 수 있습니다.
2. 카카오클라우드에서 사양 선택
카카오클라우드에서 인스턴스를 생성하고 Ollama와 OpenWebUI를 실행하려면 적절한 사양의 인스턴스를 선택하고 설정하는 단계가 필요합니다. 이 과정에서는 프로젝트에 적합한 사양의 인스턴스를 선택한 뒤, 퍼블릭 IP와 SSH 연결을 통해 클라우드 환경을 설정하는 방법을 설명합니다. 이를 통해 필요한 사양을 갖춘 클라우드 환경을 손쉽게 준비하고 안정적으로 접근할 수 있습니다.
2-1. 원하는 사양의 인스턴스를 선택해 생성합니다.
2-2. 퍼블릭 IP 연결 을 눌러 새로운 퍼블릭 IP를 생성하고 자동으로 할당합니다.
2-3. SSH 연결 을 눌러 생성한 key와 SSH 연결 명령어로 앞에 생성한 인스턴스로 연결합니다.
ssh -i {YOUR-KEY}.pem ubuntu@{Public IP}
3. Ollama와 OpenWebUI 설치 및 실행
이제 Ollama와 OpenWebUI를 카카오클라우드 VM 환경에 설치하고 실행하는 방법을 살펴보겠습니다. 이 과정에서는 텍스트 생성 모델을 서버에서 손쉽게 구동하고 웹 기반의 직관적인 인터페이스로 관리할 수 있도록 두 도구를 설치할 것입니다. 설치가 완료되면 Ollama의 다양한 언어 모델을 손쉽게 다루고, OpenWebUI로 편리하게 제어할 수 있습니다.
3-1. Ollama 설치 과정
# python 버전 확인
python3 --version
# Docker 설치
# 필수 패키지 설치
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# Docker GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Docker 저장소 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 패키지 목록 업데이트
sudo apt-get update
# Docker 설치
sudo apt-get install docker-ce
# Docker 서비스 시작 및 부팅 시 자동 시작 설정
sudo systemctl start docker
sudo systemctl enable docker
# 버전 확인
sudo docker --version
# Docker 그룹에 사용자 추가
sudo usermod -aG docker $USER
newgrp docker
# Ollama 설치
# https://ollama.com/download 에서 Linux 용 다운로드 명령어
curl -fsSL https://ollama.com/install.sh | sh
# 모델 설치 확인 (모델 설치 전이라 아무 것도 안나옴)
ollama list
# mistral 모델 설치
ollama run mistral
/bye
# 모델 설치 확인
ollama list
3-2. OpenWebUI 실행
# Open-WebUI를 활용해서 실행
docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
브라우저로 할당받은 {Public IP}:8080 으로 접속후 회원가입을 하게 되면 왼쪽 상단에 설치한 버전을 골라 사용할 수 있습니다.
원하는 버전으로 설치하고 상황에 맞는 모델을 사용할 수 있습니다.
# llama3.1 버전 설치
ollama run llama3.1
4. Ollama를 활용한 예제 (뉴스 요약)
이제 Ollama의 기능을 활용해 뉴스 요약 작업을 구현해보겠습니다. Ollama는 텍스트 요약 기능을 통해 긴 문서나 뉴스 내용을 간결하게 요약할 수 있어 실생활에서 유용하게 활용할 수 있습니다. 본 예제에서는 주어진 뉴스 텍스트를 Ollama의 요약 기능으로 처리하여 핵심 내용을 추출하는 방법을 살펴보겠습니다.
[원본 기사]
[요약 결과]
5. 카카오클라우드와 Ollama를 결합한 오픈소스 LLM 활용의 장점
이 실습을 통해 카카오클라우드 VM 환경에서 Ollama와 OpenWebUI 를 이용해 나만의 LLM 서비스를 만들어 보았습니다. 필요에 따라 카카오클라우드의 서버 사양을 선택하고 오픈소스 LLM을 사용해 비용면에서 효율적입니다. 뉴스 요약과 같은 간단한 예제를 통해 언어 모델이 실질적으로 어떻게 활용될 수 있는지 보여주며, 사용자 맞춤형 서비스 개발에 도움을 줄 수 있습니다.
향후 카카오클라우드에서 제공하고있는 GPU 서비스를 활용하게 된다면 더욱 좋은 성능의 LLM을 활용 수 있습니다.
여러분도 카카오클라우드 환경에서 다양한 LLM 프로젝트에 도전해 보시기 바랍니다.
https://docs.kakaocloud.com/service/bcs/gpu/how-to-guides/gpu-create-instance
댓글