Auroraventures commited on
Commit
8e68484
·
verified ·
1 Parent(s): 81098fd

Upload cipher-simpo-train.ipynb with huggingface_hub

Browse files
Files changed (1) hide show
  1. cipher-simpo-train.ipynb +1 -42
cipher-simpo-train.ipynb CHANGED
@@ -82,48 +82,7 @@
82
  "metadata": {},
83
  "execution_count": null,
84
  "outputs": [],
85
- "source": [
86
- "# Cell 5 — Generate SimPO preference pairs from existing SFT data\n",
87
- "import json\n",
88
- "from pathlib import Path\n",
89
- "\n",
90
- "SFT_DATA = '/content/kr8tiv-training/data/prompts/awwwards-sft.jsonl'\n",
91
- "PAIRS_OUT = '/content/simpo_pairs.jsonl'\n",
92
- "\n",
93
- "examples = []\n",
94
- "with open(SFT_DATA) as f:\n",
95
- " for line in f:\n",
96
- " if line.strip():\n",
97
- " try: examples.append(json.loads(line))\n",
98
- " except: pass\n",
99
- "\n",
100
- "print(f'Loaded {len(examples)} SFT examples')\n",
101
- "\n",
102
- "# Build preference pairs\n",
103
- "pairs = []\n",
104
- "skipped = 0\n",
105
- "for ex in examples:\n",
106
- " msgs = ex.get('messages', [])\n",
107
- " user_msg = next((m['content'] for m in msgs if m['role']=='user'), '')\n",
108
- " chosen = next((m['content'] for m in msgs if m['role']=='assistant'), '')\n",
109
- " if not user_msg or not chosen or len(chosen) < 200:\n",
110
- " skipped += 1; continue\n",
111
- " try:\n",
112
- " rejected = generate_rejected(chosen)\n",
113
- " if not rejected or rejected == chosen or len(rejected) < 100:\n",
114
- " skipped += 1; continue\n",
115
- " pairs.append({'prompt': user_msg, 'chosen': chosen, 'rejected': rejected})\n",
116
- " except Exception as e:\n",
117
- " skipped += 1\n",
118
- "\n",
119
- "with open(PAIRS_OUT, 'w') as f:\n",
120
- " for p in pairs: f.write(json.dumps(p) + '\\n')\n",
121
- "\n",
122
- "print(f'Generated {len(pairs)} pairs, skipped {skipped}')\n",
123
- "if pairs:\n",
124
- " s = pairs[0]\n",
125
- " print(f'\\nSample chosen: {len(s[\"chosen\"])} chars, rejected: {len(s[\"rejected\"])} chars')"
126
- ]
127
  },
128
  {
129
  "cell_type": "code",
 
82
  "metadata": {},
83
  "execution_count": null,
84
  "outputs": [],
85
+ "source": "# Cell 5 — Generate SimPO preference pairs from existing SFT data\nimport json, traceback\nfrom pathlib import Path\n\nSFT_DATA = '/content/kr8tiv-training/data/prompts/awwwards-sft.jsonl'\nPAIRS_OUT = '/content/simpo_pairs.jsonl'\n\nexamples = []\nwith open(SFT_DATA) as f:\n for line in f:\n if line.strip():\n try: examples.append(json.loads(line))\n except: pass\n\nprint(f'Loaded {len(examples)} SFT examples')\n\n# Build preference pairs\npairs = []\nskipped = 0\nfirst_error = None\n\nfor ex in examples:\n msgs = ex.get('messages', [])\n user_msg = next((m['content'] for m in msgs if m['role']=='user'), '')\n chosen = next((m['content'] for m in msgs if m['role']=='assistant'), '')\n if not user_msg or not chosen or len(chosen) < 200:\n skipped += 1\n continue\n try:\n # Correct signature: (prompt, chosen_code)\n rejected = generate_rejected(user_msg, chosen)\n if not rejected or rejected == chosen or len(rejected) < 100:\n skipped += 1\n continue\n pairs.append({'prompt': user_msg, 'chosen': chosen, 'rejected': rejected})\n except Exception as e:\n if first_error is None:\n first_error = f'{type(e).__name__}: {e}'\n traceback.print_exc()\n skipped += 1\n\nwith open(PAIRS_OUT, 'w') as f:\n for p in pairs: f.write(json.dumps(p) + '\\n')\n\nprint(f'Generated {len(pairs)} pairs, skipped {skipped}')\nif first_error:\n print(f'First error encountered: {first_error}')\nif pairs:\n s = pairs[0]\n print(f'\\nSample chosen: {len(s[\"chosen\"])} chars, rejected: {len(s[\"rejected\"])} chars')\nelse:\n raise RuntimeError('Zero pairs generated — aborting.')"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  },
87
  {
88
  "cell_type": "code",