Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
File size: 17,643 Bytes
c4b9ff5 | 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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 | <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>FinePhrase poster (COLM 2026, 72in x 36in)</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800;900&display=swap" rel="stylesheet" />
<style>
/* Poster is 72in (W) x 36in (H), landscape. All sizes are physical units so the PDF prints 1:1. */
@page { size: 72in 36in; margin: 0; }
:root {
--gold: #EBA937;
--gold-dark: #B87A12;
--gold-soft: #FFF4DE;
--ink: #1a1a1a;
--muted: #5c5c5c;
--gray: #C9C9C9;
--gray-dark: #7a7a7a;
--line: #E4E4E4;
--bg: #ffffff;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: var(--bg); color: var(--ink); }
body { font-family: "Inter", "Helvetica Neue", Arial, sans-serif; font-size: 35pt; line-height: 1.32; -webkit-font-smoothing: antialiased; }
/* Explicit row heights (4.6 + 0.9 + 28.2 + padding 2.3 = 36in): Chromium's PDF pipeline
stretches `1fr` rows differently from the screen layout, so every region gets a fixed height. */
.poster { width: 72in; height: 36in; padding: 1.2in 1.5in 1.1in; display: grid; grid-template-rows: 4.6in 28.2in; row-gap: 0.9in; overflow: hidden; break-inside: avoid; }
p { margin: 0 0 0.35in; }
strong { font-weight: 800; }
.accent { color: var(--gold-dark); }
/* Header */
header { display: grid; grid-template-columns: 4.4in 1fr auto; column-gap: 1.1in; align-items: center; height: 4.6in; }
header .logo { width: 4.4in; }
header h1 { margin: 0 0 0.25in; font-size: 92pt; line-height: 1.05; font-weight: 900; letter-spacing: -0.02em; }
header h1 span { color: var(--gold-dark); }
header .authors { font-size: 32pt; line-height: 1.35; margin: 0; }
header .authors sup { font-size: 60%; }
header .affils { font-size: 27pt; color: var(--muted); margin: 0.1in 0 0; }
header .affils b { color: var(--ink); }
.qrs { display: flex; gap: 0.6in; }
.qr { width: 4in; text-align: center; }
.qr img { width: 3.3in; height: 3.3in; display: block; margin: 0 auto; }
.qr .t { font-size: 27pt; font-weight: 800; line-height: 1.2; margin-top: 0.12in; }
.qr .u { font-size: 20pt; color: var(--muted); font-family: "SF Mono", Menlo, Consolas, monospace; white-space: nowrap; }
/* Columns */
main { display: grid; grid-template-columns: 17in 32in 17in; column-gap: 1.5in; height: 28.2in; }
.col { display: flex; flex-direction: column; justify-content: space-between; row-gap: 0.55in; height: 28.2in; overflow: hidden; }
h2 { margin: 0 0 0.3in; font-size: 46pt; line-height: 1.1; font-weight: 800; letter-spacing: -0.01em; padding-bottom: 0.15in; border-bottom: 0.06in solid var(--gold); }
h3 { margin: 0 0 0.12in; font-size: 36pt; line-height: 1.15; font-weight: 800; }
.caption { font-size: 27pt; color: var(--muted); line-height: 1.3; margin: 0.15in 0 0; }
ul { margin: 0; padding-left: 0.55in; }
li { margin-bottom: 0.14in; }
/* Stats */
.stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0.3in 0.5in; }
.stat .n { font-size: 92pt; font-weight: 900; line-height: 1; color: var(--gold-dark); letter-spacing: -0.02em; }
.stat .l { font-size: 30pt; color: var(--muted); margin-top: 0.08in; line-height: 1.25; }
.overview { width: 100%; display: block; border-radius: 0.15in; }
/* Recipe box */
.recipe { background: var(--gold-soft); border-left: 0.16in solid var(--gold); border-radius: 0.12in; padding: 0.45in 0.55in; }
.recipe h3 { color: var(--gold-dark); }
.recipe ul { padding-left: 0.5in; }
.recipe code { font-family: "SF Mono", Menlo, Consolas, monospace; font-size: 88%; background: rgba(0,0,0,0.05); padding: 0 0.08in; border-radius: 0.06in; }
/* Central message */
.message { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--ink); color: #fff; border-radius: 0.3in; padding: 0.8in 1.4in; }
.message .big { font-size: 165pt; font-weight: 900; line-height: 1.02; letter-spacing: -0.03em; margin: 0; }
.message .big em { color: var(--gold); font-style: normal; }
.message .sub { font-size: 42pt; line-height: 1.3; margin: 0.55in 0 0; color: #e8e8e8; max-width: 27in; }
.message .sub b { color: var(--gold); font-weight: 800; }
/* Bar charts (plain divs so fonts stay consistent everywhere) */
/* Right padding leaves room for the value label after the longest bar. */
.chart { display: flex; flex-direction: column; gap: 0.11in; position: relative; padding-right: 1.3in; }
.row { display: grid; grid-template-columns: var(--label-w, 6.2in) 1fr; align-items: center; column-gap: 0.3in; }
.row .lbl { text-align: right; font-size: var(--lbl-size, 28pt); line-height: 1.15; white-space: nowrap; }
.row.hl .lbl { font-weight: 800; }
.row .track { position: relative; height: var(--bar-h, 0.5in); }
.row .bar { position: absolute; left: 0; top: 0; height: 100%; border-radius: 0 0.08in 0.08in 0; background: var(--gray); }
.row.hl .bar { background: var(--gold); }
.row.ref .bar { background: var(--gray-dark); }
.row .val { position: absolute; top: 50%; transform: translateY(-50%); font-size: var(--val-size, 27pt); font-weight: 800; padding: 0 0.12in 0 0.18in; white-space: nowrap; background: var(--bg); z-index: 1; }
.row.hl .val { color: var(--gold-dark); }
.refline { position: absolute; top: -0.05in; bottom: -0.05in; border-left: 0.06in dashed var(--gray-dark); pointer-events: none; }
.refline span { position: absolute; top: -0.42in; left: 0.12in; font-size: 22pt; color: var(--muted); white-space: nowrap; }
.chart.main { --label-w: 8.6in; --bar-h: 0.78in; --lbl-size: 36pt; --val-size: 36pt; gap: 0.16in; }
.chart.main .row .val { font-size: 36pt; }
.legend { display: flex; gap: 0.8in; font-size: 26pt; color: var(--muted); margin-top: 0.25in; }
.legend i { display: inline-block; width: 0.42in; height: 0.3in; border-radius: 0.05in; vertical-align: -0.03in; margin-right: 0.15in; }
/* Cost strip */
.cost { display: grid; grid-template-columns: 1.15fr 1fr; column-gap: 1in; align-items: center; border-top: 0.06in solid var(--line); padding-top: 0.6in; }
.bignums { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.45in 0.6in; }
.bignums .n { font-size: 108pt; font-weight: 900; line-height: 1; letter-spacing: -0.03em; color: var(--gold-dark); }
.bignums .l { font-size: 29pt; color: var(--muted); margin-top: 0.1in; line-height: 1.25; }
table { border-collapse: collapse; width: 100%; font-size: 30pt; }
th, td { padding: 0.14in 0.2in; text-align: right; border-bottom: 0.03in solid var(--line); white-space: nowrap; }
th { font-weight: 800; font-size: 24pt; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
th:first-child, td:first-child { text-align: left; }
tr.hl td { font-weight: 800; color: var(--gold-dark); background: var(--gold-soft); }
/* Findings (right column) */
.finding { display: flex; flex-direction: column; }
.finding h3 { display: flex; align-items: baseline; gap: 0.25in; }
.finding h3 .num { display: inline-flex; align-items: center; justify-content: center; width: 0.75in; height: 0.75in; border-radius: 50%; background: var(--gold); color: var(--ink); font-size: 30pt; font-weight: 900; flex: none; align-self: center; }
.finding .chart { --label-w: 5.8in; --bar-h: 0.5in; --lbl-size: 27pt; --val-size: 26pt; gap: 0.1in; margin-top: 0.2in; }
.finding .caption { margin-top: 0.22in; }
</style>
</head>
<body>
<div class="poster">
<header>
<img class="logo" src="assets/hf-logo.svg" alt="Hugging Face" />
<div>
<h1>How Can We Synthesize High-Quality Pretraining Data?<br/><span>A systematic study of prompt design, generator model, and source data</span></h1>
<p class="authors">Joel Niklaus<sup>1</sup> 路 Atsuki Yamaguchi<sup>2</sup> 路 Michal 艩tef谩nik<sup>3</sup> 路 Guilherme Penedo<sup>1</sup> 路 Hynek Kydl铆膷ek<sup>1</sup> 路 Elie Bakouch<sup>1</sup> 路 Lewis Tunstall<sup>1</sup> 路 Edward Beeching<sup>1</sup> 路 Thibaud Frere<sup>1</sup> 路 Colin Raffel<sup>1</sup> 路 Leandro von Werra<sup>1</sup> 路 Thomas Wolf<sup>1</sup></p>
<p class="affils"><sup>1</sup>Hugging Face 路 <sup>2</sup>University of Sheffield 路 <sup>3</sup>National Institute of Informatics, Japan | <b>COLM 2026</b>, San Francisco 路 Poster F-4-126, Franciscan, Wednesday afternoon</p>
</div>
<div class="qrs">
<div class="qr"><img src="assets/qr-paper.svg" alt="QR: paper" /><div class="t">Paper</div><div class="u">arXiv 2604.13977</div></div>
<div class="qr"><img src="assets/qr-dataset.svg" alt="QR: dataset" /><div class="t">Dataset</div><div class="u">HuggingFaceFW/finephrase</div></div>
<div class="qr"><img src="assets/qr-code.svg" alt="QR: code" /><div class="t">Prompts + code</div><div class="u">huggingface/finephrase</div></div>
</div>
</header>
<main>
<!-- LEFT: question, setup, recipe -->
<section class="col">
<div>
<h2>The question</h2>
<p>Crawlable web text is running out, so labs now rephrase the web with LLMs at trillion-token scale. But every prior method (WRAP, Nemotron-CC, BeyondWeb, REWIRE) reports gains against its own baseline. Nobody had compared <strong>which prompt</strong>, <strong>which generator</strong>, and <strong>which source data</strong> matter, under one controlled setup.</p>
</div>
<div>
<h2>What we did</h2>
<img class="overview" src="assets/overview.jpg" alt="Source docs, prompt, generator and mix-in data feed a trained model that is then evaluated" />
<p class="caption">Rephrase ~10.5B source tokens with a prompt <em>P</em> and generator <em>G</em>, mix 50/50 with original web data, pretrain a 1.2B model from scratch on 21B tokens, evaluate on 12 benchmarks (3-shot cloze, macro average).</p>
<div class="stats">
<div class="stat"><div class="n">90</div><div class="l">rephrasing configurations</div></div>
<div class="stat"><div class="n">333</div><div class="l">train-and-evaluate runs</div></div>
<div class="stat"><div class="n">>1T</div><div class="l">synthetic tokens generated</div></div>
<div class="stat"><div class="n">12.7</div><div class="l">GPU-years of generation</div></div>
</div>
</div>
<div class="recipe">
<h3>The FinePhrase recipe</h3>
<ul>
<li><strong>Generator:</strong> <code>SmolLM2-1.7B-Instruct</code></li>
<li><strong>Prompts:</strong> Table, Math, FAQ, Tutorial</li>
<li><strong>Source:</strong> FineWeb (educational subset)</li>
<li><strong>Training:</strong> mix with strong original web data (DCLM or FineWeb-HQ)</li>
</ul>
</div>
</section>
<!-- CENTER: central message (top, visible over heads), main result, cost -->
<section class="col">
<div class="message">
<p class="big">The <em>prompt</em> matters more than the <em>model</em>.</p>
<p class="sub">Rephrasing the web into <b>tables, math problems, FAQs and tutorials</b> with a <b>1.7B</b> model beats rewrites from 70B models and curated web data, at up to <b>30脳 lower</b> generation cost.</p>
</div>
<div>
<h2>FinePhrase beats every existing synthetic dataset</h2>
<div class="chart main" id="chart-main"></div>
<div class="legend"><span><i style="background:var(--gold)"></i>FinePhrase (SmolLM2 1.7B)</span><span><i style="background:var(--gray-dark)"></i>Curated web baseline</span><span><i style="background:var(--gray)"></i>Prior synthetic datasets</span></div>
<p class="caption">Macro average over 12 benchmarks (脳100) of a 1.2B model trained on 21B tokens. FinePhrase-Table: +3.4 over DCLM, +3.6 over Nemotron-HQ-Synth. FinePhrase wins on knowledge and reading comprehension (ARC, SQuAD, DROP); DCLM keeps a small edge on PIQA and HellaSwag, which is why we always mix.</p>
</div>
<div class="cost">
<div class="bignums">
<div><div class="n">486B</div><div class="l">tokens, 1.35B samples, openly released</div></div>
<div><div class="n">30脳</div><div class="l">more tokens per GPU-hour than REWIRE</div></div>
<div><div class="n">14.7K</div><div class="l">H100 GPU-hours total (612 GPU-days)</div></div>
<div><div class="n">9.2K</div><div class="l">tokens / s / GPU with speculative decoding</div></div>
</div>
<table>
<thead><tr><th>Dataset</th><th>Generator</th><th>Tokens</th><th>GPU-hrs</th><th>Tok / GPU-hr</th></tr></thead>
<tbody>
<tr><td>Cosmopedia</td><td>Mixtral 8x7B</td><td>25B</td><td>>10K</td><td><2.5M</td></tr>
<tr><td>SYNTH</td><td>fine-tuned</td><td>80B</td><td>4K</td><td>20M</td></tr>
<tr><td>REWIRE</td><td>Llama 3.3 70B</td><td>400B</td><td>~352K</td><td>~1.1M</td></tr>
<tr class="hl"><td>FinePhrase</td><td>SmolLM2 1.7B</td><td>486B</td><td>~14.7K</td><td>~33.1M</td></tr>
</tbody>
</table>
</div>
</section>
<!-- RIGHT: four findings -->
<section class="col">
<div class="finding">
<h3><span class="num">1</span>Structured formats beat paraphrasing</h3>
<div class="chart" id="chart-prompts"></div>
<p class="caption">Same generator (Gemma 3 1B), same source. Pedagogical restructuring wins. Free-form rewrites (article, narrative, commentary) do not even beat DCLM.</p>
</div>
<div class="finding">
<h3><span class="num">2</span>Generators above 1B do not help</h3>
<div class="chart" id="chart-size"></div>
<p class="caption">Gemma 3 family, Math prompt. 270M is too small; from 1B up, quality is flat while cost explodes (27B guided rewrite: 11K GPU-hours vs 205 for FinePhrase-Table).</p>
</div>
<div class="finding">
<h3><span class="num">3</span>SmolLM2 is the best small generator</h3>
<div class="chart" id="chart-family"></div>
<p class="caption">Tutorial prompt, ~1B instruct models. Messier, more diverse outputs beat polished ones: Qwen3 follows the format 100% of the time but collapses onto a few templates; SmolLM2 only 68%, yet trains better.</p>
</div>
<div class="finding">
<h3><span class="num">4</span>Always mix with original web data</h3>
<div class="chart" id="chart-mix"></div>
<p class="caption">Synthetic-only training loses commonsense and NLU. Which data you mix in matters more than the source quality: DCLM or FineWeb-HQ 14.3 vs Cosmopedia 13.0.</p>
</div>
</section>
</main>
</div>
<script>
// All scores are macro averages (x100) from paper/data/*.dat, rounded to one decimal.
const DCLM = 13.8;
function chart(id, rows, { max = 18, ref = null } = {}) {
const el = document.getElementById(id);
el.innerHTML = rows.map(r => {
const cls = r.hl ? 'hl' : r.ref ? 'ref' : '';
const w = (r.v / max * 100).toFixed(2);
return `<div class="row ${cls}"><div class="lbl">${r.label}</div><div class="track"><div class="bar" style="width:${w}%"></div><div class="val" style="left:${w}%">${r.v.toFixed(1)}</div></div></div>`;
}).join('');
if (ref !== null) {
// Dashed reference line for DCLM, positioned over the track column.
const track = el.querySelector('.track');
const left = track.offsetLeft + track.offsetWidth * ref / max;
el.insertAdjacentHTML('beforeend', `<div class="refline" style="left:${left}px"><span>DCLM ${ref.toFixed(1)}</span></div>`);
}
}
chart('chart-main', [
{ label: 'FinePhrase-Table', v: 17.2, hl: true },
{ label: 'FinePhrase-Math', v: 17.0, hl: true },
{ label: 'FinePhrase-FAQ', v: 16.2, hl: true },
{ label: 'FinePhrase-Tutorial', v: 15.9, hl: true },
{ label: 'DCLM', v: 13.8, ref: true },
{ label: 'Nemotron-HQ-Synth', v: 13.5 },
{ label: 'REWIRE', v: 13.5 },
{ label: 'Cosmopedia', v: 10.3 },
{ label: 'SYNTH', v: 10.0 },
]);
chart('chart-prompts', [
{ label: 'Math', v: 15.3, hl: true },
{ label: 'Table', v: 14.8, hl: true },
{ label: 'Diverse QA (Nemotron)', v: 14.6 },
{ label: 'FAQ', v: 14.5, hl: true },
{ label: 'Tutorial', v: 14.3, hl: true },
{ label: 'Guided rewrite (REWIRE)', v: 13.7 },
{ label: 'Article', v: 13.6 },
{ label: 'Narrative', v: 13.6 },
{ label: 'Commentary', v: 12.3 },
], { ref: DCLM });
chart('chart-size', [
{ label: 'Gemma 3 270M', v: 13.8 },
{ label: 'Gemma 3 1B', v: 15.3, hl: true },
{ label: 'Gemma 3 4B', v: 15.1 },
{ label: 'Gemma 3 12B', v: 14.7 },
{ label: 'Gemma 3 27B', v: 14.8 },
], { ref: DCLM });
chart('chart-family', [
{ label: 'SmolLM2 1.7B', v: 15.9, hl: true },
{ label: 'Falcon3 1B', v: 15.0 },
{ label: 'Qwen3 1.7B', v: 14.5 },
{ label: 'Gemma 3 1B', v: 14.3 },
{ label: 'Granite 3.1 1B', v: 14.1 },
{ label: 'Llama 3.2 1B', v: 14.0 },
], { ref: DCLM });
chart('chart-mix', [
{ label: 'Math 路 50% synthetic', v: 15.3, hl: true },
{ label: 'Math 路 synthetic only', v: 15.2 },
{ label: 'Table 路 50% synthetic', v: 14.8, hl: true },
{ label: 'Table 路 synthetic only', v: 13.7 },
{ label: 'FAQ 路 50% synthetic', v: 14.5, hl: true },
{ label: 'FAQ 路 synthetic only', v: 13.1 },
{ label: 'Tutorial 路 50% synthetic', v: 14.3, hl: true },
{ label: 'Tutorial 路 synthetic only', v: 12.3 },
], { ref: DCLM });
</script>
</body>
</html>
|