from tqdm import tqdm def evaluate(sample): prompt = pipe.tokenizer.apply_chat_template(sample["messages"][:2], tokenize=False, add_generation_prompt=True) outputs = pipe(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95, eos_token_id=pipe.tokenizer.eos_token_id, pad_token_id=pipe.tokenizer.pad_token_id) predicted_answer = outputs[0]['generated_text'][len(prompt):].strip() if predicted_answer == sample["messages"][2]["content"]: return 1 else: return 0 success_rate = [] number_of_eval_samples = 1000 # iterate over eval dataset and predict for s in tqdm(eval_dataset.shuffle().select(range(number_of_eval_samples))): success_rate.append(evaluate(s)) # compute accuracy accuracy = sum(success_rate)/len(success_rate) print(f"Accuracy: {accuracy*100:.2f}%")