[Ollama] Ollama hub 에 튜닝한 모델 push 하기 (Ollama push)

로컬에서 오픈소스 모델을 사용하기 위해 종종 다양한 LLM 서빙 툴들을 사용합니다.

가장 대중적이면서 접근하기 쉬운 것으로 Ollama가 있죠.

 

Ollama 에서는 Docker와 같이 model 을 pull 하여 Ollama hub에 있는 모델을 로컬 환경에 다운받아 올 수 있습니다.

 

이 것이 아니라면 직접 로컬 환경에서 gguf 파일과 Modelfile을 이용하여 Ollama list에 업데이트 해줄 수 있습니다. (로컬 환경 제한적)

 

그럼 내가 학습하고 경량화 한 모델을 Push 하려면 어떻게 해야할까요?

 

 

Ollama 사이트 회원 가입

https://ollama.com/

 

Ollama

Get up and running with large language models.

ollama.com

우선 Ollama 사이트에 접속하여 회원가입을 진행합니다.

(git / docker와 같이 레포지토리를 생성하기 위함)

 

Ollama Menu

 

 

Create New Model

 

회원 가입을 완료하였으면 위의 My Models를 클릭하여 아래 페이지에 진입합니다.

 

My models

 

New 를 클릭하여 모델 레포지토리를 생성합니다.

 

Create a New model

 

저는 리턴제로에서 학습한 gemma2-9B-ko 모델을 gguf 파일로 양자화 하여 가지고 있었기 때문에 이를 기준으로 작성하였습니다.

 

위 그림처럼, 모델 이름을 정하고 summary 를 지정할 수 있습니다. Public으로 올릴 것인지, Private으로 올릴 것인지 지정 후 create model 버튼을 클릭합니다. 

 

Created Custom Ollama Model

 

 

그럼 위와 같이 모델 레포지토리가 생성된 것을 확인할 수 있습니다.

 

 

Ollama Keys Setting

포스팅을 작성하게 된 이유인데, Ollama API를 세팅하는 방법이 불친절해서 내용에 대해 알아보고자 합니다.

 

우선 다시 회원 메뉴를 클릭해 Settings 메뉴에 진입합니다.

Ollama keys

 

진입 후 프로필을 확인하면 Ollama keys 라는 항목이 존재하는 것을 확인할 수 있습니다.

 

ollama keys

 

이를 확인하면 os 별로 ollama key 가 어느 위치에 존재하는지 (로컬 환경에서)

경로가 나와있습니다.

 

linux 기준으로 한번 볼게요.

 

뒤의 id_ed25519.pub은 특정 계정에만 해당하는 key 값이 아닌 Ollama를 설치하고 나면 해당 경로에 위 파일이 생성됩니다.

 

아래 명령어를 입력합니다.

cat /usr/share/ollama/.ollama/id_ed25519.pub

 

 

cat 명령어를 이용하여 파일을 열어보면 ssh-ed25519~... 로 시작하는 ssh 키를 얻을 수 있습니다.

(터미널에서 바로 생성됩니다.)

 

add ollama public key

 

 

Add Ollama Public Key를 클릭하고 해당 빈칸에 위에서 얻은 ssh-ed25519~... 키를 입력해주면 내 Ollama hub의 레포지토리와 로컬 환경이 연결됩니다.

 

 

Ollama Push

Ollama hub에서 허브의 모델을 로컬환경으로 가져올 땐 pull 명령어를 사용했습니다.

반대로 허브에 모델을 올릴때는 push 명령어를 사용합니다.

 

push 방법은 모델 레포지토리를 웹페이지에서 생성했을 때도 가이드가 자세히 나오지만,

로컬 환경에서 Modelfile 과 gguf 파일을 이용하여 모델을 구축하는 방법과 같습니다. 이후에 해당 레포지토리로 push 해주기만 하면 됩니다.

 

Modelfile을 작성하고,

 

ollama create -f Modelfile .

 

(Modelfile 이하는 gguf 파일이 존재하는 경로입니다.)

 

ollama push [레포이름]/[모델이름]

 

push 명령어를 입력해주면

 

아래와 같이 모델이 잘 업로드 되며 해당 gguf 파일과 Modelfile이 없어도 로컬 환경에서 pull 받을 수 있게 됩니다.

 

Ollama hub에 모델이 잘 올라간 모습