""" EXAONE-3.0-7.8B-Instruct 모델을 Hugging Face에서 다운로드하고 Ollama에서 사용할 수 있도록 준비하는 스크립트 """ import os from huggingface_hub import snapshot_download, login HF_TOKEN = "YOUR_HUGGINGFACE_TOKEN_HERE" MODEL_NAME = "LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct" def download_model(): """Hugging Face에서 모델 다운로드""" print("=" * 60) print("EXAONE-3.0-7.8B-Instruct 모델 다운로드") print("=" * 60) # Hugging Face 로그인 try: login(token=HF_TOKEN) print("[OK] Hugging Face 로그인 성공") except Exception as e: print(f"[ERROR] Hugging Face 로그인 실패: {e}") return False # 모델 다운로드 try: print(f"\n모델 다운로드 시작: {MODEL_NAME}") print("주의: 모델 크기가 약 15GB이므로 시간이 걸릴 수 있습니다...") download_path = snapshot_download( repo_id=MODEL_NAME, token=HF_TOKEN, local_dir="./models/EXAONE-3.0-7.8B-Instruct", local_dir_use_symlinks=False ) print(f"\n[OK] 모델 다운로드 완료!") print(f"저장 위치: {download_path}") return True except Exception as e: print(f"[ERROR] 모델 다운로드 실패: {e}") return False if __name__ == "__main__": import sys print("\n이 스크립트는 EXAONE 모델을 Hugging Face에서 다운로드합니다.") print("다운로드된 모델은 Ollama에서 직접 사용할 수 없으며,") print("GGUF 형식으로 변환하는 추가 작업이 필요합니다.") print("\n참고: Ollama는 일반적으로 GGUF 형식의 모델만 지원합니다.") response = input("\n계속하시겠습니까? (y/n): ") if response.lower() != 'y': print("다운로드를 취소했습니다.") sys.exit(0) success = download_model() if success: print("\n" + "=" * 60) print("다운로드 완료!") print("=" * 60) print("\n다음 단계:") print("1. llama.cpp를 사용하여 GGUF 형식으로 변환") print("2. 변환된 모델을 Ollama에 추가") print("\n자세한 내용은 EXAONE_설치_가이드.md를 참고하세요.") print("=" * 60) else: print("\n다운로드에 실패했습니다.")