Downloads · 30 days
0
Yale-ROSE/Qwen3-0.6B-SAT-VarSelector-Sym
Qwen3-0.6B-SAT-VarSelector-Sym is a text classification model from Yale-ROSE. Use it when you need a label for a piece of text. The card lists the license as apache-2.0.
A lightweight Qwen3-0.6B model fine-tuned for SAT branching variable selection in Cube-and-Conquer (CnC) solvers.
Downloads · 30 days
0
Access
Public
Updated Jan 20, 2026
Repo size
8.4 GB
Likes
0
Public
Click a slice to open those files.
.pt7.2 GB · 86%
From the Hugging Face model README
A lightweight Qwen3-0.6B model fine-tuned for SAT branching variable selection in Cube-and-Conquer (CnC) solvers.
This model predicts which variable to branch/cube on next, given a SAT CNF formula state. Instead of generating text, it outputs a classification over variable IDs (1-600).
Qwen/Qwen3-0.6B (causal language model)| Parameter | Value |
|---|---|
| Dataset | 8,110 training / 902 validation samples |
| Task | Predict expert-selected branching variable |
| Epochs | ~6 (best checkpoint at epoch 5.83) |
| Hardware | 8×H100 GPUs |
| Framework | DeepSpeed ZeRO-3 |
| Learning Rate | 5e-6 |
| Max Sequence Length | 8192 tokens |
| Max Variables | 600 |
| Metric | Value |
|---|---|
| Top-1 Accuracy | 23.95% |
| Eval Loss | 3.30 |
| Inference Speed | ~45ms/sample (H100) |
import torch
from transformers import AutoTokenizer
from sft_qwen_var_classifier import QwenVarClassifier, cnf_valid_mask
# Load model
model = QwenVarClassifier("Qwen/Qwen3-0.6B", max_vars=600)
state_dict = torch.load("pytorch_model.bin", map_location="cpu")
model.load_state_dict(state_dict, strict=False)
model = model.to("cuda", dtype=torch.bfloat16)
model.eval()
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-0.6B")
# Prepare CNF input
cnf_text = """p cnf 100 250
1 -2 3 0
-1 2 -4 0
...
"""
# Tokenize
inputs = tokenizer(cnf_text, return_tensors="pt", truncation=True, max_length=8192)
inputs = {k: v.to("cuda") for k, v in inputs.items()}
# Get valid variable mask
valid_mask = torch.tensor([cnf_valid_mask(cnf_text, max_vars=600)], dtype=torch.bool, device="cuda")
# Predict
with torch.no_grad():
outputs = model(**inputs)
logits = outputs["logits"]
logits = logits.masked_fill(~valid_mask, -1e4)
predicted_var = logits.argmax(dim=-1).item()
print(f"Predicted branching variable: {predicted_var}")
| File | Description |
|---|---|
pytorch_model.bin | Model weights (~1.2GB, bfloat16) |
sft_qwen_var_classifier.py | Model class definition (required for loading) |
tokenizer.json | Tokenizer configuration |
tokenizer_config.json | Tokenizer settings |
If you use this model, please cite the Transformer-CnC paper.
Apache 2.0