| from openai import OpenAI |
| import os |
| import logging |
| import torch |
| import re |
| import os |
| import random |
| import transformers |
| from tqdm import tqdm |
| from transformers import ( |
| AutoTokenizer, |
| AutoModelForCausalLM, |
| ) |
|
|
| def setup_logger(log_path): |
| logging.basicConfig( |
| filename=log_path, |
| filemode="w", |
| format="%(asctime)s - %(levelname)s - %(message)s", |
| level=logging.INFO |
| ) |
|
|
| ANS_RE = re.compile(r"#### (\-?[0-9\.\,]+)") |
| INVALID_ANS = "[invalid]" |
|
|
| ANSWER_TRIGGER = "The answer is" |
|
|
| |
|
|
| |
| |
|
|
| |
|
|
| def extract_answer_from_output(completion): |
| match = ANS_RE.search(completion) |
| if match: |
| match_str = match.group(1).strip() |
| match_str = match_str.replace(",", "") |
| return match_str |
| else: |
| return INVALID_ANS |
|
|
|
|
| def is_correct(model_answer, answer): |
| gt_answer = extract_answer_from_output(answer) |
| assert gt_answer != INVALID_ANS |
| return model_answer == gt_answer |
| def is_correct_direct(model_answer, answer): |
| return model_answer == answer |
| def is_correct_choice(model_answer, answer): |
| return int(model_answer) == answer |
|
|
| |
| def get_response_template(message,model="meta-llama/Meta-Llama-3-8B-Instruct",client=OpenAI( |
| api_key="EMPTY", |
| base_url="http://127.0.0.1:8422/v1", |
| )): |
| |
| prompt= message |
| chat_response = client.chat.completions.create( |
| model=model, |
| messages=[ |
| {"role": "system", "content": "You are a helpful assistant."}, |
| {"role": "user", "content": prompt}, |
| ], |
| temperature = 0.8, |
| ) |
| print("Chat response:", chat_response.choices[0].message.content) |
| return chat_response.choices[0].message.content |
| |