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

3

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

6

Yu Shi Jie's avatar
Yu Shi Jie committed
7
8
9
10
11
12
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
13

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

Yu Shi Jie's avatar
Yu Shi Jie committed
19
20
21
22
23
24
25
    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."
26

Yu Shi Jie's avatar
Yu Shi Jie committed
27
28
    return prompt

29

Yu Shi Jie's avatar
Yu Shi Jie committed
30
31
32
doc_to_text = partial(format_cot_example, including_answer=False)
fewshot_to_text = partial(format_cot_example, including_answer=True)

33

Yu Shi Jie's avatar
Yu Shi Jie committed
34
35
36
def process_docs(dataset, subject):
    return dataset.filter(lambda x: x["category"] == subject)

37

Yu Shi Jie's avatar
Yu Shi Jie committed
38
39
40
process_biology = partial(process_docs, subject="biology")
process_business = partial(process_docs, subject="business")
process_chemistry = partial(process_docs, subject="chemistry")
41
process_computer_science = partial(process_docs, subject="computer science")
Yu Shi Jie's avatar
Yu Shi Jie committed
42
43
44
45
46
47
48
49
50
51
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")