본문 바로가기
AI/NLP

[LLM] LLM 모델 로컬 경로에 저장하기 + git LFS

by didi0di 2023. 10. 19.
728x90

KoR-Orca-Platypus-13B

 

현재 Ko LLM 리더보드에서 1위중인 KoR-Orca-Platypus-13B 모델 

OpenOrca-KO dataset을 활용하여 LLaMa2를 fine-tunning한 모델이라고 한다.

- huggingface : https://huggingface.co/kyujinpy/KoR-Orca-Platypus-13B

- github : https://github.com/Marker-Inc-Korea/Korean-OpenOrca

 

GitHub - Marker-Inc-Korea/Korean-OpenOrca: OpenOrca-KO dataset을 활용하여 llama2를 fine-tuning한 Korean-OpenOrca

OpenOrca-KO dataset을 활용하여 llama2를 fine-tuning한 Korean-OpenOrca - GitHub - Marker-Inc-Korea/Korean-OpenOrca: OpenOrca-KO dataset을 활용하여 llama2를 fine-tuning한 Korean-OpenOrca

github.com

 

허깅페이스에 올라와있는 이 LLM 모델을 다운로드 받아서 돌려보려고 했는데,

폐쇄망 환경이기 때문에 모델 파일을 USB에 담아서 반입을 해야한다. 

 

허깅페이스에 올라와 있는 파일들.

 

처음엔 내 맥북에 저장한 뒤에 USB로 옮기려고 했으나...

모델 사이즈가 커서 계속 메모리 부족으로 다운 실패. 모델 파일만 25G가 넘는다...

32G짜리 USB에 바로 저장해서 옮기려고, USB 절대경로를 설정해줘서 다운로드를 시도해보았다.

 

huggingface에서 모델 파일 다운로드

 

huggingface에서 모델 파일을 받는 방법은 2가지가 있다.

 

1) transformers 라이브러리 이용
2) git clone [huggingface model url] 

 

1) transformers 라이브러리 이용

 

아래 코드를 실행하면 tokenizer와 model을 다운로드 받는다.

# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("kyujinpy/KoR-Orca-Platypus-13B")
model = AutoModelForCausalLM.from_pretrained("kyujinpy/KoR-Orca-Platypus-13B")

 

이렇게 돌리면 자동으로  ~/.cache/huggingface/transformers  경로에 저장되는데, 

경로를 바꾸고 싶다면 cashe_dir를 원하는 경로로 지정해주면 된다.

 

from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("kyujinpy/KoR-Orca-Platypus-13B", cache_dir='원하는 경로')
model = AutoModelForCausalLM.from_pretrained("kyujinpy/KoR-Orca-Platypus-13B", cache_dir='원하는 경로')

 

2) git clone [huggingface model url] 

 

git clone을 통해서도 간단하게 모델을 받아올 수 있다.

 

git LFS (Large File System)

 

우선 LLM 모델 파일 (.bin파일) 은 기본적으로 25G 이상 되는 대용량 파일이기 때문에, 

git lfs를 이용해 파일을 받아와야 한다.

사용법은 아주 간단하다.

 

cmd에서 아래 코드를 실행해 설치하고 나면 git clone이나 push 할 때 자동으로 lfs가 적용된다.

 

git lfs install
>> Git LFS initialized.

 

그 다음 git clone을 이용해 가져오고 싶은 허깅페이스 모델 url주소를 입력하면 된다. 

이때 모델 파일이 저장되는 경로는 현재 경로이다.

 

git clone https://huggingface.co/kyujinpy/KoR-Orca-Platypus-13B

 

저장 경로 지정하기 (USB 절대 경로로 저장)

 

원하는 경로에 지정하고 싶다면, url 옆에 경로를 추가하면 된다.

 

나는 USB에 바로 저장을 하고 싶었는데

맥os에서 USB나 외장하드 같은 장치는 /Volumes 아래에 있다.

 

USB 경로 확인

ESD-USB 가 바로 내가 저장하려는 USB.

이제 USB에 본인이 저장하고 싶은 폴더(나의 경우는 LLM) 를 만들고, 해당 위치에 저장하도록 하려면 아래 코드를 실행하면 된다.

git clone https://huggingface.co/kyujinpy/KoR-Orca-Platypus-13B /Volumes/ESD-USB/LLM # USB 경로

 

 

 

지정한 USB 경로로 잘 저장이 되고 있는 모습!!

모델 사이즈가 너무 커서 오래 걸린다...

 

만약 git lfs를 썻는데도 대용량 파일 저장이 잘 안된다면

허깅페이스 레퍼지토리에 있는 모델 파일을 직접 다운로드 해도 된다.

[Files and versions] 탭에서 다운로드 화살표를 누르면 파일을 다운로드 할 수 있다.

 

 

 

이제 다운로드한 모델을 inference 해보자!

 

[다음글] : [LLM] Ko-LLM 리뷰, LLaMA2 기반 한국어 파인튜닝 모델 인퍼런스

 

[LLM] Ko-LLM 리뷰, LLaMA2 기반 한국어 파인튜닝 모델 인퍼런스

Ko-LLM GPT3부터 Llama2에 이르기까지 대규모 언어모델(LLM)의 놀라운 발전은 모든 이의 이목을 끌고 있습니다. 그러나 대규모 말뭉치를 사전학습하는 LLM의 특성상 학습 데이터 중 대다수는 영어로 구

didi-universe.tistory.com

 

728x90

댓글