File size: 1,051 Bytes
b62c338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import json
import torch
import random
from transformers import AutoTokenizer, AutoModelForCausalLM

MODEL = "./v2"
OUTPUT = "pairwise.jsonl"

model = AutoModelForCausalLM.from_pretrained(
    MODEL,
    device_map="auto",
    torch_dtype=torch.float16
)

tokenizer = AutoTokenizer.from_pretrained(MODEL)

PROMPTS = [
    "LRU 캐시 구현",
    "다익스트라 알고리즘 설명",
    "FastAPI 서버 설계",
    "Redis 캐시 구조 설명"
]

def generate(prompt):
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

    out = model.generate(
        **inputs,
        max_new_tokens=300,
        do_sample=True,
        temperature=0.8
    )

    return tokenizer.decode(out[0], skip_special_tokens=True)

data = []

for p in PROMPTS:
    a = generate(p)
    b = generate(p)

    data.append({
        "prompt": p,
        "chosen": a,
        "rejected": b
    })

with open(OUTPUT, "w", encoding="utf-8") as f:
    for d in data:
        f.write(json.dumps(d, ensure_ascii=False) + "\n")

print("[DONE] pairwise dataset")