Bridging the Gap Between Latent and Explicit Reasoning with Looped Transformers
Paper • 2606.31779 • Published • 2
How to use yingfanbot/gsm-cot-llama3b with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="yingfanbot/gsm-cot-llama3b", device_map="auto")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("yingfanbot/gsm-cot-llama3b")
model = AutoModelForCausalLM.from_pretrained("yingfanbot/gsm-cot-llama3b", device_map="auto")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))How to use yingfanbot/gsm-cot-llama3b with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "yingfanbot/gsm-cot-llama3b"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "yingfanbot/gsm-cot-llama3b",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/yingfanbot/gsm-cot-llama3b
How to use yingfanbot/gsm-cot-llama3b with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "yingfanbot/gsm-cot-llama3b" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "yingfanbot/gsm-cot-llama3b",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "yingfanbot/gsm-cot-llama3b" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "yingfanbot/gsm-cot-llama3b",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use yingfanbot/gsm-cot-llama3b with Docker Model Runner:
docker model run hf.co/yingfanbot/gsm-cot-llama3b
Built with Llama. Supervised chain-of-thought fine-tune of meta-llama/Llama-3.2-3B-Instruct on GSM8K.
This model serves as the Stage-1 CoT baseline/initialization checkpoint for LOTUS (Looped Transformers with parallel supervision on latents), as described in the paper Bridging the Gap Between Latent and Explicit Reasoning with Looped Transformers.
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("yingfanbot/gsm-cot-llama3b")
tokenizer = AutoTokenizer.from_pretrained("yingfanbot/gsm-cot-llama3b")
@misc{fan2026bridginggaplatentexplicit,
title={Bridging the Gap Between Latent and Explicit Reasoning with Looped Transformers},
author={Ying Fan and Anej Svete and Kangwook Lee},
year={2026},
eprint={2606.31779},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2606.31779},
}
Base model
meta-llama/Llama-3.2-3B-Instruct