CoolFace
Modelpublic

muradil211/AetherSearch_DPO

sourceHugging Faceupdated 22d agoView on Hugging Face
1likes849downloads
Model Card

<div align="center">

<img src="assets/aethersearch-mark.svg" alt="AetherSearch monogram" width="144">

๐Ÿ”ญ AetherSearch DPO

A preference-aligned search agent for retrieval-augmented reasoning

Built on AetherSearch SFT and aligned with Direct Preference Optimization (DPO) over 2,126 search-trajectory preference pairs.

<p> <img src="https://img.shields.io/badge/Method-DPO-0F766E?style=flat-square" alt="Training method: DPO"> <img src="https://img.shields.io/badge/Pairs-2%2C126-F59E0B?style=flat-square" alt="Training pairs: 2,126"> <img src="https://img.shields.io/badge/Context-32K-2563EB?style=flat-square" alt="Context window: 32K"> </p>

๐Ÿ  Project ยท ๐Ÿง  SFT checkpoint

</div>

๐Ÿ”Œ Bring your own retriever. AetherSearch DPO is a search-agent policy, not a self-contained question-answering service. The host runtime must execute each <search>...</search> request and return evidence inside <information>...</information>.

โœจ Highlights

  • โ€”๐ŸŽฏ Preference aligned โ€” favors stronger search decisions, evidence use, and final answers over paired alternatives.
  • โ€”๐Ÿ”Ž Search native โ€” produces explicit reasoning, retrieval requests, and grounded answers using the AetherSearch XML protocol.
  • โ€”๐Ÿ” Multi-step retrieval โ€” can request additional evidence when an existing trajectory is insufficient.
  • โ€”๐Ÿงพ Retrieval-aware DPO โ€” retrieved information remains visible as context but is excluded from preference-loss scoring.

๐Ÿง  How it works

text
Question
   โ”‚
   โ–ผ
<think>reason about what is missing</think>
   โ”‚
   โ–ผ
<search>focused retrieval query</search> โ”€โ”€โ”€โ”€โ”€โ–บ Search / RAG backend
   โ–ฒ                                                  โ”‚
   โ””โ”€โ”€โ”€โ”€ <information>retrieved evidence</information> โ—„โ”€โ”€โ”€โ”€โ”˜
   โ”‚
   โ”œโ”€โ”€ repeat the search loop when more evidence is needed
   โ–ผ
<answer>evidence-grounded final answer</answer>

The model produces reasoning, search, and answer spans. The surrounding runtime parses each completed <search> span, runs retrieval, appends the result as <information>, and resumes generation until the model emits an <answer> span.

๐Ÿ“Š Model at a glance

FieldValue
๐Ÿงฌ Base checkpoint`muradil211/AetherSearch_SFT`
๐Ÿงฌ Base revision437aca474d3966e57e82af565db95d0ad64aa24d
๐Ÿ—๏ธ ArchitectureQwen2 causal language model
๐Ÿ”ข Parameters3,085,938,688
๐ŸŽ›๏ธ Weight dtypeBF16
๐Ÿ“ Context window32,768 positions; training sequences capped at 4,096
๐ŸŽฏ Alignment methodDirect Preference Optimization

๐ŸŽฏ DPO alignment

Supervised fine-tuning teaches the model how to follow the search protocol; DPO then teaches it which of two valid-looking continuations is preferable. For a shared prompt \\(x\\), preferred continuation \\(yw\\), rejected continuation \\(yl\\), policy \\(\pi\theta\\), and frozen SFT reference \\(\pi{\mathrm{ref}}\\), training minimizes:

$$ \mathcal{L}{\mathrm{DPO}} = -\log \sigma\!\left( \beta \left[ \log \frac{\pi\theta(yw \mid x)}{\pi{\mathrm{ref}}(yw \mid x)} - \log \frac{\pi\theta(yl \mid x)}{\pi{\mathrm{ref}}(y_l \mid x)} \right] \right). $$

In plain terms, the policy learns to widen the preference margin between the chosen and rejected search trajectories while the frozen SFT model anchors the update. This directly optimizes pairwise preferences without training a separate reward model or running an online RL loop.

The loss is adapted to the agent-environment boundary:

  • โ€”Shared prompt tokens are masked on both sides.
  • โ€”Environment-provided <information>...</information> spans inside either continuation are masked while remaining visible as context.
  • โ€”All remaining assistant tokens contribute to summed sequence log probabilities.
  • โ€”Answer-terminal continuations include the final <|im_end|> token; search-terminal continuations stop before it so the runtime can insert the next retrieval result.

Both the initial policy and frozen reference use the pinned AetherSearch SFT checkpoint. The released run uses \\(\beta=0.1\\).

๐Ÿ› ๏ธ Training recipe

SettingValueSettingValue
Epochs1Learning rate5e-7
DPO beta0.1SchedulerCosine
Global batch size12 pairsPer-device batch1 pair
PrecisionBF16Max sequence length4,096
Warmup ratio0.03Weight decay0.0
Distributed optimizerDeepSpeed ZeRO-3Seed42

The policy and frozen reference are both sharded with ZeRO-3; gradients and optimizer updates are applied only to the policy.

๐Ÿš€ Quick start

python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "muradil211/AetherSearch_DPO"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)
model.config.use_cache = True

Loading the checkpoint is only the first step. For end-to-end use, stop generation after each complete <search> request, execute it with your retriever, append the result as <information>, and resume generation. Stop when the model emits a complete <answer> span, and preserve the XML protocol exactly throughout the loop.

โš ๏ธ Limitations

  • โ€”DPO improves fit to the supplied preference pairs; it does not guarantee factual, supported, or safe outputs.
  • โ€”Preference labels include curated hard negatives and trajectory corrections, not human preference votes for every pair.
  • โ€”Retrieval quality, evidence validation, answer verification, and deployment safeguards remain the caller's responsibility.

๐Ÿ“œ Terms

No additional blanket license is asserted here. Review the Qwen2.5-3B-Instruct license, the AetherSearch SFT terms, and the AetherSearch DPO data attribution before redistribution or downstream use.


<div align="center">

Built for agentic search and retrieval-augmented reasoning. ๐Ÿ”Žโœจ

</div>