OraclePhys: A Systematic Framework for LLM Fine-Tuning on Structural Mechanics
Organizations: University of Houston · Tsinghua University
Abstract
What a language model internalizes from fine-tuning is usually diagnosed after the fact. We make it an experimental variable. OraclePhys is a systematic fine-tuning framework with three components: OraclePhys-Bench, an exactly-graded structural-mechanics benchmark whose finite-element oracle scores every answer and counterfactual edit -- no human labels, no LLM judging; OraclePhys-30K, a supervision dataset of seven answer forms over byte-identical structure descriptions; and a controlled training study across the seven forms and three verifier roles. The study yields two findings. First, the label's answer form -- not its bit count -- causally determines what fine-tuning teaches: a ranking objective installs an out-of-distribution forward model where the untrained base sits at the guessing prior, a scalar objective at best a partial one, a boolean nothing detectable; the vector-scalar gulf survives a second physics domain, a second model family, and a paraphrased evaluation surface. Second, written or score-filtered answers install this capability, while advantage-weighted scores (GRPO) raise reward yet leave the model statistically equivalent to its start on held-out physics -- within the recipes and budgets tested -- sufficing only for routing. The trained 8B -- the first LLM on spatial structural response -- reaches the task's data-precision frontier: above a frontier LLM at zero- and 32-shot, at a specialist's level. What the label spells out about the target computation is what fine-tuning teaches; what you train on is what you route.
Figures & tables
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| (tier-2) | forward | extrap | two-step | post-intervention |
|---|---|---|---|---|
| starting checkpoint | 0.660 | 0.575 | 0.593 | 0.553 |
| + dense SFT (teacher) | 0.747 | 0.713 | 0.707 | 0.693 |
| + GRPO round-1 (judge) | 0.667 | 0.575 | 0.573 | 0.573 |
| + full-recipe GRPO ( , filtered) | 0.673 | 0.575 | 0.527 | 0.613 |
| model | forward | extrap | two-step | post-int. | invar. | |
|---|---|---|---|---|---|---|
| P (3 seeds) | 0.86 0.02 | 0.90 0.00 | 0.82 0.02 | 0.72 0.01 | 0.71 0.02 | 1.00 0.00 |
| A (3 seeds) | 0.56 0.05 | 0.58 0.06 | 0.61 0.07 | 0.35 0.07 | 0.29 0.04 | 0.99 0.01 |
| O (3 seeds) | 0.15 0.06 | -0.02 0.18 | 0.17 0.05 | 0.21 0.00 | 0.12 0.00 | 0.60 0.20 |
| K (pointwise scalar) | 0.56 | 0.64 | 0.61 | 0.45 | 0.35 | 1.00 |
| V (value vector) | 0.52 | 0.52 | 0.55 | 0.25 | 0.30 | 0.87 |
| G (governing only) | 0.85 | 0.84 | 0.82 | 0.74 | 0.70 | 1.00 |
| model | forward | extrap | two-step | post-int. | invar. | |
| P (tier-1 weights) | 0.66 | 0.69 | 0.57 | 0.59 | 0.55 | 1.00 |
| + GRPO round-1 | 0.67 | 0.66 | 0.57 | 0.57 | 0.57 | 1.00 |
| + GRPO round-2 (filtered) | 0.69 | 0.69 | 0.59 | 0.59 | 0.63 | 1.00 |
| + dense SFT (SFT-hard) | 0.75 | 0.78 | 0.71 | 0.71 | 0.69 | 1.00 |
| + RFT (filter-then-imitate) | 0.75 | 0.78 | 0.69 | 0.67 | 0.68 | 1.00 |
| SFT-hard + nothink-RL | 0.76 | 0.79 | 0.64 | 0.64 | 0.65 | 1.00 |
| model | forward | extrap | two-step | post-int. | invar. | |
|---|---|---|---|---|---|---|
| P | 0.89 | 0.93 | 0.79 | 0.82 | 0.73 | 1.00 |
| A | 0.29 | -0.11 | 0.21 | 0.23 | 0.15 | 0.93 |
| O | 0.33 | -0.15 | 0.25 | 0.24 | 0.11 | 0.95 |
| untrained base | 0.25 | -0.07 | 0.30 | 0.30 | 0.14 | 0.69 |
| 1-D ladder formula | 0.53 | 0.79 | 0.65 | 0.54 | 0.21 | 1.00 |
| feature MLP | 0.46 | 0.57 | 0.29 | 0.37 | 0.49 | 0.95 |
| comparison | A | B | [CI] | discord | ||
|---|---|---|---|---|---|---|
| final vs. Opus 0-shot (fwd) | 0.733 | 0.500 | +0.233 [+0.15,+0.32] | 44:9 | 0.0000 ∗ | 0.000 |
| final vs. Opus 32-shot (fwd) | 0.733 | 0.433 | +0.300 [+0.21,+0.39] | 53:8 | 0.0000 ∗ | 0.000 |
| Opus 32- vs. 0-shot (fwd) | 0.433 | 0.500 | -0.067 [-0.13,+0.00] | 9:19 | 0.0872 | 0.179 |
| Opus 0-shot vs. formula (fwd) | 0.500 | 0.447 | +0.053 [+0.00,+0.11] | 13:5 | 0.0963 | 0.181 |
| final vs. GNN (fwd) | 0.733 | 0.733 | +0.000 [-0.07,+0.07] | 16:16 | 1.0000 | 1.000 |
| final vs. GNN (post-int.) | 0.680 | 0.680 | +0.000 [-0.09,+0.09] | 22:22 | 1.0000 | 1.000 |
| comparison | A | B | [CI] | discord | |
|---|---|---|---|---|---|
| fmt2: Llama P vs. A (fwd) | 0.840 | 0.247 | +0.593 [+0.51,+0.67] | 92:3 | 0.0000 |
| BP-GRPO vs. SFT-hard (two-step) | 0.673 | 0.707 | -0.033 [-0.08,+0.01] | 4:9 | 0.2668 |
| headroom GRPO vs. its start (two-step) | 0.527 | 0.593 | -0.067 [-0.14,+0.01] | 12:22 | 0.1214 |
| Opus 32-shot vs. formula (fwd) | 0.433 | 0.447 | -0.013 [-0.09,+0.06] | 14:16 | 0.8555 |
| lr- GRPO vs. its start (4 axes pooled) | 0.642 | 0.715 | -0.074 [-0.12,-0.03] | 45:84 | 0.0008 |
| model | act | desc | act desc |
|---|---|---|---|
| SFT-hard | 0.533 | 0.680 | -0.147 |
| action-SFT | 0.760 | 0.720 | +0.040 |
| final model | 0.687 | 0.687 | +0.000 |
| comparison | A | B | [CI] | discord | equiv. | ||
|---|---|---|---|---|---|---|---|
| dense SFT vs. GRPO round-2, same start | 1800 | 0.716 | 0.629 | +0.087 [+0.06,+0.11] | 287:131 | 1.7e-14 | no |
| dense SFT vs. headroom GRPO, same start | 1800 | 0.716 | 0.611 | +0.105 [+0.08,+0.13] | 336:147 | 4.4e-18 | no |
| RFT vs. GRPO round-2, same start | 1800 | 0.710 | 0.629 | +0.081 [+0.06,+0.10] | 256:110 | 1.6e-14 | no |
| headroom GRPO vs. its start | 1800 | 0.611 | 0.622 | -0.012 [-0.03,+0.01] | 155:176 | 0.27 | yes |
| RFT vs. dense SFT | 1800 | 0.710 | 0.716 | -0.006 [-0.02,+0.01] | 112:122 | 0.56 | yes |
| final model vs. GNN (fwd post-int.) | 1200 | 0.703 | 0.677 | +0.025 [-0.00,+0.06] | 186:156 | 0.12 | no |
| model | forward | extrap | two-step | post-int. | invar. | |
|---|---|---|---|---|---|---|
| P (para) | 0.85 | 0.89 | 0.82 | 0.63 | 0.69 | 1.00 |
| A (para) | 0.35 | 0.30 | 0.36 | 0.23 | 0.12 | 0.99 |
| O (para) | 0.22 | 0.10 | 0.20 | 0.21 | 0.13 | 0.90 |
| untrained base (para) | 0.33 | 0.16 | 0.31 | 0.14 | 0.10 | 0.59 |
| fmt2: P (para) | 0.75 | 0.85 | 0.74 | 0.61 | 0.71 | 1.00 |
| fmt2: A (para) | 0.44 | 0.62 | 0.44 | 0.43 | 0.37 | 1.00 |
LLM Fine-Tuning
LLM fine-tuning adapts pretrained large language models to tasks, domains, languages, and behaviors through additional training.
See all 755 papers