tori29umai commited on
Commit
da6a6be
1 Parent(s): d013ae4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -12
app.py CHANGED
@@ -1,5 +1,4 @@
1
  import os
2
- os.environ['CUDA_VISIBLE_DEVICES'] = ''
3
  import spaces
4
  import sys
5
  import time
@@ -304,23 +303,31 @@ class CharacterMaker:
304
  self.chat_history = []
305
  self.settings = None
306
  self.model_loaded = threading.Event()
307
- self.current_model = None
308
  self.model_lock = threading.Lock()
309
  self.use_chat_format = False
310
 
311
  def load_model(self, model_type):
312
  with self.model_lock:
 
313
  model_path = os.path.join(MODEL_DIR, self.settings[f'DEFAULT_{model_type.upper()}_MODEL'])
314
  n_gpu_layers = self.settings[f'{model_type.lower()}_n_gpu_layers']
315
 
316
- # モデルが既にロードされていて設定も同じなら再ロードしない
317
- if self.llama and self.current_model == model_type:
318
- if (self.llama.model_path == model_path and
319
- self.llama.n_gpu_layers == n_gpu_layers):
320
- print(f"{model_type} モデルは既にロードされています。再ロードをスキップします。")
321
- return
 
 
 
 
 
 
 
322
 
323
- # ここで前のモデルをクリア
324
  if self.llama:
325
  del self.llama
326
  self.llama = None
@@ -328,15 +335,15 @@ class CharacterMaker:
328
  self.model_loaded.clear()
329
 
330
  try:
 
331
  self.llama = LlamaAdapter(model_path, params, n_gpu_layers)
332
  self.current_model = model_type
333
  self.model_loaded.set()
334
- print(f"{model_type} モデル {model_path} のロードが完了しました。(n_gpu_layers: {n_gpu_layers})")
335
  except Exception as e:
336
- print(f"{model_type} モデルのロード中にエラーが発生しました: {str(e)}")
337
  self.model_loaded.set()
338
 
339
-
340
  def generate_response(self, input_str):
341
  self.load_model('CHAT')
342
  if not self.model_loaded.wait(timeout=30) or not self.llama:
 
1
  import os
 
2
  import spaces
3
  import sys
4
  import time
 
303
  self.chat_history = []
304
  self.settings = None
305
  self.model_loaded = threading.Event()
306
+ self.current_model = None # 現在ロードされているモデルのタイプを記録
307
  self.model_lock = threading.Lock()
308
  self.use_chat_format = False
309
 
310
  def load_model(self, model_type):
311
  with self.model_lock:
312
+ # 新しいモデルの設定を取得
313
  model_path = os.path.join(MODEL_DIR, self.settings[f'DEFAULT_{model_type.upper()}_MODEL'])
314
  n_gpu_layers = self.settings[f'{model_type.lower()}_n_gpu_layers']
315
 
316
+ # 現在のモデルが既にロードされているか、同じ設定であるかチェック
317
+ if (self.llama and self.current_model != model_type and
318
+ self.llama.model_path == model_path and
319
+ self.llama.n_gpu_layers == n_gpu_layers):
320
+ print(f"同じ設定のため {self.current_model} から {model_type} へのモデルタイプ変更を行いますが、再ロードはしません。")
321
+ self.current_model = model_type
322
+ return # 設定が同じ場合は再ロードをスキップ
323
+
324
+ if (self.llama and
325
+ self.llama.model_path == model_path and
326
+ self.llama.n_gpu_layers == n_gpu_layers):
327
+ print(f"{model_type} モデルは既に同じ設定でロードされています。")
328
+ return # 設定が同じ場合は再ロードをスキップ
329
 
330
+ # モデルの初期化
331
  if self.llama:
332
  del self.llama
333
  self.llama = None
 
335
  self.model_loaded.clear()
336
 
337
  try:
338
+ # 新しいモデルをロード
339
  self.llama = LlamaAdapter(model_path, params, n_gpu_layers)
340
  self.current_model = model_type
341
  self.model_loaded.set()
342
+ print(f"{model_type} モデルをロードしました。モデルパス: {model_path}、GPUレイヤー数: {n_gpu_layers}")
343
  except Exception as e:
344
+ print(f"{model_type} モデルのロード中にエラーが発生しました: {e}")
345
  self.model_loaded.set()
346
 
 
347
  def generate_response(self, input_str):
348
  self.load_model('CHAT')
349
  if not self.model_loaded.wait(timeout=30) or not self.llama: