CoCoGames commited on
Commit
fceae9a
Β·
verified Β·
1 Parent(s): 10d3da5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -19
app.py CHANGED
@@ -61,41 +61,39 @@ def convert_to_gradio_markdown(text):
61
 
62
  return text
63
 
64
- # --- 3. MODELL LADEN (SPEICHEROPTIMIERT) ---
65
- # FΓΌhren Sie den Ladevorgang nur einmal durch
66
  try:
67
- print(f"--- Starte Ladevorgang fΓΌr {MODEL_NAME} ---")
 
 
 
 
 
 
 
 
 
68
 
69
  tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
70
 
71
- # LΓ€dt das Modell:
72
- # - device_map="auto": Essentiell, um das Modell automatisch auf den begrenzten RAM aufzuteilen.
73
- # - torch_dtype=DTYPE: Erzwingt das Laden mit halber PrΓ€zision (Float16) zur Speichereinsparung.
74
  model = AutoModelForCausalLM.from_pretrained(
75
  MODEL_NAME,
76
- torch_dtype=DTYPE,
77
  device_map="auto",
78
- # Falls Ihr Modell spezifische Konfigurationsdateien enthΓ€lt
 
79
  trust_remote_code=True,
80
  )
81
 
82
- # Erstellt eine Pipeline fΓΌr die Textgenerierung
83
- coco_pipe = pipeline(
84
- "text-generation",
85
- model=model,
86
- tokenizer=tokenizer,
87
- max_new_tokens=256,
88
- model_kwargs={"torch_dtype": DTYPE, "device_map": "auto"}
89
- )
90
 
91
  print(f"Modell '{MODEL_NAME}' erfolgreich geladen und Pipeline erstellt.")
92
 
93
  except Exception as e:
94
- # DIESER BLOCK WIRD BEI SPEICHERFEHLERN AUSGELΓ–ST
95
  print(f"FATALER FEHLER beim Laden des Modells {MODEL_NAME}: {e}")
96
  print("--- Verwende GPT-2 als langsamen Platzhalter ---")
97
-
98
- # Sicherstellung eines funktionierenden Platzhalters
99
  coco_pipe = pipeline("text-generation", model="gpt2")
100
 
101
  # --- 4. CHAT-LOGIK ---
 
61
 
62
  return text
63
 
64
+ # --- 3. MODELL LADEN (MAXIMALE SPEICHEROPTIMIERUNG) ---
 
65
  try:
66
+ print(f"--- Starte Ladevorgang fΓΌr {MODEL_NAME} mit maximaler Optimierung ---")
67
+
68
+ # Konfiguration fΓΌr 4-Bit Quantisierung
69
+ bnb_config = BitsAndBytesConfig(
70
+ load_in_4bit=True,
71
+ bnb_4bit_quant_type="nf4",
72
+ # Auf CPU ignorieren diese Parameter oft, aber sie helfen,
73
+ # das Laden explizit in den minimalen Speicherzustand zu versetzen
74
+ bnb_4bit_compute_dtype=DTYPE
75
+ )
76
 
77
  tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
78
 
 
 
 
79
  model = AutoModelForCausalLM.from_pretrained(
80
  MODEL_NAME,
81
+ quantization_config=bnb_config, # Versucht, es als 4-Bit zu laden
82
  device_map="auto",
83
+ # FΓΌgen Sie 'low_cpu_mem_usage=True' hinzu, um den CPU-Speicherverbrauch zu optimieren
84
+ low_cpu_mem_usage=True,
85
  trust_remote_code=True,
86
  )
87
 
88
+ # Erstellt die Pipeline... (Rest des Codes wie gehabt)
89
+ # ...
 
 
 
 
 
 
90
 
91
  print(f"Modell '{MODEL_NAME}' erfolgreich geladen und Pipeline erstellt.")
92
 
93
  except Exception as e:
94
+ # ... (Rest des except-Blocks wie gehabt)
95
  print(f"FATALER FEHLER beim Laden des Modells {MODEL_NAME}: {e}")
96
  print("--- Verwende GPT-2 als langsamen Platzhalter ---")
 
 
97
  coco_pipe = pipeline("text-generation", model="gpt2")
98
 
99
  # --- 4. CHAT-LOGIK ---