Instructions to use osunlp/QUEST-30B-RL with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use osunlp/QUEST-30B-RL with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="osunlp/QUEST-30B-RL") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("osunlp/QUEST-30B-RL") model = AutoModelForCausalLM.from_pretrained("osunlp/QUEST-30B-RL") 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
- vLLM
How to use osunlp/QUEST-30B-RL with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "osunlp/QUEST-30B-RL" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "osunlp/QUEST-30B-RL", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/osunlp/QUEST-30B-RL
- SGLang
How to use osunlp/QUEST-30B-RL 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 "osunlp/QUEST-30B-RL" \ --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": "osunlp/QUEST-30B-RL", "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 "osunlp/QUEST-30B-RL" \ --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": "osunlp/QUEST-30B-RL", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use osunlp/QUEST-30B-RL with Docker Model Runner:
docker model run hf.co/osunlp/QUEST-30B-RL
File size: 3,030 Bytes
67b3ced 718c94e 67b3ced bf9d923 67b3ced c803831 5f32273 c803831 67b3ced bf9d923 67b3ced bf9d923 718c94e ccbc79a c803831 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | ---
library_name: transformers
license: apache-2.0
pipeline_tag: text-generation
tags:
- quest
- text-generation
---
# QUEST-30B-RL
QUEST **30B** full model after **mid-training → SFT → RL** (Qwen3-30B-A3B base, dense). Trained following the same three-stage recipe as the 35B model, evaluated against Tongyi-DR and OpenResearcher at the same scale.
## Benchmark results
| Benchmark | Metric | Score |
| --- | --- | ---: |
| BrowseComp | avg@3 | 37.0 |
| Mind2Web 2 | avg@3 | 28.6 |
| HLE | avg@3 | 24.6 |
| DeepResearch Bench | avg@3 | 45.3 |
| BrowseComp-Plus | avg@3 | 48.2 |
| WideSearch | Item F1 avg@4 | 54.2 |
| GAIA | avg@3 | 69.0 |
| LiveResearchBench | avg@3 | 74.1 |
## QUEST Family
| Type | Resources |
| --- | --- |
| 35B checkpoints | [RL](https://huggingface.co/osunlp/QUEST-35B-RL), [MT+SFT](https://huggingface.co/osunlp/QUEST-35B-MT-Plus-SFT), [MT](https://huggingface.co/osunlp/QUEST-35B-MT), [SFT](https://huggingface.co/osunlp/QUEST-35B-SFT) |
| 30B checkpoints | [RL](https://huggingface.co/osunlp/QUEST-30B-RL), [MT+SFT](https://huggingface.co/osunlp/QUEST-30B-MT-Plus-SFT), [SFT](https://huggingface.co/osunlp/QUEST-30B-SFT) |
| Smaller checkpoints | [9B](https://huggingface.co/osunlp/QUEST-9B), [4B](https://huggingface.co/osunlp/QUEST-4B), [2B](https://huggingface.co/osunlp/QUEST-2B) |
| Training data | [RL data](https://huggingface.co/datasets/osunlp/QUEST-RL-Data), [SFT objective data](https://huggingface.co/datasets/osunlp/QUEST-SFT-Data-Objective), [SFT open-ended data](https://huggingface.co/datasets/osunlp/QUEST-SFT-Data-Open-ended), [Mid-training data](https://huggingface.co/datasets/osunlp/QUEST-Mid-Training-Data) |
Model selection note: if you only need to evaluate objective tasks and do not
need open-ended task evaluation, we recommend the MT+SFT checkpoints because
they perform better on reasoning-heavy objective benchmarks. For a more comprehensive evaluation
across both objective and open-ended tasks, we recommend the RL checkpoints.
## Quick start
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "osunlp/QUEST-30B-RL"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", torch_dtype="auto",
)
```
Apply the model's chat template with `tokenizer.apply_chat_template(...)` before passing prompts.
## License
Released under the **Apache License 2.0**.
## Citation
If our paper or related resources prove valuable to your research, we kindly ask
for a citation.
```bibtex
@misc{xie2026quest,
title={QUEST: Training Frontier Deep Research Agents with Fully Synthetic Tasks},
author={Xie, Jian and Lin, Tianhe and Wang, Zilu and Ning, Yuting and Yao, Yuekun and Xue, Tianci and Zhang, Zhehao and Li, Zhongyang and Zhang, Kai and Wu, Yufan and Chen, Shijie and Gou, Boyu and Han, Mingzhe and Wang, Yifei and Lee, Vint and Wei, Xinpeng and Wang, Xiangjun and Su, Yu and Sun, Huan},
journal={arXiv preprint arXiv:2605.24218},
year={2026}
}
```
|