Download 10_pairwise_generator.py from koreallmdev/dgx-harness-engineering: direct link, hf CLI and curl.
- Browser
- Download file 1.05 kB
-
https://huggingface.co/koreallmdev/dgx-harness-engineering/resolve/main/10_pairwise_generator.py
- Command line
-
hf download hf://koreallmdev/dgx-harness-engineering/10_pairwise_generator.py
-
curl -L -o 10_pairwise_generator.py https://huggingface.co/koreallmdev/dgx-harness-engineering/resolve/main/10_pairwise_generator.py
1.05 kB
| 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") | |