File size: 2,433 Bytes
d54e6a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b834258
 
 
 
c2280e3
 
d234e06
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
"""
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๋‹ค์šด๋กœ๋“œ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.")