Views
No views yet

deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B, trained with the Delethink RL paradigm. See the paper for full details.deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B\boxed{}.1import asyncio
2import sglang as sgl
3
4async def delethink_tracing(llm, query_ids, context_size=8192, markovian_size=4096, iteration_cap=23):
5 sampling_params = {"temperature": 0.6}
6 trace_response_ids = []
7 iterations = 0
8 prompt_ids = query_ids
9
10 while iterations < iteration_cap:
11 params = dict(sampling_params)
12 params["max_new_tokens"] = (context_size - markovian_size) if iterations > 0 else context_size
13
14 resp = await llm.async_generate(input_ids=prompt_ids, sampling_params=params, return_logprob=True)
15 if "output_ids" in resp:
16 out_ids = resp["output_ids"]
17 else:
18 _, out_ids = zip(*[(lp, tids) for lp, tids, _ in resp["meta_info"]["output_token_logprobs"]])
19 out_ids = list(out_ids)
20
21 trace_response_ids.append(out_ids)
22
23 if iterations == 0:
24 query_ids = query_ids + out_ids[:100]
25
26 finish_reason_is_eos = resp["meta_info"]["finish_reason"]["type"] == "stop"
27 if finish_reason_is_eos:
28 break
29
30 prompt_ids = query_ids + out_ids[-markovian_size:]
31 iterations += 1
32
33 return sum(trace_response_ids, [])
34
35def main():
36 llm = sgl.Engine(
37 model_path="McGill-NLP/delethink-96k-1.5b",
38 dtype="bfloat16",
39 attention_backend="flashinfer",
40 mem_fraction_static=0.8,
41 log_level="WARNING",
42 )
43
44 prompt = (
45 r"There exist real numbers $x$ and $y$, both greater than 1, such that "
46 r"$\log_x\left(y^x\right)=\log_y\left(x^{4y}\right)=10$. Find $xy$."
47 "\n\nPlease reason step by step, and put your final answer within \\boxed{}."
48 )
49 tok = llm.tokenizer_manager.tokenizer
50 query_ids = tok.apply_chat_template(
51 [{"role": "user", "content": prompt}],
52 tokenize=True,
53 add_generation_prompt=True,
54 )
55
56 ids = asyncio.run(delethink_tracing(llm, query_ids, context_size=8192, markovian_size=4096, iteration_cap=5))
57 print(tok.decode(ids, skip_special_tokens=False))
58
59if __name__ == "__main__":
60 main()1@misc{Aghajohari2025:TheMarkovianThinker,
2 title={The Markovian Thinker},
3 author={Milad Aghajohari and Kamran Chitsaz and Amirhossein Kazemnejad and Sarath Chandar and Alessandro Sordoni and Aaron Courville and Siva Reddy},
4 year={2025},
5 eprint={2510.06557},
6 archivePrefix={arXiv},
7 primaryClass={cs.LG},
8 url={https://arxiv.org/abs/2510.06557},
9}