abhshkp's picture
Upload folder using huggingface_hub
959dfe5 verified
#!/usr/bin/env python3
"""Structured Data Position Bias — Master Runner"""
import argparse
import logging
import os
import sys
from experiments.json_retrieval import run_json_retrieval
from experiments.table_retrieval import run_table_retrieval
from experiments.log_file_retrieval import run_log_retrieval
from src.utils import save_json
logging.basicConfig(
format="%(asctime)s - %(levelname)s - %(message)s",
level=logging.INFO,
stream=sys.stdout,
)
logger = logging.getLogger(__name__)
def parse_args():
p = argparse.ArgumentParser(description="Structured Data Position Bias")
p.add_argument("--model", default="Qwen/Qwen2.5-1.5B-Instruct")
p.add_argument("--output", default="./results")
p.add_argument("--num-items", type=int, default=100)
p.add_argument("--num-examples", type=int, default=30)
return p.parse_args()
def main():
args = parse_args()
model = args.model
out_root = args.output
os.makedirs(out_root, exist_ok=True)
logger.info("\n--- Experiment 1: JSON Array Retrieval ---")
json_results = run_json_retrieval(
model, args.num_items, args.num_examples,
os.path.join(out_root, "exp1_json"),
)
logger.info("\n--- Experiment 2: Markdown Table Retrieval ---")
table_results = run_table_retrieval(
model, args.num_items, args.num_examples,
os.path.join(out_root, "exp2_table"),
)
logger.info("\n--- Experiment 3: Log File Retrieval ---")
log_results = run_log_retrieval(
model, args.num_items, args.num_examples,
os.path.join(out_root, "exp3_log"),
)
master = {
"json": json_results,
"table": table_results,
"log": log_results,
}
save_json(os.path.join(out_root, "master_summary.json"), master)
logger.info("\n--- Structured Data PBI Comparison ---")
for exp_name, res in master.items():
depths = list(res["depths"].keys())
accs = list(res["depths"].values())
if len(accs) >= 3:
mid_idx = len(accs) // 2
pbi = (accs[0] + accs[-1]) / 2 - accs[mid_idx]
logger.info(f" {exp_name:10s} PBI={pbi:+.3f}")
if __name__ == "__main__":
main()