Instructions to use Glasseek/Glasseeker-9B-SFT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Glasseek/Glasseeker-9B-SFT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Glasseek/Glasseeker-9B-SFT") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Glasseek/Glasseeker-9B-SFT") model = AutoModelForMultimodalLM.from_pretrained("Glasseek/Glasseeker-9B-SFT", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Glasseek/Glasseeker-9B-SFT with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Glasseek/Glasseeker-9B-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": "Glasseek/Glasseeker-9B-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Glasseek/Glasseeker-9B-SFT
- SGLang
How to use Glasseek/Glasseeker-9B-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 "Glasseek/Glasseeker-9B-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": "Glasseek/Glasseeker-9B-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 "Glasseek/Glasseeker-9B-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": "Glasseek/Glasseeker-9B-SFT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Glasseek/Glasseeker-9B-SFT with Docker Model Runner:
docker model run hf.co/Glasseek/Glasseeker-9B-SFT
Glasseeker-9B-SFT
A Transparent Recipe for Training and Trustworthy Evaluation of DeepSearch Agents
Project Repository | SFT Dataset
Glasseeker-9B-SFT is the 9B supervised fine-tuning checkpoint of our deep search agent, built on Qwen3.5-9B. It learns multi-step search planning, query rewriting, evidence retrieval, and answer synthesis from search trajectories.
Glasseek connects verifiable data construction, reinforcement learning with context management, and evaluation with anti-leakage safeguards. These checkpoints initialize the reinforcement-learning stage described in Glasseek: A Transparent Recipe for Training and Trustworthy Evaluation of DeepSearch Agents.
Highlights
- Compact search agents. Two model sizes support research on deep search at the 4B and 9B scales.
- Long-context SFT. Sequence packing and a maximum training sequence length of 131,072 tokens support supervision over extended interactions.
- Shared research resources. The companion SFT dataset contains 5,762 trajectories covering 4,448 unique questions.
Model Family
| Checkpoint | Base model | Training stage | Weight format |
|---|---|---|---|
| Glasseeker-4B-SFT | Qwen3.5-4B | Supervised fine-tuning | Safetensors |
| Glasseeker-9B-SFT | Qwen3.5-9B | Supervised fine-tuning | Safetensors |
Each model repository contains model weights, configuration files, the tokenizer, and the chat template at its root.
SFT Benchmark Results
The following comparison combines the paper's 9B SFT baseline in Table 3 with the same-scale baselines in Table 2. Scores are accuracy (%).
| Model | BrowseComp | BrowseComp-ZH | Seal-0 | XDS-2510 | GAIA-Text |
|---|---|---|---|---|---|
| Glasseek-9B-SFT | 55.5 | 59.5 | 34.2 | 44.0 | 63.1 |
| Apodex-1.0-4B-SFT | 48.8 | 63.5 | -- | -- | -- |
| QUEST-9B-SFT | 45.4 | -- | -- | -- | 78.6 |
| QUEST-4B-SFT | 40.0 | -- | -- | -- | 77.7 |
| Marco-DeepResearch-8B | 31.4 | 47.1 | -- | 42.0 | 69.9 |
| DeepSearch-World-9B | 31.2 | 36.4 | -- | 49.0 | 61.5 |
| MiroThinker-v1.0-8B | 31.1 | 40.2 | 40.4 | 34.0 | 66.4 |
| Qwen3.5-9B | 18.3 | 32.1 | 28.8 | 36.0 | 60.2 |
Glasseek-9B-SFT is evaluated with Hermes-agent, the paper's web-search and webpage-retrieval tools, and anti-leakage safeguards. Its BrowseComp score uses the fixed 200-question ablation subset, averaged over three independent runs. The other benchmarks use their full evaluation sets; GAIA-Text is the 103-question text-only subset. Qwen3.5-9B scores are obtained with our harness. Other baseline scores follow their original reports and evaluation settings. -- and n/r denote unreported results. Baselines retain their reported training stages.
The underlying values are available in CSV format.
Training Configuration
The paper reports the following SFT configuration for the 9B model in Appendix C:
| Setting | Value |
|---|---|
| Training budget | 3 epochs |
| Learning rate | 2e-5 |
| Minimum learning rate | 2e-6 |
| Warmup ratio | 0.03 |
| Global batch size | 64 packed sequences |
| Maximum sequence length | 131,072 tokens |
| Sequence packing | Enabled |
| Training resources | 16 GPUs, approximately 15 hours |
From SFT to CM-GSPO
The Glasseek pipeline continues from SFT with Compaction-Managed GSPO (CM-GSPO). Context compaction divides a rollout into execution sub-trajectories with recorded conditioning histories. CM-GSPO uses length-normalized sub-trajectory likelihood ratios and length-based advantage reweighting to balance contributions within each original rollout. Summary-generation tokens are excluded from the RL objective.
Quick Start
Use an inference runtime with Qwen3.5 support. For example, serve this checkpoint directly from Hugging Face with vLLM:
vllm serve Glasseek/Glasseeker-9B-SFT \
--served-model-name glasseek-sft-9b \
--max-model-len 131072 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_coder
For the 4B checkpoint, use Glasseek/Glasseeker-4B-SFT and the served model name glasseek-sft-4b.
For multi-step search, connect the model endpoint to the Hermes evaluation backend in the project repository. The harness executes tool calls and returns observations to the model. The paper uses Serper for web search and Jina Reader for webpage retrieval.
Related Resources
- Project repository: project overview, evaluation runner, and Hermes backend.
- Glasseek training data: 5,762 SFT trajectories covering 4,448 unique questions.
- Downloads last month
- 62

