Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AtomGPT: atomistic generative pre-trained transformer for forward and inverse materials design

Large language models (LLMs) such as ChatGPT have shown immense potential for various commercial applications, but their applicability for materials design remains underexplored. In this work, AtomGPT is introduced as a model specifically developed for materials design based on transformer architectures, demonstrating capabilities for both atomistic property prediction and structure generation tasks. This study shows that a combination of chemical and structural text descriptions can efficiently predict material properties with accuracy comparable to graph neural network models, including formation energies, electronic bandgaps from two different methods, and superconducting transition temperatures. Furthermore, AtomGPT can generate atomic structures for tasks such as designing new superconductors, with the predictions validated through density functional theory calculations. This work paves the way for leveraging LLMs in forward and inverse materials design, offering an efficient approach to the discovery and optimization of materials.

AtomGPT layer schematic

Both forward and inverse models take a config.json file as an input. Such a config file provides basic training parameters, and an id_prop.csv file path similar to the ALIGNN (https://github.com/usnistgov/alignn) model. See an example here: id_prop.csv.

Installation

First create a conda environment: Install miniconda environment from https://conda.io/miniconda.html Based on your system requirements, you'll get a file something like 'Miniconda3-latest-XYZ'.

Now,

bash Miniconda3-latest-Linux-x86_64.sh (for linux)
bash Miniconda3-latest-MacOSX-x86_64.sh (for Mac)

Download 32/64 bit python 3.10 miniconda exe and install (for windows)

conda create --name my_atomgpt python=3.10
conda activate my_atomgpt
git clone https://github.com/usnistgov/atomgpt.git
cd atomgpt
pip install -q -r dev-requirements.txt
pip install -q -e .

As an alternate method, AtomGPT can also be installed using pip command as follows:

pip install atomgpt

Forward model example (structure to property)

Forwards model are used for developing surrogate models for atomic structure to property predictions. It requires text input which can be either the raw POSCAR type files or a text description of the material. After that, we can use Google-T5/ OpenAI GPT2 etc. models with customizing langauage head for accomplishing such a task. The description of a material is generated with ChemNLP/describer function. If you turn convert to False, you can also train on bare POSCAR files.

python atomgpt/forward_models/forward_models.py --config_name atomgpt/examples/forward_model/config.json

Inverse model example (property to structure)

Inverse models are used for generating materials given property and description such as chemical formula. Currently, we use Mistral model, but other models such as Gemma, Lllama etc. can also be easily used. After the structure generation, we can optimize the structure with ALIGNN-FF model (example here and then subject to density functional theory calculations for a few selected candidates using JARVIS-DFT or similar workflow (tutorial for example here. Note that currently, the inversely model training as well as conference requires GPUs.

python atomgpt/inverse_models/inverse_models.py --config_name atomgpt/examples/inverse_model/config.json

More detailed examples/case-studies would be added here soon.

Google colab/Jupyter notebook

NotebooksGoogle ColabDescriptions
Forward/Inverse Model trainingOpen in Google ColabExample of installing AtomGPT, inverse model training for 5 sample materials, using the trained model for inference, relaxing structures with ALIGNN-FF, generating a database of atomic structures, train a forward prediction model.
HuggingFace model inferenceOpen in Google ColabAtomGPT Structure Generation/Inference example with a model hosted on Huggingface.

For similar other notebook examples, see JARVIS-Tools-Notebook Collection

HuggingFace link 🤗

https://huggingface.co/knc6

Referenes:

  1. AtomGPT: Atomistic Generative Pretrained Transformer for Forward and Inverse Materials Design
  2. ChemNLP: A Natural Language Processing based Library for Materials Chemistry Text Data
  3. JARVIS-Leaderboard
  4. NIST-JARVIS Infrastructure

How to contribute

For detailed instructions, please see Contribution instructions

Correspondence

Please report bugs as Github issues (https://github.com/usnistgov/atomgpt/issues) or email to kamal.choudhary@nist.gov.

Funding support

NIST-MGI (https://www.nist.gov/mgi) and CHIPS (https://www.nist.gov/chips)

Code of conduct

Please see Code of conduct

About

AtomGPT & DiffractGPT : Generative Pretrained Transformer Models for Forward and Inverse Materials Design https://www.youtube.com/@dr_k_choudhary

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages