Instructions to use SlowGuess/ABForge-Qwen3-8B-SFT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use SlowGuess/ABForge-Qwen3-8B-SFT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="SlowGuess/ABForge-Qwen3-8B-SFT") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("SlowGuess/ABForge-Qwen3-8B-SFT") model = AutoModelForCausalLM.from_pretrained("SlowGuess/ABForge-Qwen3-8B-SFT", 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use SlowGuess/ABForge-Qwen3-8B-SFT with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "SlowGuess/ABForge-Qwen3-8B-SFT" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "SlowGuess/ABForge-Qwen3-8B-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/SlowGuess/ABForge-Qwen3-8B-SFT
- SGLang
How to use SlowGuess/ABForge-Qwen3-8B-SFT with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "SlowGuess/ABForge-Qwen3-8B-SFT" \ --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": "SlowGuess/ABForge-Qwen3-8B-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
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 "SlowGuess/ABForge-Qwen3-8B-SFT" \ --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": "SlowGuess/ABForge-Qwen3-8B-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use SlowGuess/ABForge-Qwen3-8B-SFT with Docker Model Runner:
docker model run hf.co/SlowGuess/ABForge-Qwen3-8B-SFT
ABForge-Qwen3-8B-SFT
📄 ArXiv | 💻 Code | 🤗 Collection
About
This repository contains the SFT stage of ABForge, presented in ABForge: Post-Training for Paper-Grounded Ablation Design. Given a paper's methodology with its ablation content removed, ABForge proposes the ablation objectives the paper should investigate and designs a rigorous experiment plan for each — both from a single checkpoint.
This model is Qwen3-8B supervised fine-tuned for one full epoch on a 1:1 mixture of the two tasks, with no RL. It initializes the GRPO stage of ABForge-Qwen3-8B and is the SFT only row of the paper's post-training ablation.
Links
| Resource | Link |
|---|---|
| Code | SlowGuess/Abforge_1 |
| Training & evaluation data | SlowGuess/abforge-data |
| Released model (SFT → GRPO) | SlowGuess/ABForge-Qwen3-8B |
| RL-only checkpoint | SlowGuess/ABForge-Qwen3-8B-RL |
| Per-paper outputs & judge rationales | outputs/task{1,2}/*/abforge-sft.jsonl in the data repo |
Training data
SlowGuess/abforge-data ships a
single table under train/, one row per paper, built by a semi-automated audit-in-the-loop
pipeline over research papers from major ML, NLP and CV venues. This model trains on the rows
flagged in_sft_task1 (45,961 papers) and in_sft_task2 (36,955), shuffled into a 1:1 task
mixture for one full epoch. The benchmark papers carry no training flag, so they cannot leak in.
Performance
AblationBench, automated rubric-based LLM-as-a-Judge evaluation (eval/ablationbench_200.jsonl,
200 papers, judge claude-sonnet-4-6). Task 1 is ablation objective identification
(paper_score); Task 2 is ablation plan synthesis (design_score, ×100).
| Model | Task 1 | Task 2 |
|---|---|---|
| Qwen3-8B (base) | 44.4 | 43.4 |
| ABForge-Qwen3-8B-SFT (this model, SFT only) | 30.7 | 52.2 |
| ABForge-Qwen3-8B-RL (RL only) | 52.2 | 54.9 |
| ABForge-Qwen3-8B (SFT → GRPO) | 55.9 | 62.4 |
SFT alone lifts Task 2 but costs Task 1 relative to the base model. Its value is as an RL initialization: GRPO started from here beats GRPO started from the base model by +3.7 on Task 1 and +7.5 on Task 2.
Evaluation
Reproduce the numbers above with the code release:
git clone https://github.com/SlowGuess/Abforge_1 && cd Abforge_1
huggingface-cli download SlowGuess/abforge-data --repo-type dataset \
--include "eval/*" --local-dir data
python run_inference_local.py --task 1 \
--input data/eval/ablationbench_200.jsonl \
--output outputs/task1_infer.jsonl \
--model-path SlowGuess/ABForge-Qwen3-8B-SFT \
--dtype bf16 --device-map auto \
--max-new-tokens 5120 --temperature 0.0 --stop-on '</Result>'
export JUDGE_API_BASE=https://api.openai.com/v1
export JUDGE_API_KEY=...
export JUDGE_MODEL=...
scripts/evaluate_task1.sh outputs/task1_infer.jsonl
Swap --task 2, --stop-on '</Proposed_Plan>' and scripts/evaluate_task2.sh for Task 2. The
model is trained on the prompt templates in the code release and the rubric evaluator expects
the matching output structure, so use those templates and greedy decoding.
Citation
@misc{abforge2026,
title={ABForge: Post-Training for Paper-Grounded Ablation Design},
author={TODO},
year={2026},
}
- Downloads last month
- 369