MCPcopy Create free account
hub / github.com/InternScience/SpectrumLab / evaluate

Method evaluate

spectrumlab/evaluator/open_evaluator.py:128–178  ·  view source on GitHub ↗

两阶段评测:先用被测模型生成答案,再用评分模型打分。 支持 score_model 参数。

(
        self,
        data_items,
        model,
        max_out_len=512,
        batch_size=None,
        save_path="./eval_results",
        score_model=None,
    )

Source from the content-addressed store, hash-verified

126 return prediction >= 0.5
127
128 def evaluate(
129 self,
130 data_items,
131 model,
132 max_out_len=512,
133 batch_size=None,
134 save_path="./eval_results",
135 score_model=None,
136 ):
137 """
138 两阶段评测:先用被测模型生成答案,再用评分模型打分。
139 支持 score_model 参数。
140 """
141 score_model = score_model or self.score_model
142 results = []
143 print("🚀 Running model inference...")
144 model_outputs = []
145 # 1. 让被测模型生成答案(带进度条)
146 for item in tqdm(data_items, desc="Generating responses", unit="item"):
147 prompt = self._build_prompt(item)
148 model_output = model.generate(prompt, max_out_len)
149 model_outputs.append(model_output)
150 # 2. 评分阶段(带进度条)
151 print("📝 Running scoring model...")
152 for item, model_output in tqdm(
153 zip(data_items, model_outputs),
154 total=len(data_items),
155 desc="Scoring responses",
156 unit="item",
157 ):
158 score_prompt = self._build_score_prompt(item, model_output)
159 score_response = score_model.generate(score_prompt, max_out_len)
160 score = self._extract_prediction(score_response, item)
161 # 3. 保存所有信息
162 item_result = item.copy()
163 item_result[self.prediction_key] = score
164 item_result["model_output"] = model_output
165 item_result["score_response"] = score_response
166 item_result["pass"] = self._calculate_accuracy(
167 item.get("answer", ""), score, item
168 )
169 results.append(item_result)
170 # 4. 保存和统计
171 saved_files = self._save_results(results, save_path)
172 metrics = self._calculate_metrics(results)
173 self._print_results(metrics)
174 return {
175 "metrics": metrics,
176 "saved_files": saved_files,
177 "total_items": len(results),
178 }

Callers

nothing calls this directly

Calls 8

_build_promptMethod · 0.95
_build_score_promptMethod · 0.95
_extract_predictionMethod · 0.95
_calculate_accuracyMethod · 0.95
_save_resultsMethod · 0.80
_calculate_metricsMethod · 0.80
_print_resultsMethod · 0.80
generateMethod · 0.45

Tested by

no test coverage detected