Skip to content

Commit 9a9bb1b

Browse files
committed
log best optimization id
1 parent ca6d8e6 commit 9a9bb1b

File tree

2 files changed

+4
-11
lines changed

2 files changed

+4
-11
lines changed

codeflash/api/aiservice.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ def log_results( # noqa: D417
286286
optimized_runtime: dict[str, float | None] | None,
287287
is_correct: dict[str, bool] | None,
288288
optimized_line_profiler_results: dict[str, str] | None,
289+
metadata: dict[str, any] | None,
289290
) -> None:
290291
"""Log features to the database.
291292
@@ -297,7 +298,7 @@ def log_results( # noqa: D417
297298
- optimized_runtime (Optional[Dict[str, float]]): The optimized runtime.
298299
- is_correct (Optional[Dict[str, bool]]): Whether the optimized code is correct.
299300
- optimized_line_profiler_results: line_profiler results for every candidate mapped to their optimization_id
300-
301+
- metadata: contains the best optimization id
301302
"""
302303
payload = {
303304
"trace_id": function_trace_id,
@@ -307,6 +308,7 @@ def log_results( # noqa: D417
307308
"is_correct": is_correct,
308309
"codeflash_version": codeflash_version,
309310
"optimized_line_profiler_results": optimized_line_profiler_results,
311+
"metadata": metadata,
310312
}
311313
try:
312314
self.make_ai_service_request("/log_features", payload=payload, timeout=5)

codeflash/optimization/function_optimizer.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -556,14 +556,8 @@ def determine_best_candidate(
556556
original_code_baseline=original_code_baseline,
557557
code_context=code_context,
558558
trace_id=trace_id,
559-
experiment_metadata=ExperimentMetadata(
560-
id=self.experiment_id, group="control" if exp_type == "EXP0" else "experiment"
561-
)
562-
if self.experiment_id
563-
else None,
564559
ai_service_client=ai_service_client,
565560
executor=executor,
566-
fto_name=self.function_to_optimize.qualified_name,
567561
)
568562
candidates.extend(refinement_response)
569563
print("Added candidates from refinement")
@@ -599,6 +593,7 @@ def determine_best_candidate(
599593
optimized_runtime=optimized_runtimes,
600594
is_correct=is_correct,
601595
optimized_line_profiler_results=optimized_line_profiler_results,
596+
metadata={"best_optimization_id": best_optimization.candidate.optimization_id}
602597
)
603598
return best_optimization
604599

@@ -608,10 +603,8 @@ def refine_optimizations(
608603
original_code_baseline: OriginalCodeBaseline,
609604
code_context: CodeOptimizationContext,
610605
trace_id: str,
611-
experiment_metadata: ExperimentMetadata | None,
612606
ai_service_client: AiServiceClient,
613607
executor: concurrent.futures.ThreadPoolExecutor,
614-
fto_name: str,
615608
) -> list[OptimizedCandidate]:
616609
request = [
617610
AIServiceRefinerRequest(
@@ -626,8 +619,6 @@ def refine_optimizations(
626619
trace_id=trace_id,
627620
original_line_profiler_results=original_code_baseline.line_profile_results["str_out"],
628621
optimized_line_profiler_results=opt.line_profiler_test_results["str_out"],
629-
experiment_metadata=experiment_metadata,
630-
fto_name=fto_name,
631622
)
632623
for opt in valid_optimizations
633624
] # TODO: multiple workers for this?

0 commit comments

Comments
 (0)