目前,人工智能以及自主实验室主要由 Python 等语言编写,然而,并非所有实验科学工作者都擅长使用这类编程语言,因而其在真实世界实验中的影响力还是比较有限。
最近,基于 OpenAI 发布的 ChatGPT API 函数调用功能,打造一个曾经只能在钢铁侠电影中看到的贾维斯智能助手已成为了可能。
近日,来自 MIT 李巨教授团队开发了一个专为实验科学家量身打造的人工智能助手 CRESt(Copilot for Real-world Experimental Scientist),后端是用 ChatGPT 作为核心串联起来的,其具有以下特点:(1)可以调用真实世界的机械臂进行自动化实验,(2)自主查找本地或网上专业的材料数据库,(3)提供优化材料配方的主动学习算法。
CRESt 前端已经实现了 voice-in voice-out、AI 生成语音,以及多平台无缝切换。有了 CRESt 之后,即使没有任何代码经验,科研工作者也能通过与其口头对话来利用自动化实验平台帮自己做实验。
图片
论文地址:https://doi.org/10.26434/chemrxiv-2023-tnz1x
接下来,我们看看 CRESt 效果具体如何?前面我们已经强调了,你可以与 CRESt 进行对话,从而开始任务。下面我们大概展示一下具体的任务流程,了解更详细信息,可以查看视频。
首先告诉 CRESt,任务要开始了。CRESt 会询问今天要进行的项目名称。
如果你一时忘记了有哪些项目,不用担心,你可以咨询 CRESt。CRESt 会清楚的列举你正在进行的项目名称以及简短的项目描述。
图片
在汇报完项目列表后,CRESt 会询问这次进行哪个项目。得到用户回复后,CRESt 还会询问实验细节,例如如何决定下一批实验的配方,是采用手动选择,还是采用主动学习?
图片
进行完这一步后,你突然又想了解存储在数据库中的一些内容,这时你可以要求 CRESt 读取数据库内容,帮你解答疑问:
图片
根据抽取的数据库内容,假如你想修改实验的某些部分,可以告诉 CRESt,CRESt 根据指示进行修改。接下来,CRESt 会提醒你需要检查设备:
图片
CRESt 还会询问你是否需要在实验开始和结束时发送电子邮件,并确定按照以上修改方法,实验是否开始,在得到明确的回复后,CRESt 启动实验。这时你也不用随时盯着实验,你可以去吃饭或者干其他事情,其他交给 CRESt 就可以了:
图片
实验过程中的样品制备,所有这些都是 CRESt 自己操控的:
图片
试验之后,你可以要求 CRESt 发送实验录像到手机上,之后你会收到实验录像邮件:
图片
CRESt 发送的实验录像
项目介绍
CRESt “操作系统” 主要由四部分组成:用户界面,ChatGPT 后端,主动学习和末端执行器。
用户界面基于 chatgpt-voice,一个支持语音转文本和文本转语音交互的 Github 项目。其便捷的网络框架使得用户可以在离开实验室后,在手机上无缝地继续对话 —— 因为后端是独立运行的,即使前端改变也不会受到影响。
此外,作者还将实时生成逼真人声的 ElevenLabs AI 语音集成到前端中。从前端收集到的文本消息随后将被传输到建立在 CallingGPT 基础之上的 ChatGPT 后端。CallingGPT 是另一个 Github 项目,其能将 Google docstring 样式记录的 Python 函数转换成 ChatGPT API 可以识别的 JSON 格式,以供在 ChatGPT 认为需要时调用。此外,它在 ChatGPT 和本地 Python 函数库之间形成一个闭合的反馈回路:ChatGPT 所建议调用的函数将立即在本地执行,并且其返回值将发送回 ChatGPT。
除此之外,作者还在 CRESt 中嵌入了主动学习算法。得益于在小数据集上不错的性能,主动学习被认为是最适合实验科学的机器学习算法之一。在涉及真实物理世界实验的机器学习项目中,数据采集往往是最大的挑战。与虚拟世界不同,真实物理世界中的每一个数据点可能都需要花费大量的时间和金钱。一般来说,一个 1000 个点的数据集就已经是相当不错的了。在这样的条件下,如何对设计空间进行高效取样变得至关重要。主动学习的主要功能是交互式地建议在下一批实验中测试的参数组合,比如在视频中展示的合金配方推荐。
在 CRESt 中内嵌的是由 Meta 团队开发的基于 BoTorch 的 Ax 平台。Ax 有着优秀的 SQL 存储功能:即使 GPT 后端重置,也可以通过调取数据库中存储的记录来继续之前的主动学习。
末端执行器是一系列通过 HTTP 请求调用的子程序。其中一些可能涉及信息检索任务(本地或公共数据库查询,如 Materials Project ),而其他一些可能会对物理世界产生真实的影响,就像在视频中展示的那样(液体处理机器人、激光切割机、泵、气阀、机械臂等),主要是用于做实验的一些自动化的硬件。这些设备的自动化主要由 PyAutoGUI 实现,一个可以模拟人类鼠标和键盘动作的 Python 库。 然而,作者预期这个冗余步骤最终将失去其必要性,因为在不久的将来大多数实验室设备都应该会在人类交互界面之外提供一个专用的 AI 通信接口。
展望
大语言模型可以为科学和工程领域带来什么?这是作者团队自 ChatGPT 问世以来一直在思考的问题。毫无疑问,大语言模型已经展示了其作为文献整理员的超凡潜力,我们需要做的只是在预训练过程中向其提供更多的文献全文。除此之外还有哪些可能性呢?除了我们以 CRESt 形式开发的实验员助手的角色,我们设想大语言模型至少还会在以下三个维度发挥作用:
仪器技术指导员。目前,研究人员必须理解他们所使用技术的理论基础,以及个别仪器的具体操作(有时是基于经验的 “技巧”、“手艺”),而这些操作可能会因制造商而异。后者往往意味着耗费巨大的时间成本,例如面向一个公共仪器的一系列培训课程,或者阅读一个组内仪器的 200 页说明书,以及上百小时的实操练习。但深入思考一下,这些步骤真的是必要的吗?我们预见,在不久的将来,研究人员只需要清楚地用自然语言表达他们的需求,大语言模型就能够将这些需求翻译成最佳的参数设置(其实这就是现在一些仪器专家正在做的事情,了解客户的需求,并转化成仪器参数设定 / 操作)。必要时,大语言模型也可以将说明书中的对应部分提供给用户以便用户了解详情。从技术上来说,仪器制造商只需要适当地微调一个大语言基础模型,让其学习公司内高级技术员所掌握的仪器操作经验即可,这件事从今天就可以着手进行。
流水线诊断师。结合了多传感器的机器人或无人机后,大语言模型可以帮助确定实验可重复性不佳的根本原因。在未来,最理想的实验范式是记录每个样品整个生命周期中的所有元数据。当出现无法解释的现象时,所有相关的日志数据都将被输入到多模态大语言模型进行分析。利用其优秀的假说生成能力,大语言模型可以提出一系列潜在的原因,以供人类专家进一步调查他们认为最有可能的几个假说。这种方法也可以应用于工业流水线 —— 如果注意到生产产量 / 良品率大幅下降,大语言模型可以通过对比流水线历史记录来识别 "罪魁祸首"。只有需要复杂的现实世界操作时,人类工程师才需要介入,除此以外大语言模型可以直接对大概率出了问题的子环节进行参数微调。实现这个角色的前提条件是大语言模型可以处理大量的图像(视频),且其性能取决于多模态信息(样品元数据,视觉信息,声音信息等)的对齐程度。
机理猜想者。我们预期大语言模型十分擅长将已建立的科学原理用于解释新的实验现象。科学机理探索阶段的很大一部分工作都是模式匹配型工作(例如,从光谱中提取微小的特征并与标准数据库进行比较),这些都在大语言模型的能力范围内。在不久的将来,这个工作流将会变的非常简单直接,我们只需要问大语言模型:我们制备并测试了一个样品,它的成分是 xxx,处理工艺和参数是 xxx,其性能是 xxx。这是所有的表征结果(扫描电子显微镜,X 射线衍射等),请给出 10 个理由详细表述为什么这个样品的性能这么好。人类研究者可以从大语言模型生成的一系列叙述中筛选出最合理的解释,并以此为基础完善整个机理解释。然而,这个任务是所有我们预想的大语言模型的角色中最具有挑战性的,其实现的前提条件包括(i)图像输入和与科学术语的对齐,(ii)从专业物理科学数据库中检索特定信息的能力,(iii)大语言模型在科学期刊正文和附录的预训练,(iv)大语言模型有能力调用一系列前沿的子领域的机器学习模型或是仿真模型。
总结
CRESt 只是大语言模型协助科学家的一个起点,我们相信大语言模型的真正潜力在于其假说生成能力。人类拥有相对有限的知识库,但出色的因果推理能力使得我们能够给出虽然数量不多但一针见血的假说。相比之下,人工智能有着广泛的知识库以及从大数据中提取统计信息的能力,因此它们可以在短时间内生成大量的,没那么精准的假说。因此,这不是一个人工智能与人类竞争的故事,而是人工智能补足人类短板的故事。在 “AI suggests, humans select” 的合作模式下,双方都能发挥出各自的优势,“各尽其才”。