[AI] Ollama 찍먹해보기
Ollama가 무엇인가요?
요즈음 ChatGPT, Calude 등 대형 LLM이 주목받고 있습니다. 하지만 비용이 만만치 않습니다. 내 PC에서 이런 LLM을 사용하려면 클라우드를 사용하거나 앞서 설명한 대형 LLM을 구독하여 사용해야 합니다. 이러한 문제를 해결해주는 오픈소스 프로젝트가 바로 Ollama 입니다.
Ollama는 오픈소스 LLM을 로컬 PC에서 쉽게 실행할 수 있게 해주는 도구입니다.
Mistral, Llama 3 등 다양한 오픈소스 LLM을 지원하죠. 모델 가중치, 설정, 데이터셋을 하나의 패키지로 묶어서 Modelfile로 관리합니다.
Ollama
Get up and running with large language models.
ollama.com
macOS
- 다운로드 페이지(Ollama)에서 macOS용 파일을 다운로드 합니다.
- 다운로드한 zip 파일의 압축을 풉니다.
- 터미널을 열고 압축 해제한 폴더로 이동합니다.
- ./ollama 명령어로 실행합니다.
혹은 brew를 사용합니다!
brew install ollama
https://formulae.brew.sh/formula/ollama
ollama
Homebrew’s package index
formulae.brew.sh
모델 선택하기
ollama 에서 지원하는 모델을 그냥 사용할 수 있지만 저는 한국어 모델이 필요했습니다. 이유는 재미용!!
한국어 모델은 "야놀자" 에서 만든 모델이 있습니다. 기본 모델인 EEVE-Korean-10.8B의 파인 튜닝된 버전입니다.
이 모델에 대해서 간단히 소개해드리겠습니다.
이 모델은 upstage/SOLAR-10.7B 모델을 기반으로 한국어 처리에 최적화된 확장된 어휘를 사용하여 개선되었습니다.
또한, EEVE-Korean 모델은 108억 개의 파라미터를 가지고 있으며, 이는 GPT-3(1,750억 개)보다 적기 때문에 감안하여 사용하시면 됩니다.
로컬 AI 만들어서 사용해보는 것이 목적이기 때문에 이 모델을 활용해봅니다.
https://huggingface.co/yanolja/EEVE-Korean-Instruct-10.8B-v1.0#about-the-model
yanolja/EEVE-Korean-Instruct-10.8B-v1.0 · Hugging Face
EEVE-Korean-Instruct-10.8B-v1.0 Join Our Community on Discord! If you're passionate about the field of Large Language Models and wish to exchange knowledge and insights, we warmly invite you to join our Discord server. It's worth noting that Korean is the
huggingface.co
Hugging Face CLI를 통해 Hugging Face Hub에 있는 모델을 쉽게 다운로드하고 관리할 수 있습니다.
brew install huggingface-cli
모델 다운로드받기
huggingface-cli download heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF ggml-model-Q5_K_M.gguf --local-dir /Users/jiwoo/Downloads/ai --local-dir-use-symlinks False
이 명령어는 다음과 같은 의미를 가집니다:
- huggingface-cli: Hugging Face의 명령줄 인터페이스(CLI)를 사용합니다. Hugging Face는 주로 자연어 처리 모델을 제공하는 플랫폼입니다.
- download heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF: ‘heegyu’ 사용자가 제공하는 ‘EEVE-Korean-Instruct-10.8B-v1.0-GGUF’라는 모델을 다운로드합니다.
- ggml-model-Q5_K_M.gguf: 다운로드한 모델을 ‘ggml-model-Q5_K_M.gguf’라는 파일 이름으로 저장합니다.
- –local-dir /Users/jiwoo/Downloads/ai: 모델 파일을 로컬 디렉토리 ‘/Users/jiwoo/Downloads/ai’에 저장합니다.
- –local-dir-use-symlinks False: 심볼릭 링크를 사용하지 않고 실제 파일을 사용하여 저장합니다. 심볼릭 링크는 파일 시스템 내에서 다른 파일이나 디렉토리에 대한 참조를 만드는 것입니다.
프롬프트 템플릿 작성
한국어 모델 설치가 완료되었다면 다음 순서로는 모델파일을 만들어서 Ollama에게 적용시켜보는 단계입니다.
# 파일이름 Modelfile
FROM ggml-model-Q5_K_M.gguf
TEMPLATE """{{- if .System }}
<s>{{ .System }}</s>
{{- end }}
<s>Human:
{{ .Prompt }}</s>
<s>Assistant:
"""
SYSTEM """A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions."""
PARAMETER stop <s>
PARAMETER stop </s>
위 코드에서 SYSTEM은 원하는 프롬프트(글쓴이의 배경이라든지 원하는 조건)를 넣으면 됩니다.
ollama create EEVE-Korean-10.8B -f Modelfile
# 모델 확인하기
ollama list
# ollama 실행하기
ollama run EEVE-Korean-10.8B:latest
이 명령어는 “Ollama”라는 툴을 사용하여 “EEVE-Korean-10.8B”라는 이름의 한국어 모델을 “Modelfile”이라는 파일을 기반으로 생성하는 작업을 실행하라는 의미입니다.
작업 과정
메모리는 최대 약 2GB 정도 잡히는 것을 확인해볼 수 있습니다.