Instructions to use c-bone/CrystaLLM-cXRD_alex-mp-20 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use c-bone/CrystaLLM-cXRD_alex-mp-20 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="c-bone/CrystaLLM-cXRD_alex-mp-20")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, PrefixXRDGPT tokenizer = AutoTokenizer.from_pretrained("c-bone/CrystaLLM-cXRD_alex-mp-20") model = PrefixXRDGPT.from_pretrained("c-bone/CrystaLLM-cXRD_alex-mp-20", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use c-bone/CrystaLLM-cXRD_alex-mp-20 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_alex-mp-20" # 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_alex-mp-20", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/c-bone/CrystaLLM-cXRD_alex-mp-20
- SGLang
How to use c-bone/CrystaLLM-cXRD_alex-mp-20 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_alex-mp-20" \ --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_alex-mp-20", "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_alex-mp-20" \ --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_alex-mp-20", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use c-bone/CrystaLLM-cXRD_alex-mp-20 with Docker Model Runner:
docker model run hf.co/c-bone/CrystaLLM-cXRD_alex-mp-20
Model Card for CrystaLLM-cXRD_alex-mp-20
Model Details
Model Description
CrystaLLM-cXRD_alex-mp-20 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 on Alex_Mp_20, this is the broad-distribution cXRD model. For experimentally determined inorganic nanomaterials, its CHILI-100K finetune c-bone/CrystaLLM-cXRD_chili100k is the stronger choice.
- 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:
c-bone/CrystaLLM-pi_base, the LeMat-Bulk pretrained base
Model Sources
- Repository: GitHub: CrystaLLM-pi (generation), GitHub: CrystaLLM-cXRD (training and benchmarks)
- Paper: To add
- Dataset: HuggingFace: c-bone/cxrd_alex-mp-20
Uses
Direct Use
Structure generation from powder XRD across a broad inorganic distribution. Pass a raw two-column scan and a target composition; the model proposes candidate structures consistent with the diffraction signature. Also the recommended starting point for finetuning a cXRD model onto a new material family.
Out-of-Scope Use
- Disordered Systems: No native handling of partial occupancies or significant disorder.
- Experimental nanomaterials: Alex_Mp_20 is a computed, fully ordered distribution. Use the CHILI-100K finetune 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. The CHILI-100K model is finetuned from this checkpoint; see B2_chili100k_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
- -