Reinforcement Learning from Verifiable Rewards (RLVR) has been able to improve correctness in LLMs for domains like math and coding. But for many scientific problems, like materials science, there is no single "correct" result. You want many candidates that are all thermodynamically stable, distinct from each other, and outside our current knowledge of crystal space.

We built PLaID++, an LLM post-trained for multi-objective property-guided crystal generation, to solve this problem.

Framework

We introduce Reinforcement Learning from Interatomic Potentials, a diversity-aware framework for materials discovery

Representation

Motivated by mode collapse on a naïve 3D representation, we develop a symmetry-informed encoding to scale reinforcement learning

Results

We show generalization across multiple materials discovery objectives, and achieve SOTA results in all settings

The Setup

We start from Qwen-2.5 7B and fine-tune it with LoRA on MP-20, ~45k inorganic crystals from the Materials Project. To guide our search space towards chemically useful structures, we propose RLIP (Reinforcement Learning from Interatomic Potentials). The reward comes from EquiformerV2, a machine-learned interatomic potential that predicts a structure's energy, a (rough) proxy for real world synthesizability, allowing us to rank candidates by thermodynamic stability and run iterative DPO on preference pairs.

Our primary metric is the S.U.N. rate: the percentage of generated crystals that are simultaneously stable, unique, and novel. We evaluate across three settings — unconditional generation, space-group-conditioned generation (scored by S.S.U.N., which additionally requires the generated structure to satisfy the requested symmetry), and high bulk modulus-conditioned generation (which requires the structure to have hardness ≥ 325 GPa).

Mode Collapse

The obvious first attempt is to RL the LLM using a standard 3D coordinate representation like prior work, where each fractional coordinate exists on a seperate line per atom. However, interestingly, doing this leads novelty to fall drastically while stability keeps climbing across multiple iterations. The model games the reward by memorizing a few stable structures and emitting them over and over.

PLaID++ 3D Coordinate Variant
S.U.N. (%)Stability (%)
1.5%2%2.5%3%6%9%12%15%0123RLIP iteration

Wyckoff Representation

Crystal structures inherently follow symmetry constraints that can be represented by space groups and Wyckoff positions. A crystals symmetry is directly correlated with downstream properties like piezoelectricity. We encode each crystal as a compact, Wyckoff text representation, which vastly improves performance under RLIP. We hypothesize that our Wyckoff representation works because of its higher information density, where local atom type or coordinate changes propagate to globally meaningful structure differences, expanding the diversity of valid structures the model can learn and generate. Below are a few structures you can click through to directly compare how our Wyckoff representation compares to prior 3D coordinate methods.

loading structure…
G ≃ Fm-3m
CeInRh
Ehull -0.001 eV/atom
Ce4In4Rh8
Spacegroup: Fm-3m
abc: 6.76 6.76 6.76
angles: 90.00 90.00 90.00
Sites (16)
Ce 0.500 0.500 0.500 4b
In 0.000 0.000 0.000 4a
Rh 0.250 0.250 0.250 8c

Temperature as an Entropy Regularizer

PLaID++ Dynamic vs. Fixed Temperature
PLaID++ (dynamic τ)Fixed τ = 0.7
3%4%5%6%7%8%01234567DPO iterationADiT 5.3%FlowLLM 4.7%

Representation determines what the model can express; sampling determines how much of that space it explores. The most consequential sampling parameter for crystal diversity is temperature. In the context of materials discovery, we find increasing temperature across successive iterations of RLIP is critical to maintains exploration of novel chemical space and avoid overoptimization of stability.

Sampling Temperature vs. Exploration
stable / valid region
τ1.00 · sweet spot
61%diversity / coverage
77%stable candidates

Moderate temperature acts as an entropy regularizer — broad coverage while staying inside the stable region.

SOTA Results

Combining the Wyckoff representation, RLIP, and the dynamic temperature schedule, PLaID++ reaches a 22.3% stability rate and a 7.74% S.U.N. rate on unconditional MP-20 generation — roughly 50% higher S.U.N. than the best prior method — without any specialized equivariant architecture:

Unconditional Crystal Generation S.U.N. Rate
1PLaID++
7.74%
2ADiT
5.3%
3FlowLLM
4.7%
4DiffCSP
3.3%
5FlowMM
2.8%

Cross Task Transfer

Running DPO on space-group-conditioned pairs alone lifts conditional S.S.U.N. by 22% over the base Wyckoff model. Mixing in preference pairs from unconditional generation — a different task — more than doubles that improvement. The gains are most pronounced exactly where conditional training data is scarce

PLaID++ Joint vs. Single-Task Training
PLaID++ (joint)Unconditional only
3%4%5%6%7%8%01234567DPO iterationADiT 5.3%FlowLLM 4.7%
Conditional S.S.U.N. by Space Group
3D coordinate baseWyckoff baseSpacegroup onlyPLaID++ (joint)
0%10%20%30%P1(612)C2/c(521)Amm2(383)I4m2(118)P3(7)P6₃/mmc(1121)F-43m(534)space group (training-set count)

The improvements hold out of distribution. We held eight space groups out of the RLIP reward entirely, then prompted the model to generate structures for them. PLaID++ outperforms fine-tuning alone by an average of 20% S.S.U.N. on these held-out groups. This suggests the model learns structural principles that apply across symmetry groups rather than memorizing the reward distribution.

S.S.U.N. on Held-Out Space Groups
Wyckoff basePLaID++
0%5%10%15%C2/m(366)P2/c(60)I4/mcm(256)P3m1(542)R3m(1035)P62m(467)P2₁3(67)Fm3m(3943)space group (training-set count)

Closing Thoughts

Over the past few months, I've seen a surge in interest towards applications of AI for materials from the broader AI research community. This is incredibly exciting, and I believe that many of the results r.e. better representations and cross-task transfer are promising signals for the viability of foundational agents/models in this domain.

The full details, ablations, and benchmarks are in the paper, the code is on GitHub, and the weights are on HuggingFace.

Feel free to reach out if you found this work interesting :)