(model, max_seq_len, data_path, ntrain=-1, few_shot = True)
| 142 | return prompt |
| 143 | |
| 144 | def run_infer_eval(model, max_seq_len, data_path, ntrain=-1, few_shot = True): |
| 145 | |
| 146 | total_results = {} |
| 147 | for task in TASK_NAME_MAPPING.keys(): |
| 148 | |
| 149 | print('Testing %s ...' % task) |
| 150 | val_file_path = os.path.join(data_path, "val", f"{task}_val.csv") |
| 151 | val_df = pd.read_csv(val_file_path) |
| 152 | dev_file_path = os.path.join(data_path, "dev", f"{task}_dev.csv") |
| 153 | dev_df = pd.read_csv(dev_file_path) |
| 154 | few_shot_prompt = generate_few_shot_prompt(task, dev_df, ntrain) if few_shot else [] |
| 155 | |
| 156 | results = [] |
| 157 | for _, row in tqdm(val_df.iterrows(), total=len(val_df)): |
| 158 | prompt = format_example(row, include_answer=False) |
| 159 | full_prompt = resize_prompt( |
| 160 | model.tokenizer, |
| 161 | max_seq_len, |
| 162 | few_shot_prompt+prompt |
| 163 | ) |
| 164 | output = model.generate( |
| 165 | prompts=[full_prompt], |
| 166 | images=None, |
| 167 | max_gen_len=100, |
| 168 | return_logits=True |
| 169 | ) |
| 170 | pred = extract_ans_by_logits(tokenizer = model.tokenizer, logits=output) |
| 171 | |
| 172 | results.append(pred == row['answer']) |
| 173 | total_results[task] = sum(results) / len(results) |
| 174 | |
| 175 | return total_results |
| 176 | |
| 177 | def cal_ceval(res): |
| 178 | results = {} |
no test coverage detected