Spaces:
Running
on
Zero
Running
on
Zero
Add top_p and top_k sliders
Browse files
app.py
CHANGED
@@ -179,11 +179,11 @@ def filter_logits(logits, top_k=0, top_p=0.0):
|
|
179 |
return logits
|
180 |
|
181 |
@spaces.GPU
|
182 |
-
def generate_diffusion_text(input_ids):
|
183 |
with torch.no_grad():
|
184 |
input_tensor = torch.tensor([input_ids], dtype=torch.long).to(model.device)
|
185 |
logits = model(input_ids=input_tensor)["logits"]
|
186 |
-
logits = filter_logits(logits, top_k=
|
187 |
logits = logits.clamp(min=-1e8, max=1e4)
|
188 |
probs = torch.nn.functional.softmax(logits, dim=-1)[0]
|
189 |
probs = torch.clamp(probs, min=1e-8, max=1.0)
|
@@ -196,7 +196,9 @@ def generate_diffusion_text(input_ids):
|
|
196 |
return sampled, conf
|
197 |
|
198 |
# --- Inference Wrapper ---
|
199 |
-
def diffusion_chat(question, max_it, pause_length, sharpness,
|
|
|
|
|
200 |
placeholder = "What do you know about the city of Amsterdam?"
|
201 |
if question.strip() == "":
|
202 |
question = placeholder
|
@@ -229,7 +231,7 @@ def diffusion_chat(question, max_it, pause_length, sharpness, clustering, noise_
|
|
229 |
print('Generating output')
|
230 |
|
231 |
# Model step
|
232 |
-
generated_tokens, confidences = generate_diffusion_text(current_tokens)
|
233 |
|
234 |
elapsed = time.time() - generation_start
|
235 |
remaining = pause_length - elapsed
|
@@ -322,14 +324,15 @@ demo = gr.Interface(
|
|
322 |
fn=diffusion_chat,
|
323 |
inputs=[
|
324 |
gr.Textbox(label="User Question", lines=2, placeholder="What do you know about the city of Amsterdam?"),
|
325 |
-
gr.Slider(1, 512, value=64, step=1, label="↑ = more iterations"),
|
326 |
-
gr.Slider(0.01, 5, value=0.01, step=0.01, label="↑ = longer pause
|
327 |
-
gr.Slider(1.0, 20.0, value=1.0, step=0.5, label="↓ = more
|
328 |
-
gr.Slider(0.0, 1.0, value=0.0, step=0.05, label="↑ = more clustered noising
|
329 |
-
gr.Slider(0.0, 1.0, value=0.2, step=0.05, label="↑ = more noise
|
330 |
gr.Checkbox(value=False, label="Use confidence-guided noising"),
|
331 |
-
gr.Slider(0.01, 1.0, value=0.01, step=0.01, label="↓ = more confidence guidance
|
332 |
-
|
|
|
333 |
],
|
334 |
outputs=[gr.HTML(label="Diffusion Output")],
|
335 |
title="Diffusion Language Model Chat",
|
|
|
179 |
return logits
|
180 |
|
181 |
@spaces.GPU
|
182 |
+
def generate_diffusion_text(input_ids, top_p, top_k):
|
183 |
with torch.no_grad():
|
184 |
input_tensor = torch.tensor([input_ids], dtype=torch.long).to(model.device)
|
185 |
logits = model(input_ids=input_tensor)["logits"]
|
186 |
+
logits = filter_logits(logits, top_k=top_p, top_p=top_k)
|
187 |
logits = logits.clamp(min=-1e8, max=1e4)
|
188 |
probs = torch.nn.functional.softmax(logits, dim=-1)[0]
|
189 |
probs = torch.clamp(probs, min=1e-8, max=1.0)
|
|
|
196 |
return sampled, conf
|
197 |
|
198 |
# --- Inference Wrapper ---
|
199 |
+
def diffusion_chat(question, max_it, pause_length, sharpness,
|
200 |
+
clustering, noise_start, use_confidence_noising,
|
201 |
+
noise_clipping, top_p, top_k):
|
202 |
placeholder = "What do you know about the city of Amsterdam?"
|
203 |
if question.strip() == "":
|
204 |
question = placeholder
|
|
|
231 |
print('Generating output')
|
232 |
|
233 |
# Model step
|
234 |
+
generated_tokens, confidences = generate_diffusion_text(current_tokens, top_p, top_k)
|
235 |
|
236 |
elapsed = time.time() - generation_start
|
237 |
remaining = pause_length - elapsed
|
|
|
324 |
fn=diffusion_chat,
|
325 |
inputs=[
|
326 |
gr.Textbox(label="User Question", lines=2, placeholder="What do you know about the city of Amsterdam?"),
|
327 |
+
gr.Slider(1, 512, value=64, step=1, label="Number of iterarions: ↑ = more iterations"),
|
328 |
+
gr.Slider(0.01, 5, value=0.01, step=0.01, label="Pause between iteration ↑ = longer pause"),
|
329 |
+
gr.Slider(1.0, 20.0, value=1.0, step=0.5, label="Noise decay sharpness: ↓ = more noise in later iterations"),
|
330 |
+
gr.Slider(0.0, 1.0, value=0.0, step=0.05, label="Clustering: ↑ = more clustered noising"),
|
331 |
+
gr.Slider(0.0, 1.0, value=0.2, step=0.05, label="Noise start fraction: ↑ = more noise"),
|
332 |
gr.Checkbox(value=False, label="Use confidence-guided noising"),
|
333 |
+
gr.Slider(0.01, 1.0, value=0.01, step=0.01, label="Noise clipping: ↓ = more confidence guidance"),
|
334 |
+
gr.Slider(1, 1000, value = 100, step = 1, label = "Top-p: ↑ = more random answers"]),
|
335 |
+
gr.Slider(0.0, 1.0, value = 0.9, step = 0.01, label = "Top-k: ↑ = more random answers"])
|
336 |
],
|
337 |
outputs=[gr.HTML(label="Diffusion Output")],
|
338 |
title="Diffusion Language Model Chat",
|