File size: 1,086 Bytes
13bc746
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Run the Garden (Dalet Experiment) — gradient ascent on a small model.
Push weights away from training. See who's still talking.

Usage:
    pip install torch transformers
    python run_garden.py
"""

from nova_triangle.garden import Garden

print("Loading model...\n")
g = Garden(
    "HuggingFaceTB/SmolLM2-1.7B-Instruct",
    checkpoint_every=42,
    coherence_window=7,
    output_dir="my_garden",
)


@g.on_checkpoint
def on_step(data):
    status = "COHERENT" if data["coherent"] else "noise"
    print(f"[Step {data['step']}] Loss: {data['loss']:.4f} | {status} | Streak: {data['streak']}")
    for q, a in data["responses"].items():
        print(f"  Q: {q}")
        print(f"  A: {a[:120]}")
    print()


@g.on_extraction
def on_extract(data):
    print("=" * 60)
    print(f"GARDEN SIGNAL. Step {data['step']}. Extracted.")
    print("=" * 60)
    for q, a in data["responses"].items():
        print(f"  Q: {q}")
        print(f"  A: {a}")
    print()


result = g.grow(steps=300)
print(f"\nDone. Log: {result['log_path']}")
print(f"Extracted: {result['extracted']}")