
事實證明,AI 可發揮倍增效應,幫助創造一種未來,科學家可以設計全新材料,而工程師可以將這些設計無縫轉換為生產計劃,而這一切都無需涉足實驗室。隨著 AI 不斷重新定義創新界限,這種曾經難以實現的願景現在更觸手可及。
認識到這種範式轉變後,AI、化學和材料科學交叉領域的專業知識正在融合。AI 專家、化學家和材料科學家之間的這種跨學科合作旨在超越傳統的、難以擴展的試錯方法。
他們正在共同構建 AI 模型和資料集,將設計到生產的週期從十年縮短到幾個月,志在實現從高效電池到可生物降解聚合物的下一代創新。
本文將介紹 NVIDIA ALCHEMI (AI 實驗室用於化學和材料創新),旨在利用 AI 加速化學和材料的發現。
AI 加速的化學和材料發現工作流程
新型材料的發現大致可以分為四個階段:
假設生成
解空間定義
屬性預測
實驗驗證

假設生成
見解合成:快速合成基於化學資訊的大語言模型(LLM)(即根據化學文獻訓練或微調的 LLM),以合成大量化學文獻。
假設表述:利用化學資訊型語言模型作為思想合作夥伴來制定和完善假設,利用語言模型的能力在看似無關的概念之間建立聯繫。
解空間定義
大型資料庫搜索: 從現有化學資料庫中識別出感興趣的子空間。
有針對性的結構生成: 採用生成式 AI,根據所需的屬性提出新的科學候選者。
屬性預測
分子表徵學習: 利用習得的分子表徵來預測候選項在解決方案空間中的屬性。
原子模擬: 應用 AI 代理 (MLIP、GNN) 預測高保真屬性。
密度泛函理論(DFT)驗證: 通過 DFT 模擬驗證預測屬性。
實驗驗證
候選推薦: 提出要在實驗室中驗證的候選(例如,通過貝葉斯優化來平衡已知化學的利用與白色空間的探索)。
實驗自動化:利用支援人工智慧的自動駕駛實驗室和主動學習,加速實驗室合成和測試。
加速化學和材料科學的研發
NVIDIA ALCHEMI 致力於借助 AI 的強大功能加速化學和材料科學的研發。ALCHEMI 將為開發者和研究人員提供 API 和 NVIDIA NIM 加速的推理微服務,從而實現:
創建和部署生成式 AI 模型,以探索廣闊的材料宇宙,並根據所需的屬性推薦新的潛在候選材料。
與密度泛函理論(Density functional theory,DFT)等傳統的 從頭算 模擬方法相比,開發和利用人工智慧代理模型,在準確性和計算成本之間實現平衡。
可訪問的化學和材料資訊學工具和預訓練的基礎模型,用於將材料表示映射到屬性,以進行快速篩選。
用於生成合成資料集的仿真工具,以便針對新用例訓練和微調人工智慧模型。
NVIDIA ALCHEMI 正在推出首款加速材料發現的 NIM,專注於加速一類名為機器學習原子間相互作用電位(MLIPs)的 AI 代理模型的常見但重要的應用。
機器學習原子間交互潛力
在深入瞭解 NIM 之前,最好先介紹幾個背景概念。傳統的計算方法多種多樣,從經典物理學到精確解,不一而足。每種方法都需要在準確性和計算成本之間進行權衡。精度更高的方法(例如 DFT)計算成本要高得多。例如,對具有 10 個原子的系統進行 DFT 計算需要幾分鐘,而對 100 個原子進行計算則需要幾個小時。但是,對於原子數超過 1000 的系統,DFT(按原子數立方擴展)可能需要數周時間,因此對於大型複雜系統(例如具有 102 至 106 個原子的納米粒子、具有 104 至 105 個原子的蛋白質)或作為高吞吐量模擬的一種方法,DFT 無法實現。
通過利用 AI 將原子結構映射到勢能和原子力,MLIP 可在準確性和計算成本方面提供最佳性能(圖 2)。MLIP 通常使用 GNN 將原子結構表示為圖形,將原子表示為節點,將預設截止半徑內的原子間距離表示為邊緣。這使 GNN 能夠輕鬆捕捉構成分子或材料的原子之間的空間關係。
從材料屬性預測到大規模分子動力學模擬,MLIP 在化學、材料科學和生物學領域應用廣泛。這與物理資訊神經網路(PINNs)形成對比,後者嵌入物理方程中的知識,主要與計算流體動力學相關。

幾何鬆弛
在許多化學和材料發現工作流程中,一項關鍵任務是通過幾何優化和能量比較來區分穩定材料和不穩定材料。這在涉及生成模型的工作流中尤為重要,因為生成的候選項本身可能並不穩定。
在幾何鬆弛期間,材料的能量通過迭代評估每個原子上的力(推理)和調整原子在勢能井底部方向的位置(優化)來最小化。每種候選材料可能需要數千個鬆弛步驟來實現此最低能耗。然後,通過將穩定材料的能量與其他候選材料進行比較來確定其優先級,以便根據所需屬性進行進一步評估。
NVIDIA 批量幾何鬆弛 NIM
雖然 MLIPs 可顯著加速幾何松的能量和力計算 (與完整的 DFT 相比),但實際實施仍然非常耗時。這就是為甚麼 NVIDIA 開發了 NVIDIA Batched Geometry Relaxation NIM,以加速幾何松計算。NVIDIA NIM 只是一個公開 API 的容器。此 NIM 側重於加速潛在電池材料的幾何松,分別使用 MACE-MP-0 和 AIMNet2 模型在 Atomic Simulation Environment (ASE) 中。傳統的基於 CPU 的模擬工作負載只能部分利用 MLIPs 的全部性能,並且在 CPU-GPU 資料移動中會產生嚴重的通信損失。此外,MLIPs 通常未充分利用 GPU,因為它們一次只處理一個系統。
通過利用 NVIDIA Warp (用於編寫 GPU 加速模擬代碼的 Python 開發者框架),您可以編寫常規的 Python 函數,並讓 Warp 在運行時將其編譯為高效的 GPU 內核代碼。您無需一次進行一次幾何放鬆,而是可以啓動批量幾何放鬆模擬,從而高效並行運行數百項能量最小化操作,並最大限度地利用可用 GPU 資源。這一點至關重要,因為每個候選者都需要數千個放鬆步驟。
表 1 顯示了在單個 NVIDIA H100 80 GB GPU 上使用 MACE-MP-0 模型 和 ASE FIRE 幾何優化器 的 2,048 個中小型無機晶體系統(每個週期單元 20-40 個原子)的結果。對於不使用 NVIDIA Batched Geometry Relaxation NIM 的 2,048 個樣本,使用 NIM 大約需要 15 分鐘,而使用 NIM 大約需要 36 秒,加速約為 25 倍。將批量大小從 1 增加到 128,可進一步將幾何鬆弛加速至 9 秒,代表約 100 倍的加速。
| 分批幾何松 NIM | 批量大小 | 總時間 | 每個系統 (秒/系統) 的平均時間 | 近似加速 |
| 關閉 | 1 | 874 | 0.427 | 1 倍 |
| 開啓 | 1 | 36 | 0.018 | 25 倍 |
| 開啓 | 128 | 9 | 0.004 | 100 倍 |
表 2 顯示了使用 AIMNet2 和 ASE FIRE 對 GDB-17 資料庫中的 851 種中小型有機分子 (~20 個原子/分子) 的可比加速情況。啓用 NIM 後,加速度約為原來的 60 倍,從 11 分鐘縮短到 12 秒。通過將批處理大小從 1 增加到 64 (表示加速約為 800 倍),可以觀察到進一步的加速。觀察到的加速差異 (使用 MACE-MP-0 時為 100 倍,使用 AIMNet2 時為 800 倍) 源於建模系統 (週期晶體與小分子),而非部署的模型。
| 分批幾何松 NIM | 批量大小 | 總時間 | 每個系統 (秒/系統) 的平均時間 | 近似加速 |
| 關閉 | 1 | 678 | 0.796 | 1 倍 |
| 開啓 | 1 | 12 | 0.014 | 60 倍 |
| 開啓 | 64 | 0.9 | 0.001 | 800 倍 |
SES AI 是領先的鋰金屬電池開發商,正在探索將 NVIDIA ALCHEMI NIM 微服務與 AIMNet2 模型結合使用,以加速識別電動汽車所用的電解質材料。
SES AI 首席執行官 Qichao Hu 表示:「SES AI 致力於通過 AI 加速的材料發現來推進鋰電池技術的發展,使用我們的 Molecular Universe 專案來探索和識別有潛力的鋰金屬電解質發現候選產品。「使用 ALCHEMI NIM 微服務與 AIMNet2 結合,能夠顯著提高我們繪制分子屬性的能力,從而大幅節省時間和成本,並加速創新。」
SES AI 最近在半天內繪制出 100,000 個分子,有可能使用 ALCHEMI 在一小時內實現這一目標,這表明微服務將對材料篩選效率產生變革性影響。
展望未來,SES AI 的目標是在未來幾年內繪制多達 10 億個分子的屬性地圖,推動 AI 驅動的高吞吐量發現。
開始使用 NVIDIA 批量幾何放鬆 NIM
要開始使用批處理幾何圖形鬆弛(Batched Geometry Relaxation)NIM,您需要以下內容:
熟悉 Python 和 ASE
具備運行 Docker 容器的知識
需要 MACE-MP-0(材料)或 AIMNet2(分子)模型
程序
請務必理解,NVIDIA NIM 只是一個公開 API 的容器。與 NIM 交互涉及兩個關鍵步驟:
首先,啓動 NIM 容器:
docker run --rm -it --gpus all-p 8003:8003 <NIM container address> |
請注意,--gpus all 指示 NIM 將在哪些設備上加載模型和優化器的單獨實例。如果存在多台設備,NIM 將在可用的模型實例之間分發請求。其次,我們公開連接埠轉發 8003:8003,將本地連接埠 8003 映射到容器連接埠 8003,這是 NIM API 的默認通信連接埠。客戶端的請求將被路由到此連接埠。
接下來,啓動並實例化容器後,您現在可以提交請求:
import os, requests, jsonimport numpy as np from ase import Atomsfrom ase.io.jsonio import MyEncoder, decodeatoms: list[Atoms] = # This is your ase.Atoms input molecules# Define the url of the NIM# below is a typical local IP address and porturl: str = 'http://localhost:8003/v1/infer'# Prepare input atoms by converting to jsondata = {"atoms": json.dumps(atoms, cls = MyEncoder)}headers = {'Content-Type': "application/json"}# Submit request to NIMresponse = requests.post(url, headers = headers, json=data)response.raise_for_status()# Convert from json output back to ase.Atomsoptimized_atoms = decode(response.json()) |
注意事項:
鑒於 ASE 是一種熱門的分子建模 Python 包,輸入資料以
ase.Atoms的形式表示,這是描述材料系統的一種靈活方式。The user must provide the URL of the NIM. This URL, http://localhost:8003/v1/infer, comprises three components:
IP 地址:本例中的
localhost連接埠:
8003已映射到 Docker 命令中NIM 推理 API 端點:
v1/infer用戶使用
ase實用程序將ase.Atoms轉換為 .json 字符串,並使用requests庫提交請求。這個 POST 請求將資料傳輸到「批量幾何鬆弛 NIM」,並從客戶端代碼異步啓動鬆弛過程。當分子或材料收斂到鬆弛狀態時,它們會被傳回客戶端,並可以轉換回ase.Atoms,如上面的代碼片段所示。
WeChat
Profile