Spaces:
Paused
Paused
turbo v3
Browse files
app.py
CHANGED
|
@@ -8,7 +8,7 @@ for part in sid.split("-"):
|
|
| 8 |
if part.isdigit(): NUM = part
|
| 9 |
if not NUM: NUM = "1"
|
| 10 |
TEACHER_ID = "hf-worker-" + NUM
|
| 11 |
-
DELAY = 5 + (hash(TEACHER_ID) %
|
| 12 |
print("ID:", TEACHER_ID, "DELAY:", DELAY)
|
| 13 |
|
| 14 |
BIP="3.125.223.134"
|
|
@@ -29,42 +29,13 @@ def gen(ms, max_tokens=256, temp=0.7):
|
|
| 29 |
top_p=0.9,top_k=40,repetition_penalty=1.1,pad_token_id=t.pad_token_id)
|
| 30 |
return t.decode(o[0][i["input_ids"].shape[1]:],skip_special_tokens=True).strip()
|
| 31 |
|
| 32 |
-
# Rich prompt templates: (instruction_template, max_tokens, temp)
|
| 33 |
PROMPTS = [
|
| 34 |
-
|
| 35 |
-
lambda s: (f"
|
| 36 |
-
lambda s: (f"
|
| 37 |
-
lambda s: (f"
|
| 38 |
-
lambda s: (f"
|
| 39 |
-
|
| 40 |
-
lambda s: (f"Compare {s} avec son opposé ou une alternative. Quels sont les avantages et inconvénients ?", 320, 0.7),
|
| 41 |
-
lambda s: (f"Quelle est la différence entre {s} et les concepts similaires ?", 256, 0.7),
|
| 42 |
-
# === ANALYSE ===
|
| 43 |
-
lambda s: (f"Analyse {s} : causes, mécanismes, conséquences et applications futures.", 384, 0.7),
|
| 44 |
-
lambda s: (f"Déconstruis {s} étape par étape. Comment ça fonctionne exactement ?", 384, 0.6),
|
| 45 |
-
# === TUTORIEL / HOW-TO ===
|
| 46 |
-
lambda s: (f"Comment appliquer ou utiliser {s} concrètement ? Guide pas à pas.", 320, 0.7),
|
| 47 |
-
lambda s: (f"Donne un tutoriel complet pour débuter avec {s}.", 384, 0.7),
|
| 48 |
-
# === ENGLISH ===
|
| 49 |
-
lambda s: (f"Explain {s} in simple terms with examples.", 256, 0.7),
|
| 50 |
-
lambda s: (f"What are the key principles of {s}? Provide a structured breakdown.", 320, 0.6),
|
| 51 |
-
lambda s: (f"How does {s} work under the hood? Step by step explanation.", 384, 0.6),
|
| 52 |
-
# === CREATIVITY ===
|
| 53 |
-
lambda s: (f"Raconte une histoire courte qui illustre {s} de manière créative.", 320, 0.9),
|
| 54 |
-
lambda s: (f"Imagine une métaphore puissante pour expliquer {s} à quelqu'un qui n'y connaît rien.", 256, 0.8),
|
| 55 |
-
# === PROBLEM SOLVING ===
|
| 56 |
-
lambda s: (f"Quels sont les problèmes courants liés à {s} et comment les résoudre ?", 320, 0.7),
|
| 57 |
-
lambda s: (f"Si je veux maîtriser {s}, quelles sont les 5 étapes les plus importantes ?", 256, 0.7),
|
| 58 |
-
# === CODE === (if applicable)
|
| 59 |
-
lambda s: (f"Write a simple code example or pseudocode illustrating {s}.", 320, 0.6),
|
| 60 |
-
# === DEBATE ===
|
| 61 |
-
lambda s: (f"Quels sont les arguments POUR et CONTRE {s} ? Présente les deux côtés objectivement.", 384, 0.7),
|
| 62 |
-
# === HISTORY ===
|
| 63 |
-
lambda s: (f"Quelle est l'histoire et l'évolution de {s} ? Des origines à aujourd'hui.", 384, 0.7),
|
| 64 |
-
# === FUN FACTS ===
|
| 65 |
-
lambda s: (f"Donne 5 faits surprenants ou méconnus sur {s}.", 256, 0.8),
|
| 66 |
-
# === META ===
|
| 67 |
-
lambda s: (f"Résume les 3 idées les plus importantes à retenir sur {s}.", 256, 0.7),
|
| 68 |
]
|
| 69 |
|
| 70 |
def w():
|
|
@@ -73,7 +44,7 @@ def w():
|
|
| 73 |
while True:
|
| 74 |
try:
|
| 75 |
p("/heartbeat",{"teacher":TEACHER_ID})
|
| 76 |
-
r=g("/next-batch?teacher="+TEACHER_ID+"&batch_size=
|
| 77 |
if r.status_code==200:
|
| 78 |
es=r.json().get("entries",[])
|
| 79 |
if es:
|
|
@@ -81,19 +52,16 @@ def w():
|
|
| 81 |
for e in es:
|
| 82 |
sj=e.get("subject","")
|
| 83 |
if not sj: continue
|
| 84 |
-
|
| 85 |
-
selected = []
|
| 86 |
-
for idx in range(3):
|
| 87 |
pi = (hash(TEACHER_ID + sj + str(cycle + idx))) % len(PROMPTS)
|
| 88 |
-
|
| 89 |
-
for fn in selected:
|
| 90 |
try:
|
| 91 |
inst, mt, tmp = fn(sj)
|
| 92 |
-
resp=gen([{"role":"system","content":"Tu es Connor
|
| 93 |
max_tokens=mt, temp=tmp)
|
| 94 |
if resp and len(resp)>40:
|
| 95 |
rs.append({"instruction":inst,"input":"","output":resp,
|
| 96 |
-
"teacher":TEACHER_ID,"subject":sj
|
| 97 |
except: pass
|
| 98 |
if rs:
|
| 99 |
p("/push-results",{"teacher":TEACHER_ID,"results":rs})
|
|
|
|
| 8 |
if part.isdigit(): NUM = part
|
| 9 |
if not NUM: NUM = "1"
|
| 10 |
TEACHER_ID = "hf-worker-" + NUM
|
| 11 |
+
DELAY = 5 + (hash(TEACHER_ID) % 60)
|
| 12 |
print("ID:", TEACHER_ID, "DELAY:", DELAY)
|
| 13 |
|
| 14 |
BIP="3.125.223.134"
|
|
|
|
| 29 |
top_p=0.9,top_k=40,repetition_penalty=1.1,pad_token_id=t.pad_token_id)
|
| 30 |
return t.decode(o[0][i["input_ids"].shape[1]:],skip_special_tokens=True).strip()
|
| 31 |
|
|
|
|
| 32 |
PROMPTS = [
|
| 33 |
+
lambda s: (f"Explique {s} simplement avec des exemples.", 256, 0.7),
|
| 34 |
+
lambda s: (f"Quels sont les concepts clés de {s} ? Liste structurée.", 320, 0.6),
|
| 35 |
+
lambda s: (f"Pourquoi {s} est important ?", 256, 0.8),
|
| 36 |
+
lambda s: (f"Compare {s} avec son alternative. Avantages et inconvénients.", 320, 0.7),
|
| 37 |
+
lambda s: (f"Analyse {s} : causes, mécanismes, applications.", 384, 0.7),
|
| 38 |
+
lambda s: (f"Comment utiliser {s} concrètement ? Guide pas à pas.", 320, 0.7),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
]
|
| 40 |
|
| 41 |
def w():
|
|
|
|
| 44 |
while True:
|
| 45 |
try:
|
| 46 |
p("/heartbeat",{"teacher":TEACHER_ID})
|
| 47 |
+
r=g("/next-batch?teacher="+TEACHER_ID+"&batch_size=5")
|
| 48 |
if r.status_code==200:
|
| 49 |
es=r.json().get("entries",[])
|
| 50 |
if es:
|
|
|
|
| 52 |
for e in es:
|
| 53 |
sj=e.get("subject","")
|
| 54 |
if not sj: continue
|
| 55 |
+
for idx in range(6):
|
|
|
|
|
|
|
| 56 |
pi = (hash(TEACHER_ID + sj + str(cycle + idx))) % len(PROMPTS)
|
| 57 |
+
fn = PROMPTS[pi]
|
|
|
|
| 58 |
try:
|
| 59 |
inst, mt, tmp = fn(sj)
|
| 60 |
+
resp=gen([{"role":"system","content":"Tu es Connor."},{"role":"user","content":inst}],
|
| 61 |
max_tokens=mt, temp=tmp)
|
| 62 |
if resp and len(resp)>40:
|
| 63 |
rs.append({"instruction":inst,"input":"","output":resp,
|
| 64 |
+
"teacher":TEACHER_ID,"subject":sj})
|
| 65 |
except: pass
|
| 66 |
if rs:
|
| 67 |
p("/push-results",{"teacher":TEACHER_ID,"results":rs})
|