in src/fmeval/eval_algorithms/qa_accuracy.py [0:0]
def __init__(self, eval_algorithm_config: QAAccuracyConfig = QAAccuracyConfig()):
"""QAAccuracy initializer.
:param eval_algorithm_config: QA Accuracy evaluation algorithm config.
"""
super().__init__(eval_algorithm_config)
self.bertscore_model = BertscoreHelperModel(eval_algorithm_config.model_type_for_bertscore)
# Saving QAAccuracyScores in the original self.transform
self.transform = QAAccuracyScores(target_output_delimiter=eval_algorithm_config.target_output_delimiter)
self.split_transform = SplitWithDelimiter(
input_key=DatasetColumns.TARGET_OUTPUT.value.name,
output_key=POSSIBLE_TARGETS,
target_output_delimiter=eval_algorithm_config.target_output_delimiter,
)
self.bert_scores = BertScore(
target_output_keys=None,
model_output_keys=[DatasetColumns.MODEL_OUTPUT.value.name],
output_keys=[BERT_SCORE],
allow_duplicate_input_keys=True,
target_output_keys_provider=POSSIBLE_TARGETS,
bertscore_model=self.bertscore_model,
)
self._eval_algorithm_config = eval_algorithm_config
self.pipeline = TransformPipeline([self.transform, self.split_transform, self.bert_scores])