分享

ChatGPT 能为计算材料科学做些什么?未来会取代计算材料科学家吗?

 天承办公室 2023-04-20 发布于江苏

ScienceAI 设为星标

第一时间掌握

新鲜的 AI for Science 资讯

图片


图片

编辑 | 绿萝

ChatGPT 已火爆全球,它可以完成一系列具有挑战性的任务,比如撰写论文、编程、作曲、绘画等。

但 ChatGPT 在计算材料科学中的潜在应用还有待讨论。

近日,浙江大学材料科学与工程学院洪子健在《Energy Material Advances》发表题为「ChatGPT for Computational Materials Science: A Perspective」(《用于计算材料科学的 ChatGPT:一个 Perspective》)的展望文章。

作者简要讨论了 ChatGPT 可能应用于计算材料科学的 3 个方面,即生成结构、计算材料软件编程,数据可视化等。

研究发现,虽然 ChatGPT 在尝试完成一般任务时可能会犯一些简单的错误,但其具有在人类交流过程中「学习」的能力。同时,现阶段 ChatGPT 仍存在如下问题:输出的一致性、隐藏错误和伦理问题等。作者希望这一观点能够激发人们对 ChatGPT 在计算材料科学中的潜在应用的进一步兴趣。

图片

论文链接:https://spj./doi/10.34133/energymatadv.0026

ChatGPT 最近在社交媒体和科学界引起了极大的关注。它可以完成许多过去认为是人类智能的工作,如写作,编程,作曲等。

洪子健说:「作为一名计算材料科学家,我总是渴望拥抱新工具,特别是计算机科学和人工智能领域的新工具。自从新的 ChatGPT 诞生以来,我想知道这样一个工具是否可以帮助我们进行计算材料科学。」

机器学习是计算机科学中的一种革命性工具,已广泛应用于计算材料科学的各个领域,例如预测材料特性、图像识别和处理等。从这个角度,将简单讨论:ChatGPT 能为计算材料科学做些什么?如何利用这样的工具来帮助我们进行科学计算?ChatGPT 将来会取代计算材料科学家吗?

生成结构

首先,构建模型或结构是计算材料科学的第一步。以密度泛函理论(DFT)为例,构建合适的分子或晶体结构是计算的第一步。首先,让 ChatGPT 帮助我们构建原子结构。假设想通过 DFT 研究锂金属表面(电池和能源科学中最重要的表面之一),则需要构建锂金属 Slab 模型。

为此,作者在今年 2 月 20 日询问了 ChatGPT:「Can you generate a cif for lithium Slab?」 (你能帮我生成一个锂 Slab 的 cif 文件吗?)」 ,它给出了一串代码,画出的结果如图 1A 所示。这个更像是锂的单胞而不是 Slab。进一步询问:「 Can you expand to 16 atoms?」(「你能扩展到 16 个原子吗?」),然后,它会生成一个奇怪的输出,结果出来一个内含有 16 个随机分布原子的结构(图 1B)。

图片

图 1:利用 ChatGPT 给出的代码生成的一些锂金属结构。(来源:论文)

有趣的是,当作者在最初提交手稿 20 天后再次问同样的问题时,输出完全不同。它表示自己作为一个 AI 模型,不能生成 cif 文件,而是给出一些使用 VESTA 或 Materials Studio 的建议,或在晶体学开放数据库 (COD) 和无机晶体结构数据库 (ICSD) 中搜索预生成的 cif 文件。有时,它可能还会提供不正确的示例 cif 文件。

然而,如果作者通过输入「 Lithium is bcc, can you generate a cif for lithium metal slab」(「锂是 bcc,你能帮我生成一个锂 Slab 的 cif 文件吗?) 来提供更多信息,例如晶体结构,那么它将生成体心立方 (BCC) 晶格,如图 1 C 所示。可以进一步要求它扩展到 16 个原子,如图 1D 所示。

这个例子表明,尽管 hatGPT 有时候没法得到完全正确的结果,它会给我们一些提示。当我们给它更多信息的时候,它具有从我们的信息中「学习」的能力。

为特定科学软件编写代码

下一步是编写特定脚本,用于在特定科学计算软件上运行模拟。想象一下,要使用开源 DFT 软件 GPAW 对 bulk 硅(一种广泛应用于光伏和半导体器件的重要材料)进行能带结构计算。

可以问 ChatGPT:「can you write a GPAW code for calculating the band structure of Si」(「你能写一个计算 Si 能带结构的 GPAW 代码吗」);它会给你一个看起来非常类似于我们在 GPAW 官方网站上可以找到的代码,尽管它会使用不正确的属性,例如「gpaw.Cell」和「gpaw.Atoms」。(2023 年 2 月 20 日)

值得注意的是,如果作者进一步问:「can you write a GPAW code for calculating the band structure of SiO2」(「你能写一个计算 SiO2 能带结构的 GPAW 代码吗」),它会假设之前的代码是正确的,并通过简单地用 SiO2 替换 Si 并改变晶格参数 a 来生成新代码,忽略了 SiO2 的稳定构型不是立方体这一事实。

令人惊讶的是,当作者在 20 天后执行类似的请求时,会获得不同的输出,其中 Si 的大部分代码是正确的,这将正确地进行结构最小化并给出优化的 Si 晶胞的输出。但是,它也会给出一个不存在的名为「calc.get_band_structure」的错误属性。然后,作者尝试通过输入 「please use calc.band_structure since there's no attribute get_band_structure」(「请使用 calc.band_structure,因为没有属性 get_band_structure」来「教」ChatGPT 没有名为「calc.get_band_structure」的属性),它会立即更正此错误。

而对于 SiO2,作者在 2023 年 3 月 10 日访问 ChatGPT 时也得到了新的输出,它使用「方英石」作为 SiO2 的默认结构,不同的 250 eV ecut(与 Si 的 150 eV)和不同的 kpts_path( 「G」、「M」、「X」、「R」、「G」),表明机器人已经进化到一定程度,它知道改变一些输入参数。然后可以通过输入「教」它改变为石英结构:「SiO2 的晶体结构是石英」;然后,将生成石英相中的 SiO2 bulk 结构。

数据可视化

最后一步是数据可视化。作者选取了一个简单的例子「Can you write a script for 3 dimensional vector plot with MATLAB, do the plotting from data.dat」 (你能否用 MATLAB 写一个三维矢量图的脚本,从 data.dat 中进行绘图?)。它给出一个使用「quiver3」函数来做三维矢量图的代码;但是数据维度 quiver3(x, y, z)不正确,应该写成quiver3(x, y, z, u, v, w)。然后,作者尝试通过输入:「The data.dat has six dimensions, the first three dimension is the coordinate, can you do the plotting again」(「data.dat 有六个维度,前三个维度是坐标,你能再画一遍吗?」),这时,它就可以给出一个简单的正确作图程序。简单数据作图结果如图 2 所示。

图片

图 2:基于 ChatGPT 给出的代码利用 MATLAB 做出的三维箭头图。(来源:论文)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多