Instructions to use osunlp/QUEST-35B-MT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use osunlp/QUEST-35B-MT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="osunlp/QUEST-35B-MT") 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)# Load model directly from transformers import AutoProcessor, AutoModelForImageTextToText processor = AutoProcessor.from_pretrained("osunlp/QUEST-35B-MT") model = AutoModelForImageTextToText.from_pretrained("osunlp/QUEST-35B-MT") 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=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use osunlp/QUEST-35B-MT with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "osunlp/QUEST-35B-MT" # 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-35B-MT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/osunlp/QUEST-35B-MT
- SGLang
How to use osunlp/QUEST-35B-MT 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-35B-MT" \ --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-35B-MT", "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-35B-MT" \ --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-35B-MT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use osunlp/QUEST-35B-MT with Docker Model Runner:
docker model run hf.co/osunlp/QUEST-35B-MT
# Load model directly
from transformers import AutoProcessor, AutoModelForImageTextToText
processor = AutoProcessor.from_pretrained("osunlp/QUEST-35B-MT")
model = AutoModelForImageTextToText.from_pretrained("osunlp/QUEST-35B-MT")
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=40)
print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:]))QUEST-35B-MT
This is the mid-training only checkpoint of QUEST-35B-A3B (Qwen3_5MoeForConditionalGeneration). It has not been fine-tuned with SFT or RL and therefore does not have the instruction-following or tool-use capabilities required to complete deep research tasks.
It is released as an intermediate artifact for research purposes (e.g., initializing further fine-tuning experiments or studying the effect of mid-training). If you need a usable deep research agent, please use QUEST-35B-MT+SFT or QUEST-35B-RL instead.
Training stage
| Stage | Applied |
|---|---|
| Mid-training (MT) | ✓ |
| Supervised fine-tuning (SFT) | ✗ |
| Reinforcement learning (RL) | ✗ |
Benchmark results
Not reported — this model lacks task-completion capability without SFT.
QUEST Family
| Type | Resources |
|---|---|
| 35B checkpoints | RL, MT+SFT, MT, SFT |
| 30B checkpoints | RL, MT+SFT, SFT |
| Smaller checkpoints | 9B, 4B, 2B |
| Training data | RL data, SFT objective data, SFT open-ended data, 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
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "osunlp/QUEST-35B-MT"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", torch_dtype="auto",
)
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.
@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}
}
- Downloads last month
- 116
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="osunlp/QUEST-35B-MT") 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)