MIT打造實驗科學家的大模型助手,語音聊天就能開展實驗
目前,人工智能以及自主實驗室主要由 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” 的合作模式下,雙方都能發揮出各自的優勢,“各盡其才”。