chore: import upstream snapshot with attribution
OSV-Scanner (Scheduled) / scan-scheduled (push) Failing after 0s
Create Release / test-gate (push) Has been cancelled
Create Release / release-gate (push) Has been cancelled
Create Release / ci-gate (push) Has been cancelled
Create Release / version-check (push) Has been cancelled
Create Release / e2e-test-gate (push) Has been cancelled
Create Release / responsive-test-gate (push) Has been cancelled
Create Release / compat-test-gate (push) Has been cancelled
Create Release / compose-integration-gate (push) Has been cancelled
Create Release / vulture-gate (push) Has been cancelled
Create Release / build (push) Has been cancelled
Create Release / provenance (push) Has been cancelled
Create Release / prerelease-docker (push) Has been cancelled
Create Release / publish-docker (push) Has been cancelled
Create Release / create-release (push) Has been cancelled
Create Release / cleanup-changelog (push) Has been cancelled
Create Release / trigger-pypi (push) Has been cancelled
Create Release / monitor-pypi (push) Has been cancelled
Create Release / Clean up orphan prerelease tags and signatures (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-form] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-metrics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-workflow] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-core] (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [history-news] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [library] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [link-analytics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-core] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-lifecycle] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [error-benchmark] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) (push) Has been cancelled
Docker Tests (Consolidated) / Accessibility Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Unit Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Example Tests (push) Has been cancelled
Docker Tests (Consolidated) / Production Image Smoke Test (push) Has been cancelled
Docker Tests (Consolidated) / Infrastructure Tests (push) Has been cancelled
OSSF Scorecard / OSSF Security Scorecard Analysis (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [mobile] (push) Has been cancelled
Backwards Compatibility / Verify Encryption Constants (push) Has been cancelled
Backwards Compatibility / PyPI Version Compatibility (push) Has been cancelled
Backwards Compatibility / Database Migration Tests (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Docker Tests (Consolidated) / detect-changes (push) Has been cancelled
Docker Tests (Consolidated) / Build Test Image (push) Has been cancelled
Docker Tests (Consolidated) / All Pytest Tests + Coverage (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [accessibility] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [api-crud] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-login] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-register] (push) Has been cancelled
OSV-Scanner (Scheduled) / scan-scheduled (push) Failing after 0s
Create Release / test-gate (push) Has been cancelled
Create Release / release-gate (push) Has been cancelled
Create Release / ci-gate (push) Has been cancelled
Create Release / version-check (push) Has been cancelled
Create Release / e2e-test-gate (push) Has been cancelled
Create Release / responsive-test-gate (push) Has been cancelled
Create Release / compat-test-gate (push) Has been cancelled
Create Release / compose-integration-gate (push) Has been cancelled
Create Release / vulture-gate (push) Has been cancelled
Create Release / build (push) Has been cancelled
Create Release / provenance (push) Has been cancelled
Create Release / prerelease-docker (push) Has been cancelled
Create Release / publish-docker (push) Has been cancelled
Create Release / create-release (push) Has been cancelled
Create Release / cleanup-changelog (push) Has been cancelled
Create Release / trigger-pypi (push) Has been cancelled
Create Release / monitor-pypi (push) Has been cancelled
Create Release / Clean up orphan prerelease tags and signatures (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-form] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-metrics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-workflow] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-core] (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [history-news] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [library] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [link-analytics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-core] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-lifecycle] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [error-benchmark] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) (push) Has been cancelled
Docker Tests (Consolidated) / Accessibility Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Unit Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Example Tests (push) Has been cancelled
Docker Tests (Consolidated) / Production Image Smoke Test (push) Has been cancelled
Docker Tests (Consolidated) / Infrastructure Tests (push) Has been cancelled
OSSF Scorecard / OSSF Security Scorecard Analysis (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [mobile] (push) Has been cancelled
Backwards Compatibility / Verify Encryption Constants (push) Has been cancelled
Backwards Compatibility / PyPI Version Compatibility (push) Has been cancelled
Backwards Compatibility / Database Migration Tests (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Docker Tests (Consolidated) / detect-changes (push) Has been cancelled
Docker Tests (Consolidated) / Build Test Image (push) Has been cancelled
Docker Tests (Consolidated) / All Pytest Tests + Coverage (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [accessibility] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [api-crud] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-login] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-register] (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,281 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Multi-benchmark optimization with speed metrics demonstration.
|
||||
|
||||
This script shows how the multi-benchmark API can be used with speed optimization
|
||||
without actually running the benchmarks (simulation only).
|
||||
|
||||
Usage:
|
||||
# Run from project root with venv activated
|
||||
cd /path/to/local-deep-research
|
||||
source .venv/bin/activate
|
||||
cd src
|
||||
python ../examples/optimization/multi_benchmark_speed_demo.py
|
||||
"""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict
|
||||
|
||||
# Add src directory to Python path
|
||||
src_dir = str((Path(__file__).parent.parent / "src").resolve())
|
||||
if src_dir not in sys.path:
|
||||
sys.path.insert(0, src_dir)
|
||||
|
||||
|
||||
class SimulatedBenchmarkEvaluator:
|
||||
"""Simulated benchmark evaluator that doesn't run actual benchmarks."""
|
||||
|
||||
def __init__(self, name, quality_score=0.75, speed_score=0.65):
|
||||
self.name = name
|
||||
self.quality_score = quality_score
|
||||
self.speed_score = speed_score
|
||||
|
||||
def evaluate(self, system_config, num_examples=1, output_dir=None):
|
||||
"""Simulate benchmark evaluation with predefined scores."""
|
||||
print(f"[SIM] Running {self.name} benchmark simulation...")
|
||||
print(f"[SIM] System config: {system_config}")
|
||||
|
||||
# Return simulated results
|
||||
return {
|
||||
"quality_score": self.quality_score,
|
||||
"speed_score": self.speed_score,
|
||||
"component_timing": {
|
||||
"search": 0.5,
|
||||
"processing": 0.3,
|
||||
"llm": 1.2,
|
||||
"total": 2.0,
|
||||
},
|
||||
"resource_usage": {"memory_mb": 500, "cpu_percent": 30},
|
||||
}
|
||||
|
||||
|
||||
class SimulatedCompositeBenchmarkEvaluator:
|
||||
"""Simulated composite benchmark evaluator that combines multiple benchmarks."""
|
||||
|
||||
def __init__(self, benchmark_weights=None):
|
||||
self.benchmark_weights = benchmark_weights or {"simpleqa": 1.0}
|
||||
print(
|
||||
f"[SIM] Created composite evaluator with weights: {self.benchmark_weights}"
|
||||
)
|
||||
|
||||
# Normalize weights
|
||||
total = sum(self.benchmark_weights.values())
|
||||
self.normalized_weights = {
|
||||
k: v / total for k, v in self.benchmark_weights.items()
|
||||
}
|
||||
print(f"[SIM] Normalized weights: {self.normalized_weights}")
|
||||
|
||||
# Create evaluators with slightly different characteristics
|
||||
self.evaluators = {
|
||||
"simpleqa": SimulatedBenchmarkEvaluator(
|
||||
"SimpleQA", quality_score=0.80, speed_score=0.70
|
||||
),
|
||||
"browsecomp": SimulatedBenchmarkEvaluator(
|
||||
"BrowseComp", quality_score=0.85, speed_score=0.60
|
||||
),
|
||||
}
|
||||
|
||||
def evaluate(self, system_config, num_examples=1, output_dir=None):
|
||||
"""Run evaluation for all benchmarks with weights."""
|
||||
print(
|
||||
f"[SIM] Running composite evaluation with {num_examples} examples"
|
||||
)
|
||||
|
||||
# Run each benchmark
|
||||
benchmark_results = {}
|
||||
for name, evaluator in self.evaluators.items():
|
||||
if name in self.benchmark_weights:
|
||||
benchmark_results[name] = evaluator.evaluate(
|
||||
system_config, num_examples, output_dir
|
||||
)
|
||||
|
||||
# Calculate combined quality score
|
||||
quality_score = sum(
|
||||
self.normalized_weights[name] * results["quality_score"]
|
||||
for name, results in benchmark_results.items()
|
||||
)
|
||||
|
||||
# Calculate combined speed score
|
||||
speed_score = sum(
|
||||
self.normalized_weights[name] * results["speed_score"]
|
||||
for name, results in benchmark_results.items()
|
||||
)
|
||||
|
||||
return {
|
||||
"quality_score": quality_score,
|
||||
"speed_score": speed_score,
|
||||
"benchmark_weights": self.benchmark_weights,
|
||||
"benchmark_results": benchmark_results,
|
||||
}
|
||||
|
||||
|
||||
class SimulatedOptimizer:
|
||||
"""Simulated optimizer that demonstrates the API structure without running actual optimization."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
base_query: str = "Example query",
|
||||
output_dir: str = "./results",
|
||||
metric_weights: Dict[str, float] = None,
|
||||
benchmark_weights: Dict[str, float] = None,
|
||||
):
|
||||
self.base_query = base_query
|
||||
self.output_dir = output_dir
|
||||
self.metric_weights = metric_weights or {"quality": 0.6, "speed": 0.4}
|
||||
self.benchmark_weights = benchmark_weights or {"simpleqa": 1.0}
|
||||
|
||||
# Create evaluator
|
||||
self.evaluator = SimulatedCompositeBenchmarkEvaluator(
|
||||
self.benchmark_weights
|
||||
)
|
||||
|
||||
print("[SIM] Created optimizer with:")
|
||||
print(f"[SIM] - Metric weights: {self.metric_weights}")
|
||||
print(f"[SIM] - Benchmark weights: {self.benchmark_weights}")
|
||||
|
||||
def optimize(self, param_space=None):
|
||||
"""Simulate optimization process."""
|
||||
# Simulate a few trials
|
||||
print("[SIM] Running optimization with parameter space:", param_space)
|
||||
print("[SIM] Using metric weights:", self.metric_weights)
|
||||
|
||||
# Simulate trials
|
||||
trials = [
|
||||
{"iterations": 1, "search_strategy": "rapid"},
|
||||
{"iterations": 2, "search_strategy": "standard"},
|
||||
{"iterations": 3, "search_strategy": "iterdrag"},
|
||||
]
|
||||
|
||||
# Simulate scores based on trials and weights
|
||||
trial_scores = []
|
||||
for trial in trials:
|
||||
# Get benchmark scores
|
||||
results = self.evaluator.evaluate(trial, num_examples=1)
|
||||
|
||||
# Calculate combined score based on metric weights
|
||||
combined_score = (
|
||||
self.metric_weights.get("quality", 0) * results["quality_score"]
|
||||
+ self.metric_weights.get("speed", 0) * results["speed_score"]
|
||||
)
|
||||
|
||||
trial_scores.append((trial, combined_score))
|
||||
print(f"[SIM] Trial {trial}: Score {combined_score:.4f}")
|
||||
|
||||
# Return best parameters and score
|
||||
best_trial, best_score = max(trial_scores, key=lambda x: x[1])
|
||||
print(f"[SIM] Best trial: {best_trial} with score {best_score:.4f}")
|
||||
|
||||
return best_trial, best_score
|
||||
|
||||
|
||||
def optimize_for_quality(
|
||||
query: str, benchmark_weights: Dict[str, float] = None
|
||||
):
|
||||
"""Simulate quality-focused optimization."""
|
||||
print("\n🔍 Simulating quality-focused optimization...")
|
||||
|
||||
# Quality-focused weights: 90% quality, 10% speed
|
||||
metric_weights = {"quality": 0.9, "speed": 0.1}
|
||||
|
||||
optimizer = SimulatedOptimizer(
|
||||
base_query=query,
|
||||
metric_weights=metric_weights,
|
||||
benchmark_weights=benchmark_weights,
|
||||
)
|
||||
|
||||
return optimizer.optimize()
|
||||
|
||||
|
||||
def optimize_for_speed(query: str, benchmark_weights: Dict[str, float] = None):
|
||||
"""Simulate speed-focused optimization."""
|
||||
print("\n🔍 Simulating speed-focused optimization...")
|
||||
|
||||
# Speed-focused weights: 20% quality, 80% speed
|
||||
metric_weights = {"quality": 0.2, "speed": 0.8}
|
||||
|
||||
optimizer = SimulatedOptimizer(
|
||||
base_query=query,
|
||||
metric_weights=metric_weights,
|
||||
benchmark_weights=benchmark_weights,
|
||||
)
|
||||
|
||||
return optimizer.optimize()
|
||||
|
||||
|
||||
def optimize_for_efficiency(
|
||||
query: str, benchmark_weights: Dict[str, float] = None
|
||||
):
|
||||
"""Simulate efficiency-focused optimization."""
|
||||
print("\n🔍 Simulating efficiency-focused optimization...")
|
||||
|
||||
# Balanced weights: 40% quality, 30% speed, 30% resource
|
||||
metric_weights = {"quality": 0.4, "speed": 0.3, "resource": 0.3}
|
||||
|
||||
optimizer = SimulatedOptimizer(
|
||||
base_query=query,
|
||||
metric_weights=metric_weights,
|
||||
benchmark_weights=benchmark_weights,
|
||||
)
|
||||
|
||||
return optimizer.optimize()
|
||||
|
||||
|
||||
def print_optimization_results(params: Dict[str, Any], score: float):
|
||||
"""Print optimization results in a nicely formatted way."""
|
||||
print("\n" + "=" * 50)
|
||||
print(" OPTIMIZATION RESULTS ")
|
||||
print("=" * 50)
|
||||
print(f"SCORE: {score:.4f}")
|
||||
print("\nBest Parameters:")
|
||||
for param, value in params.items():
|
||||
print(f" {param}: {value}")
|
||||
print("=" * 50 + "\n")
|
||||
|
||||
|
||||
def main():
|
||||
"""Run simulated multi-benchmark optimization examples."""
|
||||
query = "Fusion energy research developments"
|
||||
|
||||
# Run 1: SimpleQA benchmark only with quality focus
|
||||
print("\n🔬 DEMO: SimpleQA-only optimization (quality focus)")
|
||||
params1, score1 = optimize_for_quality(
|
||||
query=query, benchmark_weights={"simpleqa": 1.0}
|
||||
)
|
||||
print_optimization_results(params1, score1)
|
||||
|
||||
# Run 2: BrowseComp benchmark only with quality focus
|
||||
print("\n🔬 DEMO: BrowseComp-only optimization (quality focus)")
|
||||
params2, score2 = optimize_for_quality(
|
||||
query=query, benchmark_weights={"browsecomp": 1.0}
|
||||
)
|
||||
print_optimization_results(params2, score2)
|
||||
|
||||
# Run 3: Combined benchmarks with quality focus
|
||||
print("\n🔬 DEMO: Combined benchmarks with weights (quality focus)")
|
||||
params3, score3 = optimize_for_quality(
|
||||
query=query, benchmark_weights={"simpleqa": 0.6, "browsecomp": 0.4}
|
||||
)
|
||||
print_optimization_results(params3, score3)
|
||||
|
||||
# Run 4: Combined benchmarks with speed focus
|
||||
print("\n🔬 DEMO: Combined benchmarks with weights (speed focus)")
|
||||
params4, score4 = optimize_for_speed(
|
||||
query=query, benchmark_weights={"simpleqa": 0.6, "browsecomp": 0.4}
|
||||
)
|
||||
print_optimization_results(params4, score4)
|
||||
print("Speed metrics weighting: Quality (20%), Speed (80%)")
|
||||
|
||||
# Run 5: Combined benchmarks with efficiency focus
|
||||
print("\n🔬 DEMO: Combined benchmarks with weights (efficiency focus)")
|
||||
params5, score5 = optimize_for_efficiency(
|
||||
query=query, benchmark_weights={"simpleqa": 0.6, "browsecomp": 0.4}
|
||||
)
|
||||
print_optimization_results(params5, score5)
|
||||
print(
|
||||
"Efficiency metrics weighting: Quality (40%), Speed (30%), Resource (30%)"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user