utils.py 1.78 KB
Newer Older
Yu Shi Jie's avatar
Yu Shi Jie committed
1
2
from functools import partial

tawsif's avatar
tawsif committed
3
choices = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]
Yu Shi Jie's avatar
Yu Shi Jie committed
4
5
6
7
8
9
10

def format_cot_example(example, including_answer=True):
    prompt = "Question:\n"
    question = example["question"]
    options = example["options"]
    prompt += question + "\n"
    prompt += "Options:\n"
tawsif's avatar
tawsif committed
11

Yu Shi Jie's avatar
Yu Shi Jie committed
12
    for i, opt in enumerate(options):
tawsif's avatar
tawsif committed
13
14
        if i >= len(choices):
            break
Yu Shi Jie's avatar
Yu Shi Jie committed
15
        prompt += "{}. {}\n".format(choices[i], opt)
tawsif's avatar
tawsif committed
16

Yu Shi Jie's avatar
Yu Shi Jie committed
17
18
19
20
21
22
23
    if including_answer:
        cot_content = example["cot_content"].replace(
            "A: Let's think step by step.", "Answer: Let's think step by step."
        )
        prompt += cot_content + "\n\n"
    else:
        prompt += "Answer: Let's think step by step."
tawsif's avatar
tawsif committed
24
    
Yu Shi Jie's avatar
Yu Shi Jie committed
25
26
27
28
29
30
31
32
33
34
35
    return prompt

doc_to_text = partial(format_cot_example, including_answer=False)
fewshot_to_text = partial(format_cot_example, including_answer=True)

def process_docs(dataset, subject):
    return dataset.filter(lambda x: x["category"] == subject)

process_biology = partial(process_docs, subject="biology")
process_business = partial(process_docs, subject="business")
process_chemistry = partial(process_docs, subject="chemistry")
36
process_computer_science = partial(process_docs, subject="computer science")
Yu Shi Jie's avatar
Yu Shi Jie committed
37
38
39
40
41
42
43
44
45
46
process_economics = partial(process_docs, subject="economics")
process_engineering = partial(process_docs, subject="engineering")
process_health = partial(process_docs, subject="health")
process_history = partial(process_docs, subject="history")
process_law = partial(process_docs, subject="law")
process_math = partial(process_docs, subject="math")
process_other = partial(process_docs, subject="other")
process_philosophy = partial(process_docs, subject="philosophy")
process_physics = partial(process_docs, subject="physics")
process_psychology = partial(process_docs, subject="psychology")