Instructions to use c-bone/CrystaLLM-cXRD_mp20 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use c-bone/CrystaLLM-cXRD_mp20 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="c-bone/CrystaLLM-cXRD_mp20")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, PrefixXRDGPT tokenizer = AutoTokenizer.from_pretrained("c-bone/CrystaLLM-cXRD_mp20") model = PrefixXRDGPT.from_pretrained("c-bone/CrystaLLM-cXRD_mp20", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use c-bone/CrystaLLM-cXRD_mp20 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "c-bone/CrystaLLM-cXRD_mp20" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "c-bone/CrystaLLM-cXRD_mp20", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/c-bone/CrystaLLM-cXRD_mp20
- SGLang
How to use c-bone/CrystaLLM-cXRD_mp20 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "c-bone/CrystaLLM-cXRD_mp20" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "c-bone/CrystaLLM-cXRD_mp20", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "c-bone/CrystaLLM-cXRD_mp20" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "c-bone/CrystaLLM-cXRD_mp20", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use c-bone/CrystaLLM-cXRD_mp20 with Docker Model Runner:
docker model run hf.co/c-bone/CrystaLLM-cXRD_mp20
Model Card for CrystaLLM-cXRD_mp20
Model Details
Model Description
CrystaLLM-cXRD_mp20 is a conditional generative model for crystal structure generation from powder X-ray Diffraction (XRD) data. It is a GPT-2 decoder-only model that conditions the generation of Crystallographic Information Files (CIFs) on a continuous diffraction profile rather than a peak list, using a Perceiver Resampler prefix (PrefixXRD) that compresses the pattern into learned key-value tokens injected at every transformer layer.
The model consumes the whole pattern:
- Scattering vector (Q) on a fixed 1000-point grid,
arange(0, 10, 0.01)Å⁻¹ - Intensity (I), max-normalised to $[0, 1]$
This removes the peak-picking step from the workflow: a raw diffractometer scan is converted to the (1000, 2) [Q, I] profile automatically at generation time. Because Q is wavelength-independent, patterns from any anode can be used as long as the wavelength is supplied.
Trained from scratch on MP-20, this is the benchmark model behind the MP-20 XRD-guided structure prediction comparison. For application use, c-bone/CrystaLLM-cXRD_chili100k (experimental nanomaterials) or c-bone/CrystaLLM-cXRD_alex-mp-20 (broad computed distribution) are the better choices.
- Developed by: Bone et al. (University College London)
- Model type: Autoregressive Transformer with Perceiver prefix conditioning (~36.5M parameters)
- Language(s): CIF (Crystallographic Information File) syntax
- License: MIT
- Finetuned from model: none, trained from random initialisation
Model Sources
- Repository: GitHub: CrystaLLM-pi (generation), GitHub: CrystaLLM-cXRD (training and benchmarks)
- Paper: To add
- Dataset: HuggingFace: c-bone/cxrd_mp20
Uses
Direct Use
Structure generation from powder XRD on the MP-20 distribution, and the reference point for the MP-20 benchmark. Pass a raw two-column scan and a target composition; the model proposes candidate structures consistent with the diffraction signature.
Out-of-Scope Use
- Disordered Systems: No native handling of partial occupancies or significant disorder.
- Experimental nanomaterials: MP-20 is a computed, fully ordered distribution. Use the CHILI-100K model for experimental patterns.
- Unconditional generation: The model requires a diffraction profile at every forward pass and has no missing-conditioning fallback.
- Non-CuKα data without a declared wavelength: CuKα1 is assumed when none is given, which silently misplaces every peak in Q.
Bias, Risks, and Limitations
- Computed-data bias: Training patterns are simulated from relaxed DFT structures, so peak shapes are cleaner and more ordered than laboratory scans.
- Preprocessing sensitivity: Recovery depends on the background subtraction and wavelength used to build the profile. Inspect the conversion (
--save_plot) before trusting a result. - Measured range: Regions of the Q grid outside the measured scan are zero-filled; short scans give the model less to work with.
- Context window: 1024 tokens (plus 8 prefix tokens), so very large unit cells will not fit.
Getting started
For generation from a scan, use T4_XRD_continuous.ipynb in CrystaLLM-pi. For the benchmark this model was trained on, see B1_mp20_benchmark.ipynb.
Citation
Papers to cite:
@misc{bone2025discoveryrecoverycrystallinematerials,
title={Discovery and recovery of crystalline materials with property-conditioned transformers},
author={Cyprien Bone and Matthew Walker and Bradley A. A. Martin and Kuangdai Leng and Luis M. Antunes and Ricardo Grau-Crespo and Amil Aligayev and Javier Dominguez and Keith T. Butler},
year={2025},
eprint={2511.21299},
archivePrefix={arXiv},
primaryClass={cond-mat.mtrl-sci},
url={https://arxiv.org/abs/2511.21299},
}
and
To add
- Downloads last month
- -