SearchQwen2.5-7B / README.md
zjzju's picture
Remove paper citation pending official publication
b0d47f3 verified
|
Raw
History Blame
3.47 kB
---
library_name: transformers
pipeline_tag: text-generation
license: apache-2.0
license_link: https://huggingface.co/Qwen/Qwen2.5-7B-Instruct/blob/main/LICENSE
language:
- en
base_model: Qwen/Qwen2.5-7B-Instruct
base_model_relation: finetune
tags:
- search-agent
- tool-use
- function-calling
- deep-search
- qwen
---
# SearchQwen2.5-7B
**SearchQwen2.5-7B** is a compact Search Agent model from the Alibaba Cloud PAI team. It is trained with environment-aligned, solver-verified search trajectories generated by [EasyDistill 2.0](https://github.com/modelscope/easydistill/tree/v2.0.0), and is designed for multi-hop search, browsing, and evidence integration.
> SearchQwen2.5-7B 是基于 EasyDistill 2.0 环境对齐轨迹蒸馏链路训练的 Search Agent 小模型,支持结构化 `search` / `browse` 工具调用。
## Model overview
| Item | Value |
|---|---|
| Base model | [Qwen/Qwen2.5-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) |
| Parameters | 7.62B |
| Context length | 32,768 |
| Recommended interface | Structured Tool-Call |
| Training data | [SynSearch-Data](https://huggingface.co/datasets/alibaba-pai/SynSearch-Data) |
## Results
LLM-judge accuracy (%). Multi-hop QA averages 2WikiMultiHopQA, Bamboogle, HotpotQA, and MuSiQue; Deep Search averages GAIA, WebWalkerQA, xbench-deepsearch, and BrowseComp-ZH.
| Interaction | Model | Multi-hop QA | Deep Search | Overall |
|---|---|---:|---:|---:|
| Search-R1 style | Qwen2.5-7B-Instruct | 45.28 | 18.65 | 31.96 |
| Search-R1 style | **SearchQwen2.5-7B** | **52.95** | **26.23** | **39.59** |
| Tool-Call | Qwen2.5-7B-Instruct | 45.23 | 24.35 | 33.33 |
| Tool-Call | **SearchQwen2.5-7B** | **55.90** | **33.33** | **44.61** |
## Quickstart
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "alibaba-pai/SearchQwen2.5-7B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
).eval()
messages = [
{"role": "system", "content": "You are a search agent. Use tools before answering."},
{"role": "user", "content": "Which city is the birthplace of the author of The Old Man and the Sea?"},
]
tools = [
{
"type": "function",
"function": {
"name": "search",
"description": "Search the web.",
"parameters": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"],
},
},
}
]
inputs = tokenizer.apply_chat_template(
messages,
tools=tools,
add_generation_prompt=True,
tokenize=True,
return_tensors="pt",
return_dict=True,
).to(model.device)
output = model.generate(**inputs, max_new_tokens=256, do_sample=False)
print(tokenizer.decode(output[0, inputs["input_ids"].shape[-1]:], skip_special_tokens=False))
```
The model returns a structured `<tool_call>`; execute the tool, append its response, and continue until a final answer is produced. An external search/browse backend is required.
## Related resources
- Framework: [EasyDistill 2.0](https://github.com/modelscope/easydistill/tree/v2.0.0)
- Data: [SynSearch-Data](https://huggingface.co/datasets/alibaba-pai/SynSearch-Data)
## License
This model follows the license included in this repository and the terms of its base model. Checksums are provided in `SHA256SUMS`.