File size: 2,085 Bytes
a9350c3
 
 
 
292ec7c
a9350c3
 
 
2f94dbe
292ec7c
2f94dbe
292ec7c
 
 
2f94dbe
292ec7c
2f94dbe
 
2c39b0d
292ec7c
 
 
 
 
 
 
 
 
64a9fd4
a9350c3
 
 
 
 
 
292ec7c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import json
import time

# Load sealed results
with open("results.json") as f:
    data = json.load(f)

def simulate_epochs(difficulty, user_log):
    # Try to parse challenger input
    try:
        user_data = json.loads(user_log) if user_log.strip() else None
        user_label = user_data.get("label", "User") if user_data else None
        user_scores = user_data.get("scores", []) if user_data else []
    except:
        yield "❌ Invalid log format. Use: {\"label\": \"MyOpt\", \"epochs\": [...], \"scores\": [...]}."
        return

    results = data[difficulty]
    has_challenger = user_label is not None
    header = "| Epoch | LIAM (RFT) | Adam | Lion | SGR"
    if has_challenger:
        header += f" | {user_label}"
    header += " |\n|-------|-------------|------|------|-----"
    if has_challenger:
        header += "|--------------"
    header += "|\n"

    table = header
    for i in range(len(results["epochs"])):
        epoch = results["epochs"][i]
        rft = results["LIAM_RFT"][i]
        adam = results["Adam"][i]
        lion = results["Lion"][i]
        sgr = results["SGR"][i]
        row = f"| {epoch} | {rft:.2f}% | {adam:.2f}% | {lion:.2f}% | {sgr:.2f}%"
        if has_challenger:
            challenger_score = user_scores[i] if i < len(user_scores) else "-"
            row += f" | {challenger_score}"
        row += " |\n"
        table += row
        yield table
        time.sleep(0.75)

demo = gr.Interface(
    fn=simulate_epochs,
    inputs=[
        gr.Dropdown(choices=list(data.keys()), label="Select Difficulty Level"),
        gr.Textbox(
            lines=10,
            label="Optional: Paste Your Optimizer Log (JSON)",
            value='{\n  "label": "MyOptimizer",\n  "epochs": [1, 2, 3, 4, 5],\n  "scores": [70.1, 74.3, 78.0, 81.2, 83.5]\n}'
        )
    ],
    outputs=gr.Markdown(),
    title="RFT Optimizer Showdown",
    description="Select a difficulty tier and optionally paste your optimizer log to challenge RFT. All results sealed. No optimizer code exposed.",
    live=True
)

demo.launch()