LLama 모델 다운받기

안상훈·2024년 12월 26일

온디바이스LLM

목록 보기
6/16
post-thumbnail

라마 모델을 다운받는건
Ollama설치하고

Ollama pull [다운받고자 하는 모델]

이렇게 하면 된다


이게 아니고 진짜 USB에 저장해서 갖고 다니는 모델을 다운받는 방법에 대해 설명하고자 한다.

https://github.com/meta-llama/llama-models?tab=readme-ov-file

먼저 해당 깃허브 사이트에 접속하면 모델의 학습된 가중치 및 토크나이저 다운로드 방법에 대한 방법을 소개하고 있다.

https://www.llama.com/llama-downloads/

모델 다운로드 방법의 첫번째 방법에 적혀있는 웹사이트에 접속하면
위 사진처럼 Llama를 다운로드 받을 수 있는 사이트로 넘어가며, 다운로드 받기 전 개인정보를 요청하니 적당히 학구적인 스타일로 기재하면 된다.

잘 기재하면 다운로드 메일이 날라오고(필자는 3.2, 3.1두개를 선택했다)

메일주소로 날라온 링크를 클릭하면 모델을 다운로드 하기 위한 설치 항목들 및 URL주소가 링크되어 있으니 이를 다운로드하면 된다.

우선 pip로 설치할 항목을 진행하자.

참고로 이거 다운받으려면 우분투 환경에서 진행해야 한다
윈도우에서는 안된다.

필자의 경우 wsl-ubuntu환경에서 snapd이랑 뭐 이거저거 설치해서 간신히 찾아냈다..

pip install llama-stack
sudo apt install snapd
llama model list --show-all

위 사진처럼 llama-stack를 설치하고 다운로드가 가능한 모델 리스트 출력 명령어를 치면 모델 리스트가 쭉 뜬다

필자는
Llama3.1-8B, Llama3.1-8B-Inst,
Llama3.2-1B, Llama3.2-3B, Llama3.2-3B-Inst

총 5종을 다운로드 받고자 한다.

다운로드 받는 방식은

llama model download --source meta --model-id  [MODEL_ID 입력]

이 명령어를 수행하면 URL을 입력하라는데
여기서 특별하게 발부된 URL을 기입하면 된다.

아무튼 다운받으면 각 모델의 파일 구성은 위와 같은데
이걸 ollama 프레임워크의 모델 관리에 포함하는 것이 이번 포스트의 목적이라 볼 수 있다.


2024.12.30 개정사안

이것저것 뭐 좀 알아봤는데 GGUF형식으로 된 파일을 허깅페이스에 구해다가 쓰는게 제일 속편하다

찾는 방법이랑 다운로드 받아야 할 파일에 대해 설명하겠다.

https://ollama.com/library/llama3.1
먼저 3.1부터 설명을 하자면

ollama에서 제공하는 Llama의 원본 모델파일을 보면
모델에 대한 아키텍쳐, 파라미터, 그리고 가장 중요한
양자화 방식이 뭐가 적용되어 있는지 나와있다.

지금 보면 Q4_K_M인데
양자화 수준이 Q4정밀도에 최적화를 수행한 양자화 방식을 적용했다 라는 뜻이다.

이걸 허깅페이스에서 3.1-8B, Instruction, GGUF이 3개의 단어가 들어간 페이지를 찾으면 된다.

https://huggingface.co/bartowski/Meta-Llama-3.1-8B-Instruct-GGUF

이렇게 차례대로 한다면 ollama에서 제공하는 각 버전별 Llama 모델과 완전히 동일한 모델을 GGUF형식으로 다운로드가 가능하다.

나머지 Llama모델도 다운로드를 수행하자

https://huggingface.co/bartowski/Llama-3.2-3B-Instruct-GGUF/blob/main/Llama-3.2-3B-Instruct-Q4_K_M.gguf

https://huggingface.co/bartowski/FastLlama-3.2-1B-Instruct-GGUF/blob/main/FastLlama-3.2-1B-Instruct-Q6_K_L.gguf

원래는 meta 공식 페이지에서 다운받은 파일을 어떻게든 ollama에 붙여보려고 했는데

뭐 자료도 잘 안나와있고.. 여러모로 사람 열받게 하는게 많아서 포기했다.

아무튼 USB파일에는 Meta의 공식 raw 모델 파일과

허깅페이스에서 누군가 친절하게 gguf로 ollama의 동일한 양자화 방식으로 변환한 파일 두종류가 있다.

gguf 파일을 ollama에 등록하기

이제 gguf 파일을 ollama에 등록을 해야하는데

각 gguf 파일마다 Modelfile이 필요하다.
이걸 일일이 작성해야 하는데

ollama 홈페이지에 나와있는 목표 model별로 파일구성을 살펴보면

template 항목이 나와있다, params는 의미가 좀 없는 파일이다...

이걸 그대로 복붙해서 Modelfile을 만들면 된다
예시는 아래와 같다.

1) Modelfile.llama-318b 파일

FROM Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf
TEMPLATE """{{- if or .System .Tools }}<|start_header_id|>system<|end_header_id|>
{{- if .System }}

{{ .System }}
{{- end }}
{{- if .Tools }}

Cutting Knowledge Date: December 2023

When you receive a tool call response, use the output to format an answer to the orginal user question.

You are a helpful assistant with tool calling capabilities.
{{- end }}<|eot_id|>
{{- end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 }}
{{- if eq .Role "user" }}<|start_header_id|>user<|end_header_id|>
{{- if and $.Tools $last }}

Given the following functions, please respond with a JSON for a function call with its proper arguments that best answers the given prompt.

Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}. Do not use variables.

{{ range $.Tools }}
{{- . }}
{{ end }}
Question: {{ .Content }}<|eot_id|>
{{- else }}

{{ .Content }}<|eot_id|>
{{- end }}{{ if $last }}<|start_header_id|>assistant<|end_header_id|>

{{ end }}
{{- else if eq .Role "assistant" }}<|start_header_id|>assistant<|end_header_id|>
{{- if .ToolCalls }}
{{ range .ToolCalls }}
{"name": "{{ .Function.Name }}", "parameters": {{ .Function.Arguments }}}{{ end }}
{{- else }}

{{ .Content }}
{{- end }}{{ if not $last }}<|eot_id|>{{ end }}
{{- else if eq .Role "tool" }}<|start_header_id|>ipython<|end_header_id|>

{{ .Content }}<|eot_id|>{{ if $last }}<|start_header_id|>assistant<|end_header_id|>

{{ end }}
{{- end }}
{{- end }}
"""

FROM [gguf 파일 경로]
TEMPLATE """올라마 template 내용 그대로 복붙"""

이 3개항목(상황에 따라 params가 없을 수도 있음)을 채워서 Modelfile를 만들자

이제 다 했다 등록은 아래와 같이 수행한다.

ollama create [모델이름] -f [Modelfile 경로]

이제 USB에 Ollama의 모델을 들고다니면서 이걸 ollama에 등록할 수 있는 방안을 정리한 것 같다.

profile
자율차 공부중

0개의 댓글