lily_fast_api / download_model.py
gbrabbit's picture
Fresh start for HF Spaces deployment
526927a
#!/usr/bin/env python3
"""
Docker ๋นŒ๋“œ ์‹œ Hugging Face ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์Šคํฌ๋ฆฝํŠธ
"""
import os
import logging
from transformers import AutoTokenizer, AutoModelForCausalLM
from pathlib import Path
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def download_model():
"""Hugging Face Hub์—์„œ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ"""
model_name = "gbrabbit/lily-math-model"
cache_dir = "/app/cache/transformers"
logger.info(f"๐Ÿ“ฅ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์‹œ์ž‘: {model_name}")
try:
# ์บ์‹œ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
Path(cache_dir).mkdir(parents=True, exist_ok=True)
# ํ† ํฌ๋‚˜์ด์ € ๋‹ค์šด๋กœ๋“œ
logger.info("๐Ÿ”ค ํ† ํฌ๋‚˜์ด์ € ๋‹ค์šด๋กœ๋“œ ์ค‘...")
tokenizer = AutoTokenizer.from_pretrained(
model_name,
trust_remote_code=True,
cache_dir=cache_dir
)
logger.info("โœ… ํ† ํฌ๋‚˜์ด์ € ๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ")
# ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ (๊ฐ€์ค‘์น˜๋งŒ)
logger.info("๐Ÿง  ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์ค‘...")
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True,
cache_dir=cache_dir,
torch_dtype="auto", # ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ
low_cpu_mem_usage=True
)
logger.info("โœ… ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ")
# ๋ฉ”๋ชจ๋ฆฌ ์ •๋ฆฌ
del model
del tokenizer
logger.info("๐ŸŽ‰ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์บ์‹œ ์™„๋ฃŒ")
except Exception as e:
logger.error(f"โŒ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์‹คํŒจ: {e}")
raise
if __name__ == "__main__":
download_model()