tarzanagh commited on
Commit
6f1f63d
·
verified ·
1 Parent(s): 16fab3d

Update experiments: rename imports

Browse files
experiments/edge_weight_ablation.py CHANGED
@@ -27,7 +27,7 @@ _project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
27
  sys.path.insert(0, _project_root)
28
 
29
  import types as _types
30
- for _pkg_path in ["src", "src.retrievers", "src.hipporag_pipeline"]:
31
  if _pkg_path not in sys.modules:
32
  _m = _types.ModuleType(_pkg_path)
33
  _m.__path__ = [os.path.join(_project_root, *_pkg_path.split("."))]
@@ -46,14 +46,14 @@ _src = os.path.join(_project_root, "src")
46
  _load_mod("src.retrievers.base", os.path.join(_src, "retrievers", "base.py"))
47
  _load_mod("src.retrievers.flow_diffusion", os.path.join(_src, "retrievers", "flow_diffusion.py"))
48
 
49
- from src.hipporag_pipeline.config import HippoRAGConfig
50
- from src.hipporag_pipeline.embedding_store import EmbeddingModelWrapper
51
- from src.hipporag_pipeline.kg_builder import KGBuilder
52
- from src.hipporag_pipeline.openie import OpenIE
53
- from src.hipporag_pipeline.reranker import FactReranker
54
- from src.hipporag_pipeline.retriever import HippoRAGRetriever
55
- from src.hipporag_pipeline.graph_adapter import run_igraph_qafd
56
- from src.hipporag_pipeline.benchmark_runner import (
57
  get_gold_docs, get_gold_answers, recall_at_k,
58
  exact_match, f1_score, run_qa, _openai_embed, _openai_complete,
59
  )
@@ -69,7 +69,7 @@ def load_everything(dataset="musique", num_queries=10):
69
  """Load KG, embeddings, data — once for all experiments."""
70
  api_key = os.environ.get("OPENAI_API_KEY", "")
71
 
72
- config = HippoRAGConfig(
73
  llm_model="gpt-4o-mini",
74
  embedding_model_key="openai-small",
75
  dataset=dataset,
@@ -110,7 +110,7 @@ def load_everything(dataset="musique", num_queries=10):
110
 
111
  # Build retriever
112
  reranker = FactReranker(llm_func)
113
- retriever = HippoRAGRetriever(
114
  config=config,
115
  embedding_model=embedding_model,
116
  reranker=reranker,
@@ -126,7 +126,7 @@ def load_everything(dataset="musique", num_queries=10):
126
 
127
 
128
  def run_retrieval_with_params(
129
- retriever: HippoRAGRetriever,
130
  queries: List[str],
131
  gold_docs: List[List[str]],
132
  gold_answers,
@@ -136,7 +136,7 @@ def run_retrieval_with_params(
136
  query_aware: bool = True,
137
  ) -> Dict:
138
  """Run retrieval with specific edge weight params. Returns metrics dict."""
139
- from src.hipporag_pipeline.utils import compute_mdhash_id, min_max_normalize
140
 
141
  retriever._encode_queries(queries)
142
  k_list = [1, 2, 5, 10, 20, 50, 100, 200]
 
27
  sys.path.insert(0, _project_root)
28
 
29
  import types as _types
30
+ for _pkg_path in ["src", "src.retrievers", "src.passage_entity"]:
31
  if _pkg_path not in sys.modules:
32
  _m = _types.ModuleType(_pkg_path)
33
  _m.__path__ = [os.path.join(_project_root, *_pkg_path.split("."))]
 
46
  _load_mod("src.retrievers.base", os.path.join(_src, "retrievers", "base.py"))
47
  _load_mod("src.retrievers.flow_diffusion", os.path.join(_src, "retrievers", "flow_diffusion.py"))
48
 
49
+ from src.passage_entity.config import PassageEntityConfig
50
+ from src.passage_entity.embedding_store import EmbeddingModelWrapper
51
+ from src.passage_entity.kg_builder import KGBuilder
52
+ from src.passage_entity.openie import OpenIE
53
+ from src.passage_entity.reranker import FactReranker
54
+ from src.passage_entity.retriever import PassageEntityRetriever
55
+ from src.passage_entity.graph_adapter import run_igraph_qafd
56
+ from src.passage_entity.benchmark_runner import (
57
  get_gold_docs, get_gold_answers, recall_at_k,
58
  exact_match, f1_score, run_qa, _openai_embed, _openai_complete,
59
  )
 
69
  """Load KG, embeddings, data — once for all experiments."""
70
  api_key = os.environ.get("OPENAI_API_KEY", "")
71
 
72
+ config = PassageEntityConfig(
73
  llm_model="gpt-4o-mini",
74
  embedding_model_key="openai-small",
75
  dataset=dataset,
 
110
 
111
  # Build retriever
112
  reranker = FactReranker(llm_func)
113
+ retriever = PassageEntityRetriever(
114
  config=config,
115
  embedding_model=embedding_model,
116
  reranker=reranker,
 
126
 
127
 
128
  def run_retrieval_with_params(
129
+ retriever: PassageEntityRetriever,
130
  queries: List[str],
131
  gold_docs: List[List[str]],
132
  gold_answers,
 
136
  query_aware: bool = True,
137
  ) -> Dict:
138
  """Run retrieval with specific edge weight params. Returns metrics dict."""
139
+ from src.passage_entity.utils import compute_mdhash_id, min_max_normalize
140
 
141
  retriever._encode_queries(queries)
142
  k_list = [1, 2, 5, 10, 20, 50, 100, 200]
experiments/query_aware_ablation.py CHANGED
@@ -28,7 +28,7 @@ _project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
28
  sys.path.insert(0, _project_root)
29
 
30
  import types as _types
31
- for _pkg_path in ["src", "src.retrievers", "src.hipporag_pipeline"]:
32
  if _pkg_path not in sys.modules:
33
  _m = _types.ModuleType(_pkg_path)
34
  _m.__path__ = [os.path.join(_project_root, *_pkg_path.split("."))]
@@ -47,18 +47,18 @@ _src = os.path.join(_project_root, "src")
47
  _load_mod("src.retrievers.base", os.path.join(_src, "retrievers", "base.py"))
48
  _load_mod("src.retrievers.flow_diffusion", os.path.join(_src, "retrievers", "flow_diffusion.py"))
49
 
50
- from src.hipporag_pipeline.config import HippoRAGConfig
51
- from src.hipporag_pipeline.embedding_store import EmbeddingModelWrapper
52
- from src.hipporag_pipeline.kg_builder import KGBuilder
53
- from src.hipporag_pipeline.openie import OpenIE
54
- from src.hipporag_pipeline.reranker import FactReranker
55
- from src.hipporag_pipeline.retriever import HippoRAGRetriever
56
- from src.hipporag_pipeline.graph_adapter import IGraphQAFD
57
- from src.hipporag_pipeline.benchmark_runner import (
58
  get_gold_docs, get_gold_answers, recall_at_k,
59
  exact_match, f1_score, run_qa, _openai_embed, _openai_complete,
60
  )
61
- from src.hipporag_pipeline.utils import compute_mdhash_id, min_max_normalize
62
 
63
  logging.basicConfig(level=logging.WARNING)
64
 
@@ -69,7 +69,7 @@ logging.basicConfig(level=logging.WARNING)
69
 
70
  def load_dataset_and_kg(dataset="musique", num_queries=10):
71
  api_key = os.environ.get("OPENAI_API_KEY", "")
72
- config = HippoRAGConfig(
73
  llm_model="gpt-4o-mini",
74
  embedding_model_key="openai-small",
75
  dataset=dataset,
@@ -106,7 +106,7 @@ def load_dataset_and_kg(dataset="musique", num_queries=10):
106
  builder.index(docs)
107
 
108
  reranker = FactReranker(llm_func)
109
- retriever = HippoRAGRetriever(
110
  config=config, embedding_model=embedding_model, reranker=reranker,
111
  graph=builder.graph,
112
  chunk_embedding_store=builder.chunk_embedding_store,
@@ -133,7 +133,7 @@ def load_dataset_and_kg(dataset="musique", num_queries=10):
133
  # ===========================================================================
134
 
135
  def run_qafd_detailed(
136
- retriever: HippoRAGRetriever,
137
  query: str,
138
  gold_doc_set: set,
139
  alpha: float,
 
28
  sys.path.insert(0, _project_root)
29
 
30
  import types as _types
31
+ for _pkg_path in ["src", "src.retrievers", "src.passage_entity"]:
32
  if _pkg_path not in sys.modules:
33
  _m = _types.ModuleType(_pkg_path)
34
  _m.__path__ = [os.path.join(_project_root, *_pkg_path.split("."))]
 
47
  _load_mod("src.retrievers.base", os.path.join(_src, "retrievers", "base.py"))
48
  _load_mod("src.retrievers.flow_diffusion", os.path.join(_src, "retrievers", "flow_diffusion.py"))
49
 
50
+ from src.passage_entity.config import PassageEntityConfig
51
+ from src.passage_entity.embedding_store import EmbeddingModelWrapper
52
+ from src.passage_entity.kg_builder import KGBuilder
53
+ from src.passage_entity.openie import OpenIE
54
+ from src.passage_entity.reranker import FactReranker
55
+ from src.passage_entity.retriever import PassageEntityRetriever
56
+ from src.passage_entity.graph_adapter import IGraphQAFD
57
+ from src.passage_entity.benchmark_runner import (
58
  get_gold_docs, get_gold_answers, recall_at_k,
59
  exact_match, f1_score, run_qa, _openai_embed, _openai_complete,
60
  )
61
+ from src.passage_entity.utils import compute_mdhash_id, min_max_normalize
62
 
63
  logging.basicConfig(level=logging.WARNING)
64
 
 
69
 
70
  def load_dataset_and_kg(dataset="musique", num_queries=10):
71
  api_key = os.environ.get("OPENAI_API_KEY", "")
72
+ config = PassageEntityConfig(
73
  llm_model="gpt-4o-mini",
74
  embedding_model_key="openai-small",
75
  dataset=dataset,
 
106
  builder.index(docs)
107
 
108
  reranker = FactReranker(llm_func)
109
+ retriever = PassageEntityRetriever(
110
  config=config, embedding_model=embedding_model, reranker=reranker,
111
  graph=builder.graph,
112
  chunk_embedding_store=builder.chunk_embedding_store,
 
133
  # ===========================================================================
134
 
135
  def run_qafd_detailed(
136
+ retriever: PassageEntityRetriever,
137
  query: str,
138
  gold_doc_set: set,
139
  alpha: float,
experiments/run_all_ablations.sh CHANGED
@@ -4,7 +4,7 @@
4
 
5
  DATASET="musique"
6
  N=100
7
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --dataset $DATASET --num_queries $N --embedding_model openai-small --skip_qa"
8
 
9
  echo "======================================================================"
10
  echo " QAFD-RAG Query-Awareness Ablation (${DATASET}, ${N} queries)"
 
4
 
5
  DATASET="musique"
6
  N=100
7
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --dataset $DATASET --num_queries $N --embedding_model openai-small --skip_qa"
8
 
9
  echo "======================================================================"
10
  echo " QAFD-RAG Query-Awareness Ablation (${DATASET}, ${N} queries)"
experiments/run_alpha_qa_sweep.sh CHANGED
@@ -1,8 +1,8 @@
1
  #!/bin/bash
2
  # Alpha × QA sweep: find the sweet spot where decoupled QA edge weights help
3
- cd /home/davoud/QAFD-RAG
4
  N=100
5
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
6
 
7
  echo "======================================================================"
8
  echo " Alpha x Query-Awareness Sweep (decoupled push, $N queries)"
 
1
  #!/bin/bash
2
  # Alpha × QA sweep: find the sweet spot where decoupled QA edge weights help
3
+ cd "$(dirname "$0")/.."
4
  N=100
5
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
6
 
7
  echo "======================================================================"
8
  echo " Alpha x Query-Awareness Sweep (decoupled push, $N queries)"
experiments/run_batch_push_ablation.sh CHANGED
@@ -1,9 +1,9 @@
1
  #!/bin/bash
2
  # Batch push ablation: does batch push make edge weights matter?
3
  # Compare: single vs batch, agnostic vs aware
4
- cd /home/davoud/QAFD-RAG
5
  N=100
6
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
7
 
8
  echo "======================================================================"
9
  echo " Batch Push Ablation ($N queries per dataset)"
 
1
  #!/bin/bash
2
  # Batch push ablation: does batch push make edge weights matter?
3
  # Compare: single vs batch, agnostic vs aware
4
+ cd "$(dirname "$0")/.."
5
  N=100
6
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
7
 
8
  echo "======================================================================"
9
  echo " Batch Push Ablation ($N queries per dataset)"
experiments/run_batch_push_nvidia.sh CHANGED
@@ -1,9 +1,9 @@
1
  #!/bin/bash
2
  # Batch push sweep on nvidia KG (dense, 1.6M edges)
3
  # Goal: find config where QA-aware beats agnostic AND recall is high
4
- cd /home/davoud/QAFD-RAG
5
  N=100
6
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model nvidia-nv-embed-v2 --skip_qa"
7
  LOG=experiments/results/batch_push_nvidia.log
8
  mkdir -p experiments/results
9
  exec > >(tee -a $LOG) 2>&1
 
1
  #!/bin/bash
2
  # Batch push sweep on nvidia KG (dense, 1.6M edges)
3
  # Goal: find config where QA-aware beats agnostic AND recall is high
4
+ cd "$(dirname "$0")/.."
5
  N=100
6
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model nvidia-nv-embed-v2 --skip_qa"
7
  LOG=experiments/results/batch_push_nvidia.log
8
  mkdir -p experiments/results
9
  exec > >(tee -a $LOG) 2>&1
experiments/run_decoupled_ablation.sh CHANGED
@@ -1,9 +1,9 @@
1
  #!/bin/bash
2
  # Decoupled push ablation: does separating accumulation from routing
3
  # make query-aware edge weights effective?
4
- cd /home/davoud/QAFD-RAG
5
  N=100
6
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
7
 
8
  echo "======================================================================"
9
  echo " Decoupled Push Ablation ($N queries per dataset)"
 
1
  #!/bin/bash
2
  # Decoupled push ablation: does separating accumulation from routing
3
  # make query-aware edge weights effective?
4
+ cd "$(dirname "$0")/.."
5
  N=100
6
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
7
 
8
  echo "======================================================================"
9
  echo " Decoupled Push Ablation ($N queries per dataset)"
experiments/run_nvidia_qa_ablation.sh CHANGED
@@ -1,9 +1,9 @@
1
  #!/bin/bash
2
  # Query-awareness ablation on nvidia-nv-embed-v2 KGs (dense, 1.6M edges)
3
  # Tests: QA-aware vs agnostic, different alpha/epsilon settings
4
- cd /home/davoud/QAFD-RAG
5
  N=100
6
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model nvidia-nv-embed-v2 --skip_qa"
7
 
8
  echo "======================================================================"
9
  echo " Query-Awareness on nvidia KG (dense graph, $N queries)"
 
1
  #!/bin/bash
2
  # Query-awareness ablation on nvidia-nv-embed-v2 KGs (dense, 1.6M edges)
3
  # Tests: QA-aware vs agnostic, different alpha/epsilon settings
4
+ cd "$(dirname "$0")/.."
5
  N=100
6
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model nvidia-nv-embed-v2 --skip_qa"
7
 
8
  echo "======================================================================"
9
  echo " Query-Awareness on nvidia KG (dense graph, $N queries)"
experiments/run_overnight_qa_awareness.sh CHANGED
@@ -2,8 +2,8 @@
2
  # Overnight query-awareness experiments
3
  # Tests decoupled push with alpha=3: QA-aware vs agnostic
4
  # Across tasks, graph types, and embedding models
5
- cd /home/davoud/QAFD-RAG
6
- LOG=/home/davoud/QAFD-RAG/experiments/results/overnight_qa_awareness.log
7
  mkdir -p experiments/results
8
  exec > >(tee -a $LOG) 2>&1
9
  echo "======================================================================"
@@ -11,7 +11,7 @@ echo " Overnight Query-Awareness Experiments"
11
  echo " Started: $(date)"
12
  echo "======================================================================"
13
 
14
- BASE_PE="python src/hipporag_pipeline/benchmark_runner.py"
15
 
16
  # =====================================================================
17
  # 1. PASSAGE-ENTITY: Multihop with OpenAI embedding (100q, alpha=3)
 
2
  # Overnight query-awareness experiments
3
  # Tests decoupled push with alpha=3: QA-aware vs agnostic
4
  # Across tasks, graph types, and embedding models
5
+ cd "$(dirname "$0")/.."
6
+ LOG=./experiments/results/overnight_qa_awareness.log
7
  mkdir -p experiments/results
8
  exec > >(tee -a $LOG) 2>&1
9
  echo "======================================================================"
 
11
  echo " Started: $(date)"
12
  echo "======================================================================"
13
 
14
+ BASE_PE="python src/passage_entity/benchmark_runner.py"
15
 
16
  # =====================================================================
17
  # 1. PASSAGE-ENTITY: Multihop with OpenAI embedding (100q, alpha=3)
experiments/run_qa_awareness_v2.sh CHANGED
@@ -1,8 +1,8 @@
1
  #!/bin/bash
2
  # Query-Awareness Ablation V2: warm walk, accumulation, more steps
3
- cd /home/davoud/QAFD-RAG
4
  N=100
5
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
6
 
7
  echo "======================================================================"
8
  echo " Query-Awareness V2 Ablation ($N queries per dataset)"
 
1
  #!/bin/bash
2
  # Query-Awareness Ablation V2: warm walk, accumulation, more steps
3
+ cd "$(dirname "$0")/.."
4
  N=100
5
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
6
 
7
  echo "======================================================================"
8
  echo " Query-Awareness V2 Ablation ($N queries per dataset)"
experiments/run_sim_mode_ablation.sh CHANGED
@@ -2,9 +2,9 @@
2
  # Edge weight ablation: similarity contrast functions across 3 datasets
3
  # Tests whether sharper similarity contrast makes query-aware edge weights effective
4
 
5
- cd /home/davoud/QAFD-RAG
6
  N=100
7
- BASE="python src/hipporag_pipeline/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
8
 
9
  echo "======================================================================"
10
  echo " Similarity Mode Ablation ($N queries per dataset)"
 
2
  # Edge weight ablation: similarity contrast functions across 3 datasets
3
  # Tests whether sharper similarity contrast makes query-aware edge weights effective
4
 
5
+ cd "$(dirname "$0")/.."
6
  N=100
7
+ BASE="python src/passage_entity/benchmark_runner.py --task multihop --num_queries $N --embedding_model openai-small --skip_qa"
8
 
9
  echo "======================================================================"
10
  echo " Similarity Mode Ablation ($N queries per dataset)"