Skip to content

Commit 720cea4

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
fix: Fix deepcopy for RubricGenerationConfig in RubricBasedMetric.
The `GenerativeModel` instance within `RubricGenerationConfig` cannot be deepcopied directly. This change introduces a helper function to safely deepcopy the configuration by temporarily setting the `model` attribute to `None` before deepcopying and restoring it afterwards. PiperOrigin-RevId: 804266957
1 parent 74e3f25 commit 720cea4

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

vertexai/preview/evaluation/_evaluation.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,24 @@ def _get_rubric_metric_with_idx(
10191019
return None
10201020

10211021

1022+
def _safe_deepcopy_rubric_generation_config(
1023+
generation_config: metrics_base.RubricGenerationConfig,
1024+
) -> metrics_base.RubricGenerationConfig:
1025+
"""Safely deepcopies the rubric generation config of RubricBasedMetric."""
1026+
copied_generation_config = None
1027+
1028+
if generation_config:
1029+
generation_config_model = generation_config.model
1030+
# Cannot deepcopy instance of GenerativeModel due to its cygrpc.Channel
1031+
generation_config.model = None
1032+
copied_generation_config = copy.deepcopy(generation_config)
1033+
1034+
if generation_config_model:
1035+
copied_generation_config.model = generation_config_model
1036+
1037+
return copied_generation_config
1038+
1039+
10221040
def evaluate(
10231041
dataset: "pd.DataFrame",
10241042
metrics: List[Union[str, metrics_base._Metric]],
@@ -1095,7 +1113,9 @@ def evaluate(
10951113
elif isinstance(metric, rubric_based_metric.RubricBasedMetric):
10961114
copied_metrics.append(
10971115
rubric_based_metric.RubricBasedMetric(
1098-
generation_config=copy.deepcopy(metric.generation_config),
1116+
generation_config=_safe_deepcopy_rubric_generation_config(
1117+
metric.generation_config,
1118+
),
10991119
critique_metric=copy.deepcopy(metric.critique_metric),
11001120
)
11011121
)

0 commit comments

Comments
 (0)