Spaces:
Running on Zero
Running on Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -103,14 +103,17 @@ def load_new_model(model_id):
|
|
| 103 |
def run_inference(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample, gpu):
|
| 104 |
if gpu:
|
| 105 |
yield from run_inference_gpu(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample)
|
| 106 |
-
|
|
|
|
| 107 |
|
| 108 |
|
| 109 |
@spaces.GPU
|
| 110 |
def run_inference_gpu(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample):
|
| 111 |
-
|
|
|
|
|
|
|
| 112 |
|
| 113 |
-
def run_inference_raw(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample):
|
| 114 |
"""Generates text via streaming generator."""
|
| 115 |
if model_manager.model is None or model_manager.tokenizer is None:
|
| 116 |
yield "Please load a model first.", "Model not loaded"
|
|
@@ -140,6 +143,12 @@ def run_inference_raw(user_prompt, max_tokens, temperature, top_k, top_p, rep_pe
|
|
| 140 |
# Tokenize input
|
| 141 |
inputs = tokenizer([prompt_to_encode], return_tensors="pt")
|
| 142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 143 |
# Set up the streamer
|
| 144 |
streamer = TextIteratorStreamer(tokenizer, timeout=60.0, skip_prompt=True, skip_special_tokens=skip_special)
|
| 145 |
|
|
@@ -199,7 +208,8 @@ def run_inference_raw(user_prompt, max_tokens, temperature, top_k, top_p, rep_pe
|
|
| 199 |
display_text = display_text.replace("<|begin_of_solution|>", "✅ Final Answer:\n\n")
|
| 200 |
display_text = display_text.replace("<|end_of_solution|>", "")
|
| 201 |
|
| 202 |
-
|
|
|
|
| 203 |
|
| 204 |
def clean_cache():
|
| 205 |
if os.path.exists(HF_CACHE_DIR):
|
|
|
|
| 103 |
def run_inference(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample, gpu):
|
| 104 |
if gpu:
|
| 105 |
yield from run_inference_gpu(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample)
|
| 106 |
+
else:
|
| 107 |
+
yield from run_inference_raw(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample)
|
| 108 |
|
| 109 |
|
| 110 |
@spaces.GPU
|
| 111 |
def run_inference_gpu(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample):
|
| 112 |
+
if model_manager.model is not None:
|
| 113 |
+
model_manager.model = model_manager.model.to("cuda")
|
| 114 |
+
yield from run_inference_raw(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample, use_cuda=True)
|
| 115 |
|
| 116 |
+
def run_inference_raw(user_prompt, max_tokens, temperature, top_k, top_p, rep_penalty, ngram_size, do_sample, use_cuda=False):
|
| 117 |
"""Generates text via streaming generator."""
|
| 118 |
if model_manager.model is None or model_manager.tokenizer is None:
|
| 119 |
yield "Please load a model first.", "Model not loaded"
|
|
|
|
| 143 |
# Tokenize input
|
| 144 |
inputs = tokenizer([prompt_to_encode], return_tensors="pt")
|
| 145 |
|
| 146 |
+
if use_cuda:
|
| 147 |
+
inputs = {k: v.to("cuda") for k, v in inputs.items()}
|
| 148 |
+
else:
|
| 149 |
+
model = model.to("cpu")
|
| 150 |
+
inputs = {k: v.to("cpu") for k, v in inputs.items()}
|
| 151 |
+
|
| 152 |
# Set up the streamer
|
| 153 |
streamer = TextIteratorStreamer(tokenizer, timeout=60.0, skip_prompt=True, skip_special_tokens=skip_special)
|
| 154 |
|
|
|
|
| 208 |
display_text = display_text.replace("<|begin_of_solution|>", "✅ Final Answer:\n\n")
|
| 209 |
display_text = display_text.replace("<|end_of_solution|>", "")
|
| 210 |
|
| 211 |
+
device_label = "CUDA" if use_cuda else "CPU"
|
| 212 |
+
yield base_display + display_text, f"Speed: {tps:.2f} tokens/sec ({device_label})"
|
| 213 |
|
| 214 |
def clean_cache():
|
| 215 |
if os.path.exists(HF_CACHE_DIR):
|