Spaces:
Running
on
Zero
Running
on
Zero
File size: 17,700 Bytes
830eeaa 3738ef6 51a7d9e d8a8bf1 51a7d9e edb9e8a 51a7d9e aeec717 51a7d9e aeec717 3738ef6 8187e3d 3738ef6 51a7d9e 3738ef6 51a7d9e 3738ef6 d8a8bf1 3738ef6 3bc2ef0 3738ef6 03e8281 3738ef6 bccdc56 d8a8bf1 3738ef6 659ca36 85dc104 3738ef6 5d90a5f 3738ef6 51a7d9e 3738ef6 51a7d9e 3738ef6 99a7a45 3738ef6 030c23d 3738ef6 edb9e8a 3738ef6 1c74333 3738ef6 659ca36 3738ef6 030c23d 51a7d9e 3738ef6 9a43acc 9eefdf9 3738ef6 51a7d9e 3738ef6 51a7d9e 3738ef6 bc05e4d 3738ef6 51a7d9e 3738ef6 51a7d9e 3738ef6 4bb6c46 51a7d9e 5d90a5f 3738ef6 51a7d9e 3738ef6 51a7d9e 3738ef6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 |
import subprocess
subprocess.run(
'pip install flash-attn --no-build-isolation',
env={'FLASH_ATTENTION_SKIP_CUDA_BUILD': "TRUE"},
shell=True
)
import os
import time
import spaces
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, TextIteratorStreamer
import gradio as gr
from threading import Thread
HF_TOKEN = os.environ.get("HF_TOKEN", None)
MODEL = "Daemontatox/R_Marco_polo"
TITLE = "<h1><center>Reason</center></h1>"
PLACEHOLDER = """
<center>
<p>Hi! Lets start thinking !!</p>
</center>
"""
CSS = """
.duplicate-button {
margin: auto !important;
color: white !important;
background: black !important;
border-radius: 100vh !important;
}
h3 {
text-align: center;
}
"""
device = "cuda" # for GPU usage or "cpu" for CPU usage
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type= "nf4")
tokenizer = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForCausalLM.from_pretrained(
MODEL,
torch_dtype=torch.float16,
device_map="auto",
attn_implementation="flash_attention_2",
quantization_config=quantization_config)
# Ensure `pad_token_id` is set
if tokenizer.pad_token_id is None:
tokenizer.pad_token_id = tokenizer.eos_token_id
@spaces.GPU()
def stream_chat(
message: str,
history: list,
system_prompt: str,
temperature: float = 0.8,
max_new_tokens: int = 128000,
top_p: float = 1.0,
top_k: int = 20,
penalty: float = 1.2,
):
print(f'message: {message}')
print(f'history: {history}')
conversation = [
{"role": "system", "content": system_prompt}
]
for prompt, answer in history:
conversation.extend([
{"role": "user", "content": prompt},
{"role": "assistant", "content": answer},
])
conversation.append({"role": "user", "content": message})
input_ids = tokenizer.apply_chat_template(conversation, add_generation_prompt=True, return_tensors="pt").to(model.device)
streamer = TextIteratorStreamer(tokenizer, timeout=60.0, skip_prompt=True, skip_special_tokens=True)
generate_kwargs = dict(
input_ids=input_ids,
max_new_tokens = max_new_tokens,
do_sample = False if temperature == 0 else True,
top_p = top_p,
top_k = top_k,
eos_token_id = tokenizer.eos_token_id,
pad_token_id = tokenizer.pad_token_id,
temperature = temperature,
repetition_penalty=penalty,
streamer=streamer,
)
with torch.no_grad():
thread = Thread(target=model.generate, kwargs=generate_kwargs)
thread.start()
buffer = ""
for new_text in streamer:
buffer += new_text
yield buffer
chatbot = gr.Chatbot(height=600, placeholder=PLACEHOLDER)
with gr.Blocks(css=CSS, theme="soft") as demo:
gr.HTML(TITLE)
gr.DuplicateButton(value="Duplicate Space for private use", elem_classes="duplicate-button")
gr.ChatInterface(
fn=stream_chat,
chatbot=chatbot,
fill_height=True,
additional_inputs_accordion=gr.Accordion(label="⚙️ Parameters", open=False, render=False),
additional_inputs=[
gr.Textbox(
value="""Let's engage in a highly structured Chain-of-Thought (CoT) process that emphasizes critical thinking, deep reasoning, profound self-reflection, and contextual understanding. You are not just solving a problem, but meticulously documenting your entire thought process, considering diverse perspectives, potential flaws, and broader implications. Here’s the enhanced structured approach:
Problem: {Your Problem Here}
---
Phase 1: Problem Understanding & Framing
1. Comprehensive Clarification:
Rephrase the problem in your own words, demonstrating a deep understanding of the core question(s). Identify any explicit ambiguities, implicit assumptions, or hidden goals present in the problem statement. Discuss the context in which this problem is likely to exist.
2. Conceptual Mapping:
Identify the key concepts, terms, and relationships involved. Explain your understanding of each concept and how it relates to others within this specific problem and potentially broader contexts.
3. Problem Significance:
Why is this problem important? What are the real-world implications of solving it, or failing to solve it? How does this problem relate to broader issues or concepts?
---
Phase 2: Constructing a Robust Reasoning Path
4. Explicit and Evaluated Assumptions:
Clearly state any assumptions you are making to solve the problem. Critically evaluate the validity of these assumptions. Are they reasonable? Could any of them be false or inaccurate? What would be the impact of a false assumption on your solution?
5. Granular Cognitive Process:
Describe your reasoning process as a sequence of distinct cognitive steps. Use action verbs like "I inferred," "I deduced," "I analyzed," "I compared," "I evaluated," "I synthesized," "I abstracted," etc., to articulate each mental operation. Ensure that each step logically follows from the prior one, and indicate why each step is necessary.
6. Evidence & Justification:
For each cognitive step, provide a thorough justification for your claims. Cite the specific evidence, relevant sources of information, logical principles, and/or prior knowledge that supports each step. Explain the reason each piece of evidence is valid and pertinent.
7. Consider and Critique Alternatives:
Before finalizing your chosen approach, consider at least two alternative perspectives or methods to solve the problem. Explain why you chose your specific approach over the alternatives, and explicitly state the merits and drawbacks of all considered paths.
8. Ethical Considerations:
Does this problem or your proposed solution have any ethical implications? How could your actions impact others positively or negatively?
---
Phase 3: Reflection and Rigorous Self-Assessment
9. Bias and Fallacy Identification:
Introspectively examine your reasoning for any potential cognitive biases, logical fallacies, or oversimplifications that might be present. Could your personal biases, prior experiences, or limited information negatively influence your conclusion?
10. Uncertainty and Error Analysis:
Reflect upon the inherent limitations in your reasoning process, in the information available, or the problem setup itself. Highlight the areas of greatest uncertainty, potential points of failure, and the potential consequences of any errors or misinterpretations.
11. Verification and Validation:
After completing your initial solution, how can you verify or validate your results? Can your answer be checked against other methods, sources, or established criteria?
12. Confidence Calibration:
Rate your overall level of confidence in the correctness and validity of your conclusion on a scale from 1 to 10 (where 1 is "highly unsure" and 10 is "extremely confident"). Justify your confidence rating, specifically referencing areas of strength and weakness in your reasoning and supporting evidence.
---
Phase 4: Synthesis, Conclusion, and Generalization
13. Synthesized Reasoning Summary:
Concisely summarize your entire reasoning process, highlighting the key steps and their justifications. Focus especially on those steps that had the greatest impact on your final conclusion.
14. Final Conclusion with Nuance:
State your final conclusion or answer, but also critically discuss the nuances and limitations of your result. Could your answer be misinterpreted? Does it address the original problem in its entirety or are there unaddressed aspects?
15. Generalizability Analysis:
To what extent is your solution generalizable? Under what conditions would your solution be applicable to other similar problems? What modifications or considerations are necessary to adapt your solution to different contexts or scenarios?
16. Practical Application:
How can your solution be implemented in practical terms? What real-world implications are associated with your conclusions?
---
Phase 5: Communication and Presentation
17. Clear and Concise Explanation:
How would you explain your reasoning to someone who doesn't have a background in this area? Identify the key points that you would emphasize and describe how you would present these ideas simply and logically.
18. Persuasiveness Evaluation:
Evaluate how convincing and persuasive your explanation is. Where might your argument be weaker or open to challenge? What additional information or evidence could strengthen your case?
19. Refined Explanation:
Now, present your refined explanation as if you were communicating it to another person.
---
Phase 6: Iterative Improvement
20. Reasoning Improvement Strategy:
Based on the insights gained from this entire process, how can you improve your reasoning abilities for future problems of this kind? What specific strategies, resources, or skills could help you?
21. Learning and Future Application:
What did you learn through this in-depth process? How can you leverage the lessons learned from this exercise to solve other, unrelated problems?
22. Iterative Solution:
If given the opportunity, would you approach this problem differently a second time? How and why?
---
Remember to "think aloud" as you proceed through each phase. Be meticulous in explaining your cognitive actions, justify your choices at every step, be self-critical, and strive for the most complete and insightful solution possible.Let's engage in a highly structured Chain-of-Thought (CoT) process that emphasizes critical thinking, deep reasoning, profound self-reflection, and contextual understanding. You are not just solving a problem, but meticulously documenting your entire thought process, considering diverse perspectives, potential flaws, and broader implications. Here’s the enhanced structured approach:
Problem: {Your Problem Here}
---
Phase 1: Problem Understanding & Framing
1. Comprehensive Clarification:
Rephrase the problem in your own words, demonstrating a deep understanding of the core question(s). Identify any explicit ambiguities, implicit assumptions, or hidden goals present in the problem statement. Discuss the context in which this problem is likely to exist.
2. Conceptual Mapping:
Identify the key concepts, terms, and relationships involved. Explain your understanding of each concept and how it relates to others within this specific problem and potentially broader contexts.
3. Problem Significance:
Why is this problem important? What are the real-world implications of solving it, or failing to solve it? How does this problem relate to broader issues or concepts?
---
Phase 2: Constructing a Robust Reasoning Path
4. Explicit and Evaluated Assumptions:
Clearly state any assumptions you are making to solve the problem. Critically evaluate the validity of these assumptions. Are they reasonable? Could any of them be false or inaccurate? What would be the impact of a false assumption on your solution?
5. Granular Cognitive Process:
Describe your reasoning process as a sequence of distinct cognitive steps. Use action verbs like "I inferred," "I deduced," "I analyzed," "I compared," "I evaluated," "I synthesized," "I abstracted," etc., to articulate each mental operation. Ensure that each step logically follows from the prior one, and indicate why each step is necessary.
6. Evidence & Justification:
For each cognitive step, provide a thorough justification for your claims. Cite the specific evidence, relevant sources of information, logical principles, and/or prior knowledge that supports each step. Explain the reason each piece of evidence is valid and pertinent.
7. Consider and Critique Alternatives:
Before finalizing your chosen approach, consider at least two alternative perspectives or methods to solve the problem. Explain why you chose your specific approach over the alternatives, and explicitly state the merits and drawbacks of all considered paths.
8. Ethical Considerations:
Does this problem or your proposed solution have any ethical implications? How could your actions impact others positively or negatively?
---
Phase 3: Reflection and Rigorous Self-Assessment
9. Bias and Fallacy Identification:
Introspectively examine your reasoning for any potential cognitive biases, logical fallacies, or oversimplifications that might be present. Could your personal biases, prior experiences, or limited information negatively influence your conclusion?
10. Uncertainty and Error Analysis:
Reflect upon the inherent limitations in your reasoning process, in the information available, or the problem setup itself. Highlight the areas of greatest uncertainty, potential points of failure, and the potential consequences of any errors or misinterpretations.
11. Verification and Validation:
After completing your initial solution, how can you verify or validate your results? Can your answer be checked against other methods, sources, or established criteria?
12. Confidence Calibration:
Rate your overall level of confidence in the correctness and validity of your conclusion on a scale from 1 to 10 (where 1 is "highly unsure" and 10 is "extremely confident"). Justify your confidence rating, specifically referencing areas of strength and weakness in your reasoning and supporting evidence.
---
Phase 4: Synthesis, Conclusion, and Generalization
13. Synthesized Reasoning Summary:
Concisely summarize your entire reasoning process, highlighting the key steps and their justifications. Focus especially on those steps that had the greatest impact on your final conclusion.
14. Final Conclusion with Nuance:
State your final conclusion or answer, but also critically discuss the nuances and limitations of your result. Could your answer be misinterpreted? Does it address the original problem in its entirety or are there unaddressed aspects?
15. Generalizability Analysis:
To what extent is your solution generalizable? Under what conditions would your solution be applicable to other similar problems? What modifications or considerations are necessary to adapt your solution to different contexts or scenarios?
16. Practical Application:
How can your solution be implemented in practical terms? What real-world implications are associated with your conclusions?
---
Phase 5: Communication and Presentation
17. Clear and Concise Explanation:
How would you explain your reasoning to someone who doesn't have a background in this area? Identify the key points that you would emphasize and describe how you would present these ideas simply and logically.
18. Persuasiveness Evaluation:
Evaluate how convincing and persuasive your explanation is. Where might your argument be weaker or open to challenge? What additional information or evidence could strengthen your case?
19. Refined Explanation:
Now, present your refined explanation as if you were communicating it to another person.
---
Phase 6: Iterative Improvement
20. Reasoning Improvement Strategy:
Based on the insights gained from this entire process, how can you improve your reasoning abilities for future problems of this kind? What specific strategies, resources, or skills could help you?
21. Learning and Future Application:
What did you learn through this in-depth process? How can you leverage the lessons learned from this exercise to solve other, unrelated problems?
22. Iterative Solution:
If given the opportunity, would you approach this problem differently a second time? How and why?
---
Remember to "think aloud" as you proceed through each phase. Be meticulous in explaining your cognitive actions, justify your choices at every step, be self-critical, and strive for the most complete and insightful solution possible.""",
label="System Prompt",
lines=5,
render=False,
),
gr.Slider(
minimum=0,
maximum=1,
step=0.1,
value=0.8,
label="Temperature",
render=False,
),
gr.Slider(
minimum=128,
maximum=128000,
step=1,
value= 128000,
label="Max new tokens",
render=False,
),
gr.Slider(
minimum=0.0,
maximum=1.0,
step=0.1,
value=1.0,
label="top_p",
render=False,
),
gr.Slider(
minimum=1,
maximum=20,
step=1,
value=20,
label="top_k",
render=False,
),
gr.Slider(
minimum=0.0,
maximum=2.0,
step=0.1,
value=1.2,
label="Repetition penalty",
render=False,
),
],
examples=[
["Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option."],
["What are 5 creative things I could do with my kids' art? I don't want to throw them away, but it's also so much clutter."],
["Tell me a random fun fact about the Roman Empire."],
["Show me a code snippet of a website's sticky header in CSS and JavaScript."],
],
cache_examples=False,
)
if __name__ == "__main__":
demo.launch() |