Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -61,41 +61,39 @@ def convert_to_gradio_markdown(text):
|
|
| 61 |
|
| 62 |
return text
|
| 63 |
|
| 64 |
-
# --- 3. MODELL LADEN (
|
| 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 |
-
|
| 77 |
device_map="auto",
|
| 78 |
-
#
|
|
|
|
| 79 |
trust_remote_code=True,
|
| 80 |
)
|
| 81 |
|
| 82 |
-
# Erstellt
|
| 83 |
-
|
| 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 |
-
#
|
| 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 ---
|