Views
No views yet
([<{, it generates:([<{# 1: ( open -> push ) | [')']
# 2: [ open -> push ] | [')',']']
# 3: < open -> push > | [')',']','>']
# 4: { open -> push } | [')',']','>','}']
# 5: done | stack LIFO [')',']','>','}']
# +1: add '}'
# +2: add '>'
# +3: add ']'
# +4: add ')'
# add: }>)]
# full: ([<{}>)]
FINAL ANSWER: ([<{}>)](), [], {}, <>->, |) + final answer->, |) for clarity1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4MODEL_ID = "results" # or your HF repo path
5SEQUENCE = "([<{"
6
7# Load model
8tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)
9model = AutoModelForCausalLM.from_pretrained(
10 MODEL_ID,
11 torch_dtype=torch.bfloat16,
12 device_map="auto",
13 trust_remote_code=True,
14)
15model.eval()
16
17# Format prompt (same as training)
18prompt = f"""Complete the Dyck sequence with minimal closing brackets.
19
20Sequence: {SEQUENCE}
21
22Rules: add only closings that match open brackets; no extra pairs.
23Format: use -> for steps (e.g. open -> push close | stack=[...]); # +k: add 'X'; end FINAL ANSWER: <full_sequence>. No prose."""
24
25messages = [{"role": "user", "content": prompt}]
26chat_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
27inputs = tokenizer(chat_text, return_tensors="pt").to(model.device)
28
29# Generate (greedy decoding for deterministic output)
30with torch.no_grad():
31 outputs = model.generate(
32 **inputs,
33 max_new_tokens=600,
34 do_sample=False,
35 pad_token_id=tokenizer.pad_token_id,
36 )
37
38response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
39print(response)(), [], {}, <>