본문 바로가기
카테고리 없음

Llama3 로컬에서 구동하기 (feat. ollama)

by Playdev 2024. 4. 27.
728x90

 

최근 메타에서 llama3 (https://github.com/meta-llama/llama3) 모델을 공개 하였다.

 

GitHub - meta-llama/llama3: The official Meta Llama 3 GitHub site

The official Meta Llama 3 GitHub site. Contribute to meta-llama/llama3 development by creating an account on GitHub.

github.com

 

ollama 로 llama2 를 local llm 으로 테스트중에 있었기에 바로 새로운 모델을 적용해보기로 했다.

한국어 버전의 모델을 사용중이므로 Llama-3-Open-Ko-8B-gguf (https://huggingface.co/teddylee777/Llama-3-Open-Ko-8B-gguf) 를 사용하였다.

 

teddylee777/Llama-3-Open-Ko-8B-gguf · Hugging Face

Ollama Modelfile FROM Llama-3-Open-Ko-8B-Q8_0.gguf TEMPLATE """{{- if .System }} {{ .System }} {{- end }} Human: {{ .Prompt }} Assistant: """ SYSTEM """A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, det

huggingface.co

 

 

먼저, 모델을 다운받아보자.

git clone https://huggingface.co/teddylee777/Llama-3-Open-Ko-8B-gguf

 

 

safetensors 나 pytorch 모델의 경우 llama.cpp 로 변환을 해줘야 하는데,

위 모델은 이미 양자화가 진행된 모델로 필요한 모델을 불러와 사용하기만 되는 것으로 보인다.

 

ollama 에서 사용하기 위해 Modelfile 을 만들어 보자.

FROM ./models/Llama-3-Open-Ko-8B-gguf/Llama-3-Open-Ko-8B-Q8_0.gguf

TEMPLATE """{{- if .System }}
<s>{{ .System }}</s>
{{- end }}
<s>Human:
{{ .Prompt }}</s>
<s>Assistant:
"""

SYSTEM """사용자와 인공지능 어시스턴트 간의 대화. 어시스턴트는 사용자의 질문에 유용하고 상세하며 예의 바른 답변을 제공합니다."""

PARAMETER temperature 0
PARAMETER num_predict 3000
PARAMETER num_ctx 4096
PARAMETER stop <s>
PARAMETER stop </s>

 

 

다음으로 ollama 에서 사용하기 위해 모델을 생성한다.

./ollama create Llama-3-Open-Ko-8B -f Modelfile

 

ollama create 진행 경과

 

 

그럼 아래와 같이 로컬 환경에 빌드된 모델을 확인 할 수 있다.

./ollama list

 

 

이제 로컬에서 llama3 를 실행해보자.

./ollama run Llama-3-Open-Ko-8B

 

 

 

양자화를 해서 인지 메모리를 크게 사용하지 않고, 기본 설정만으로도 대답이 빠른 편이다.

Modelfile 생성 시 PARAMETER 를 조정하고 임베딩 등을 통해 더욱 발전된 서비스를 만들 수 있을 것으로 기대가 된다.

 

 

# API 호출 예시

curl --location 'http://localhost:11434/api/chat' \
--header 'Content-Type: application/json' \
--data '{
  "model": "Llama-3-Open-Ko-8B",
  "messages": [
    {
      "role": "user",
      "content": "SK에너지 머핀 서비스에 대해 설명해주세요."
    }
  ],
  "stream": false
}' | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   696  100   509  100   187    221     81  0:00:02  0:00:02 --:--:--   303
{
  "model": "Llama-3-Open-Ko-8B",
  "created_at": "2024-04-27T13:42:46.550334Z",
  "message": {
    "role": "assistant",
    "content": "SK에너지는 SK이노베이션, SK종합화학 등과 함께 2018년 12월 1일부터 SK머핀을 운영하고 있습니다. SK머핀은 SK에너지가 보유한 전국 주유소와 LPG 충전소에서 사용할 수 있는 멤버십 서비스입니다"
  },
  "done": true,
  "total_duration": 2292507959,
  "load_duration": 883417,
  "prompt_eval_duration": 278649000,
  "eval_count": 72,
  "eval_duration": 2011616000
}

 

 

728x90