본문 바로가기

Tools/Python

[python] Huggingface 모델 다운로드 방법 (API 다운못받는 환경에서 SSL 오류날 때 사용)

 

 

 

윈도우 환경에서 Hugging Face 모델을

전체 폴더 단위로 한 번에 다운로드하고 싶다면 다음 3가지 방법 중 하나를 선택

 

1. snapshot_download() (파이썬에서 전체 다운로드) – 추천! (보안이슈 有)

 ((윈도우에서도 가장 간편하고 확실한 방법))

 

① 먼저 설치

pip install huggingface_hub

② 파이썬 코드 실행

from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="mistralai/Mistral-7B-Instruct",  # 원하는 모델 이름
    local_dir="C:/Users/내이름/Downloads/mistral_model"  # 원하는 저장 경로
)

⚠️ 인증이 필요한 모델이라면, huggingface에 로그인하고 토큰 발급 받아서 환경변수로 설정하거나 huggingface-cli login 실행!

 

 

 


 

 

2. Git + Git LFS로 전체 모델 클론 (터미널에서) (보안이슈 無)

((SSL 우회 불가 시 대체 수단))

① Git + Git LFS 설치 

git lfs install

② 명령어로 클론

git clone https://huggingface.co/mistralai/Mistral-7B-Instruct
cd Mistral-7B-Instruct
git lfs pull
✅ 이렇게 하면 모델 구조와 가중치까지 다 다운받아짐.

 

 

③ transformers로 불러와 모델 사용

위와 같은 과정을 거치면 현재 디렉토리(예: C:\Users\내이름\모델명) 안에 다음 파일들이 생긴다.  

로컬에 모델이 잘 받아진 것. (나는 llama-3모델을 다운받았다)

 

 

 

이제 transformers 라이브러리로 이 폴더를 로컬 모델 경로처럼 지정하여 사용하면 된다.

from transformers import AutoTokenizer, AutoModelForCausalLM

model_path = "C:/Users/내이름/Mistral-7B-Instruct"  # 클론한 폴더 경로

tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path)

input_text = "Hello, what is the meaning of life?"
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=50)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))
❗ model_path는 절대경로 또는 상대경로 모두 가능
모델이 크면 RAM 16GB 이상, GPU 환경 권장

 

 

3. Hugging Face CLI 활용 (토큰 필요) 

① 설치

pip install huggingface_hub

② 로그인

huggingface-cli login  # 웹에서 토큰 복사해 붙여넣기

③ 전체 클론

huggingface-cli repo clone mistralai/Mistral-7B-Instruct --type model

 

내부적으로 git-lfs를 써서 똑같이 파일 다 가져오는 방법

 

 

❗ 추가 팁: 인증 문제 / 403 오류 날 때

  1. Hugging Face에서 해당 모델이 비공개거나 조건부 액세스일 경우
    • 토큰 로그인 필요
    • 또는 사용 승인 요청 버튼(웹페이지)에 클릭해야 다운 가능
  2. Git LFS 오류 날 경우
    • git lfs install을 꼭 먼저 실행하고
    • Git Bash에서 명령어 실행하는 걸 추천

 

[ 요약표 ]

방법 실행 위치 윈도우 여부
snapshot_download() Python 가장 간단, 정확 ✅ 매우 추천
Git + Git LFS Git Bash or CMD 오픈소스 다운에 적합
huggingface-cli CMD or 터미널 Hugging Face 전용 툴

 

 

 

Q 허깅페이스 모델을 로컬에 다운받아 실행할 경우, API를 사용하는 것과 비교해 메모리 사용량의 차이?

 

로컬 실행 vs. Hugging Face API 사용 – 메모리 사용 비교

항목 로컬 실행 Hugging Face Inference API
메모리 사용 (RAM/VRAM) 많이 사용함 (모델 전체 로딩) 거의 사용 안 함 (API 호출만)
속도 ✅ 빠를 수 있음 (로컬 GPU 있을 경우) ❌ 느릴 수 있음 (네트워크 지연)
비용 ❌ GPU 자원 필요 (비용 발생 가능) ✅ 일정 사용량까지 무료
유연성 ✅ 프롬프트 구조, 토큰 수 등 자유롭게 설정 가능 ❌ 제한 있음 (timeout, max tokens 등)
사용 예 대용량 배치 처리, 커스터마이징 필요 테스트, 소규모 응답 생성, 비용 아끼고 싶을 때

 

요약

  • gemma-7B, llama-3-8B, mistral-7B 같은 모델을 로컬에서 실행하면 최소 12~16GB VRAM 이상 필요
  • 반면 API는 네트워크를 통해 결과만 받아오기 때문에 클라이언트 PC의 메모리는 거의 쓰지 않음.
  • 메모리를 아끼고 싶으면 → API 사용이 유리
  • 속도와 유연성이 중요하거나, 인터넷 없이 동작해야 한다면 → 로컬 실행