Web Analytics

s3

⭐ 731 stars Italian by pat-jj

🌐 Lingua

s3 - Addestramento Efficiente ed Efficace di Agenti di Ricerca tramite RL

Non serve così tanti dati per addestrare un agente di ricerca

arXiv

Panoramica delle prestazioni:

performance_overview

Cos'è s3?

framework

s3 Framework

s3 è un framework semplice ma potente per l’addestramento di agenti di ricerca nella generazione aumentata dal recupero (RAG). Insegna ai modelli linguistici come cercare in modo più efficace—senza modificare il generatore stesso. Concentrandosi esclusivamente sulla componente di ricerca, s3 ottiene prestazioni elevate nei task di QA usando solo una frazione dei dati richiesti dai metodi precedenti. È modulare, efficiente e progettato per funzionare perfettamente con qualsiasi LLM black-box.

Indice

📦 Installazione

Ambiente Searcher & Generator

conda create -n s3 python=3.9

install torch [or you can skip this step and let vllm to install the correct version for you]

pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu121

install vllm

pip3 install vllm==0.6.3 # or you can install 0.5.4, 0.4.2 and 0.3.1 pip3 install ray

verl

cd code

pip install -e .

flash attention 2

pip3 install flash-attn --no-build-isolation

we use pyserini for efficient retrieval and evaluation

pip install pyserini # the version we used is 0.22.1

quality of life

pip install wandb IPython matplotlib huggingface_hub
Ambiente Retriever

conda create -n ret python=3.10
conda activate ret

conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.1 -c pytorch -c nvidia pip install transformers datasets pyserini conda install -c pytorch -c nvidia faiss-gpu=1.8.0 pip install uvicorn fastapi

💡 Preparazione

Scarica Indice e Corpus

python scripts/download.py --save_path $save_path
cat $save_path/part_* > $save_path/e5_Flat.index
gzip -d $save_path/wiki-18.jsonl.gz

Precomputazione Inizializzazione RAG Naïve (oppure puoi scaricare i nostri dati elaborati qui: huggingface)

# deploy retriever
bash scripts/deploy_retriever/retrieval_launch.sh # or scripts/deploy_retriever/retrieval_launch_mirage.sh for MedCorp corpus.

deploy generator

bash generator_llms/host.sh # modify tensor-parallel-size to the number of GPUs you use

run precompute

bash scripts/precompute.sh # this step will take a while, as it will precompute the naïve RAG Cache for training

🏋️ Avvia l'Addestramento

Questo passaggio riguarda l'addestramento di S3

# deploy retriever
bash scripts/deploy_retriever/retrieval_launch.sh 

deploy generator

bash generator_llms/host.sh

run training

bash scripts/train/train_s3.sh

🔍 Esegui Ricerca/Recupero

Questo passaggio serve per la raccolta del contesto di s3 / baseline

s3

# deploy retriever
bash scripts/deploy_retriever/retrieval_launch.sh 

run s3 inference

bash scripts/s3_inference/evaluate-8-3-3.sh
Baseline

RAG

bash scripts/deploy_retriever/retrieval_launch.sh # or retrieval_launch_bm25.sh # deploy retriever
bash scripts/baselines/rag.sh # run RAG 
DeepRetrieval DeepRetrieval
bash retrieval_launch_bm25.sh # deploy BM25 Model
bash generator_llms/deepretrieval.sh # deploy DeepRetrieval Model
bash scripts/baselines/deepretrieval.sh # run DeepRetrieval Query Rewriting + Retrieval
Ricerca-R1

bash retrieval_launch.sh # deploy e5 retriever
bash scripts/baselines/search_r1.sh # run Search-R1
IRCoT

bash retrieval_launch.sh # deploy e5 retriever
python scripts/baselines/ircot.py
Ricerca-o1

bash retrieval_launch.sh # deploy e5 retriever
bash scripts/baselines/search_o1.sh # run Search-o1

📈 Esegui Valutazione

Questo passaggio è per la valutazione di s3 / baselines

bash scripts/evaluation/run.sh

Domande e Risposte

Dati Personalizzati?

Se desideri testare s3 sul tuo corpus/dataset, puoi fare riferimento a questa commit per vedere cosa è necessario fare per costruire la tua pipeline: commit 8420538

Riproduzione dei Risultati?

Diversi sviluppatori hanno già riprodotto con successo i nostri risultati. Se hai domande o incontri problemi, sentiti libero di aprire una issue — siamo felici di offrire supporto pratico (vedi questo esempio).

Sebbene riprodurre il modello da soli sia semplice — e in realtà raccomandiamo di allenare da zero, poiché la valutazione spesso richiede molto più tempo dell’addestramento — forniamo anche un checkpoint di riferimento: s3-8-3-3-20steps, addestrato in circa un’ora.

Ringraziamenti

Vorremmo ringraziare i seguenti progetti: verl, RAGEN, Search-R1, DeepRetrieval, PySerini.

Citazione

@article{jiang2025s3,
  title={s3: You Don't Need That Much Data to Train a Search Agent via RL},
  author={Jiang, Pengcheng and Xu, Xueqiang and Lin, Jiacheng and Xiao, Jinfeng and Wang, Zifeng and Sun, Jimeng and Han, Jiawei},
  journal={arXiv preprint arXiv:2505.14146},
  year={2025}
}
Grazie per il tuo interesse nel nostro lavoro!

--- Tranlated By Open Ai Tx | Last indexed: 2025-10-06 ---