cutechicken commited on
Commit
0b984ea
·
verified ·
1 Parent(s): 0cdbe8f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +2 -56
app.py CHANGED
@@ -7,76 +7,24 @@ import json
7
  from datetime import datetime
8
  import torch
9
  from transformers import AutoModelForCausalLM, AutoTokenizer
10
- import shutil
11
 
12
  # 환경 변수 설정
13
  HF_TOKEN = os.getenv("HF_TOKEN")
14
  MODEL_ID = "CohereForAI/c4ai-command-r7b-12-2024"
15
 
16
- # 사용자 홈 디렉토리 기반 경로 설정
17
- USER_HOME = os.path.expanduser("~")
18
- PERSISTENT_DIR = os.path.join(USER_HOME, "persistent_storage", "model_cache")
19
-
20
- # 스토리지 상태 확인
21
- def check_storage():
22
- try:
23
- total, used, free = shutil.disk_usage(USER_HOME)
24
- print(f"스토리지 상태:")
25
- print(f"총 용량: {total // (2**30)}GB")
26
- print(f"사용 중: {used // (2**30)}GB")
27
- print(f"남은 용량: {free // (2**30)}GB")
28
- except Exception as e:
29
- print(f"스토리지 확인 실패: {e}")
30
-
31
- # 디렉토리 생성
32
- try:
33
- os.makedirs(PERSISTENT_DIR, exist_ok=True)
34
- print(f"캐시 디렉토리 생성 완료: {PERSISTENT_DIR}")
35
- except Exception as e:
36
- print(f"캐시 디렉토리 생성 실패: {e}")
37
- # 임시 디렉토리로 폴백
38
- PERSISTENT_DIR = os.path.join("/tmp", "model_cache")
39
- os.makedirs(PERSISTENT_DIR, exist_ok=True)
40
- print(f"임시 캐시 디렉토리 사용: {PERSISTENT_DIR}")
41
-
42
- # 환경 변수 설정
43
- os.environ["TRANSFORMERS_CACHE"] = os.path.join(PERSISTENT_DIR, "transformers_cache")
44
- os.environ["TORCH_HOME"] = os.path.join(PERSISTENT_DIR, "torch_cache")
45
- os.environ["HF_HOME"] = os.path.join(PERSISTENT_DIR, "huggingface")
46
-
47
- # 각 캐시 디렉토리 생성
48
- for cache_dir in [
49
- os.environ["TRANSFORMERS_CACHE"],
50
- os.environ["TORCH_HOME"],
51
- os.environ["HF_HOME"]
52
- ]:
53
- try:
54
- os.makedirs(cache_dir, exist_ok=True)
55
- print(f"생성된 캐시 디렉토리: {cache_dir}")
56
- except Exception as e:
57
- print(f"캐시 디렉토리 생성 실패: {cache_dir} - {e}")
58
-
59
- # 시작 시 스토리지 상태 확인
60
- check_storage()
61
-
62
-
63
  class ModelManager:
64
  def __init__(self):
65
- self.cache_dir = os.path.join(PERSISTENT_DIR, "model_files")
66
- os.makedirs(self.cache_dir, exist_ok=True)
67
  self.model = None
68
  self.tokenizer = None
69
  self.setup_model()
70
 
71
  def setup_model(self):
72
  try:
73
- print(f"캐시 디렉토리 경로: {self.cache_dir}")
74
  print("토크나이저 로딩 시작...")
75
  self.tokenizer = AutoTokenizer.from_pretrained(
76
  MODEL_ID,
77
  token=HF_TOKEN,
78
- trust_remote_code=True,
79
- cache_dir=self.cache_dir
80
  )
81
  print("토크나이저 로딩 완료")
82
 
@@ -84,11 +32,9 @@ class ModelManager:
84
  self.model = AutoModelForCausalLM.from_pretrained(
85
  MODEL_ID,
86
  token=HF_TOKEN,
87
- torch_dtype=torch.float16,
88
  device_map="auto",
89
  trust_remote_code=True,
90
- low_cpu_mem_usage=True,
91
- cache_dir=self.cache_dir
92
  )
93
  print("모델 로딩 완료")
94
  except Exception as e:
 
7
  from datetime import datetime
8
  import torch
9
  from transformers import AutoModelForCausalLM, AutoTokenizer
 
10
 
11
  # 환경 변수 설정
12
  HF_TOKEN = os.getenv("HF_TOKEN")
13
  MODEL_ID = "CohereForAI/c4ai-command-r7b-12-2024"
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  class ModelManager:
16
  def __init__(self):
 
 
17
  self.model = None
18
  self.tokenizer = None
19
  self.setup_model()
20
 
21
  def setup_model(self):
22
  try:
 
23
  print("토크나이저 로딩 시작...")
24
  self.tokenizer = AutoTokenizer.from_pretrained(
25
  MODEL_ID,
26
  token=HF_TOKEN,
27
+ trust_remote_code=True
 
28
  )
29
  print("토크나이저 로딩 완료")
30
 
 
32
  self.model = AutoModelForCausalLM.from_pretrained(
33
  MODEL_ID,
34
  token=HF_TOKEN,
 
35
  device_map="auto",
36
  trust_remote_code=True,
37
+ torch_dtype=torch.float16
 
38
  )
39
  print("모델 로딩 완료")
40
  except Exception as e: