MolReGPT: 利用大型語言模型探索分子發現——分子與文本描述間相互翻譯(1)
論文題目:Empowering Molecule Discovery for Molecule-Caption Translation with Large Language Models: A ChatGPT Perspective論文鏈接:https://arxiv.org/abs/2306.06615項目鏈接:https://github.com/phenixace/MolReGPT
01 介紹
圖1. 分子發現中分子(molecule)和分子文本描述(molecule caption)之間相互翻譯的說明。(a) 分子可以用化學式、SMILES字符串和二維分子圖來表示。(b)分子文本描述生成(Molecule Captioning)的目的是生成一段文本去描述一個分子的結構、特性及功能,以便人類更好地理解。(c) 給定一段分子的文本描述,基于文本的分子生成旨在生成一個相應的分子 (Text-based Molecule Generation)。(d) 大型語言模型(如ChatGPT)可以通過相應的精心設計的提示(Prompt)實現分子文本描述生成(Mol2Cap)和基于文本的分子生成任務(Cap2Mol)。
分子是物質的基本組成,構成了周圍世界的復雜系統。分子由多個原子組成,以獨特的化學方式(例如化學鍵)結合在一起,并保留了由其特定結構決定的獨特的化學特性。有了對分子的全面了解,科學家可以有效地設計出具有不同特性和功能的材料、藥物和產品。
然而,傳統的分子發現有著漫長、昂貴和容易失敗的過程,在可擴展性、精確性和數據管理方面都存在限制。為了克服這些挑戰,人工智能(AI)等計算技術已經成為加速發現新分子的有力工具。
具體來說,分子可以被表示為一種簡化的分子字符串(SMILES字符串)。如圖1(a)所示,苯酚的結構可以用SMILES字符串表示,它是由一個苯環和一個羥基組成。為了生成并更好地理解分子,Text2Mol[1]和MolT5[2]提出一項在分子和自然語言之間進行翻譯的新任務,即分子-文本描述間相互翻譯任務。
它由兩個子任務組成:分子文本描述生成(Mol2Cap)和基于文本的分子生成(Cap2Mol)。如圖1(b-c)所示,分子文本描述生成的目標是生成一個文本來描述分子的SMILES字符串,以便為人們提供一個更好的分子理解;而基于文本的分子生成旨在根據給定的自然語言描述(如屬性和功能團)生成相應的分子(即SMILES字符串)。
設想一下這樣的場景:
? 【分子翻譯成文本描述/分子文本描述生成任務Molecule Captioning( Mol2Cap)】一位醫生想知道藥物的性質,便將藥物分子和自己的問題一起交給大語言模型,模型便對分子的特性進行分析和預測,從而幫助醫生更好地對癥下藥。如圖1-b;
? 【文本描述翻譯成分子/基于文本的分子生成任務Text-based Molecule Generation(Mol2Cap)】一位化學家將自己的需求直接陳述給大語言模型,模型便幫助他生成了一個或多個候選分子,通過對候選分子的進一步實驗,就可以極大地簡化分子或藥物發現的流程。如圖1-c。
盡管現有的大多數工作在分子-文本描述間相互翻譯任務中取得了令人滿意的進展,但它們都存在幾個局限性。首先,分子-文本描述間相互翻譯任務中的模型架構的設計嚴重依賴領域專家,這大大限制了人工智能驅動分子發現的發展。第二,大多數現有方法遵循“預訓練&微調”的模型進行,這需要過多的計算成本。第三,現有的方法,如Text2Mol[1]和MolT5[2],不能對復雜的任務進行推理,也不能對未曾見過的樣本進行歸納。
最近,大語言模型(LLMs)在自然語言處理(NLP)領域取得了巨大的成就。LLMs除了在自然語言理解和生成方面具有令人印象深刻的能力外,還展示了強大的泛化和推理能力。它可以通過上下文學習(In-Context Learning,ICL)泛化到其他未見過的任務,而無需進行微調,在很大程度上降低計算成本。因此,LLMs在推進分子發現方面具有前所未有的潛力,特別是在分子-文本描述間相互翻譯任務方面。
盡管在分子發現中構建特定的LLMs對于推動科學研究有著巨大的潛力,但也面臨著巨大的挑戰。首先,由于隱私和安全問題,許多先進的大型語言模型(如ChatGPT和GPT4.0)是不公開的,也就是說, LLMs的架構和參數不公開發布,不可以在下游任務進行微調。其次,由于其復雜的架構和所需的大量數據,訓練先進的LLMs需要大量的計算資源。因此,重新設計自己的LLMs,并進行預訓練和微調是非常具有挑戰性的。最后,設計適當的準則或提示,并配以少量高質量的示例,對于提高LLMs對分子發現的理解和推理能力是至關重要的。
為了解決這些問題,來自香港理工大學和密歇根州立大學的研究人員在分子發現領域利用LLMs的強大功能進行了探索嘗試。他們提出了一個新穎的解決方案,使用提示來指導LLMs在分子和分子文本描述之間進行翻譯,如圖1(d)所示。具體來說,受最新的ChatGPT啟發,他們開發了一個基于檢索的提示范式MolReGPT[5],通過基于分子摩根指紋的相似性檢索/基于BM25的分子文本描述檢索和上下文學習(ICL)且不進行微調來進行兩個子任務(即通分子文本描述生成和基于文本的分子生成)。實驗表明,MolReGPT在Mol2Cap生成中可以達到0.560,在Cap2Mol生成中可以達到0.571,在分子-描述間相互翻譯的兩個子任務中都超過了微調的MolT5-base。MolReGPT在基于文本的分子生成方面甚至超過了MolT5,使Text2Mol的指標提高了3%。值得注意的是,MolReGPT在任務上的所有提升都是在沒有任何微調步驟的情況下實現的。
02 方法
圖2: MolReGPT的總體流程框架。
由于巨大的計算成本,在分子發現領域的特定語料庫上進行訓練和微調LLMs在實踐中往往是不可行的。為了解決這些限制,研究人員在不改變LLMs的情況下利用LLMs的強大能力,提出了一個創新性的框架MolReGPT,使ChatGPT具有分子-文本描述間相互翻譯的能力。具體來說,為了提高指導/提示的質量,他們引入了一個基于檢索的提示范式,在上下文學習下指導ChatGPT進行兩個與分子相關的任務:分子文本描述生成(MolCap)和基于文本的分子生成(Cap2Mol)。MolReGPT的框架如圖 2所示,由四個主要階段組成:分子-文本描述檢索、Prompt提示管理、上下文小樣本分子學習和生成校準。
1. 分子-文本描述檢索(Molecule-Caption Retrieval)(圖3):這個階段,用于從數據庫中檢索出n個與輸入分子或者分子文本描述最相似的分子-分子描述對(即小樣本學習的例子)。這個過程主要依賴于分子摩根指紋(針對Mol2Cap)和BM25(針對Cap2Mol)兩種檢索方法。
圖3: 分子-文本描述檢索(Molecule-Caption Retrieval)。
a. 基于摩根指紋的分子檢索(針對Mol2Cap)
圖4: 分子摩根指紋和Dice相似性圖示。綠色對應的是對分子間相似性分數有正貢獻的子結構,紫色部分對應的是對分子間相似性分數有負貢獻的或者有差異的子結構。
為了提取摩根指紋,使用rdkit庫將分子的SMILES表示轉換為rdkit對象。隨后應用Dice相似度,來衡量輸入分子和本地數據庫中的分子之間的相似度,如圖3所示。在數學上,可以表示為:
其中,A和B是兩個分子的摩根指紋。|A|和|B|表示A和B的基數(例如,子結構數量)。|A ∩ B|表示A和B共有的子結構的數量。Dice相似性的范圍是0到1,其中0表示分子之間沒有重疊或相似性,1表示完全重疊。
b. 基本BM25的分子文本生成檢索(針對Cap2Mol)
BM25是信息檢索中最具代表性的排名方法之一,用于計算文檔與給定查詢的相關性。在Cap2Mol任務中,使用輸入的文字描述作為查詢句子,而本地數據庫中的文字描述作為文檔的語料庫,其中每個文本描述代表一個文檔。在數學上,BM25公式可以定義如下:
其中,D是文本描述語料庫,Q使查詢的文本描述。N是查詢文本描述中查詢詞的數量,Qi是第i個查詢詞,IDF(Qi)是Qi的反文檔頻率,f(Qi,D)是Qi在D中的詞頻,k1和b是調整參數,|D|是D的長度,avgdl是語料庫中平均文本描述的長度。在文本描述檢索中,BM25被用于計算文本描述之間的相似性分數,這樣可以通過篩選分子-文本描述對來學習文本描述中所對應的相關分子結構。
2. Prompt提示管理 (Prompt Management) (圖5):這一階段主要對ChatGPT的系統提示進行管理和構建,Prompt提示中主要包括角色識別(Role Identification)、任務描述(Task Description)、檢索的示例(Examples)和輸出指示(Output Instruction)這四個部分。其中,示例將由第一步的檢索過程給出。每一部分都承擔著對輸出的特定指導作用。
圖5: Prompt提示管理 (Prompt Management)。
a. 角色識別(Role Identification)
角色識別的目的是幫助LLMs認知為在化學和分子發現領域的專家角色。通過認知為這個角色,鼓勵LLMs產生與特定領域預期的專業知識相一致的回答。
b. 任務描述(Task Description)
任務描述提供了對任務內容的全面解釋,確保LLM對他們需要處理的具體任務有一個明確的認識。它還包括關鍵的定義,以澄清分子-文本描述間相互翻譯任務中的專業術語或概念。
c. 檢索的示例(Examples)
將檢索的示例作為用戶輸入提示,使LLMs能夠利用小樣本學習示例中包含的信息作出更好的回應。
d. 輸出指示(Output Instruction)
輸出指示規定了響應的格式。這里,研究人員將輸出限制為JSON格式。選擇JSON格式可以快速有效地驗證LLMs的回答,確保它符合預期的結果,便于進一步處理和分析。
3. 上下文小樣本分子學習(In-Context Few-Shot Moleule Learning)(圖6): 在這個階段,系統提示和用戶輸入提示將會一起提供給ChatGPT進行上下文小樣本分子學習。這個過程基于大語言模型的上下文學習能力,僅僅依靠少量相似的樣本,就可以捕獲到分子的結構所對應的特性,來進行分子-文本描述間相互翻譯任務,而不需要對大語言模型進行微調。
系統提示和用戶輸入提示的結合通過上下文學習為ChatGPT提供了清晰的指引,系統提示建立了分子-文本描述間相互翻譯和分子領域專業知識的任務框架,而用戶提示則縮小了范圍,將模型的注意力引導到具體的用戶輸入上。
圖6: 上下文小樣本分子學習(In-Context Few-Shot Moleule Learning)。
4. 生成校準(Generation Calibration)(圖7): 在這個階段,系統會對ChatGPT的輸出進行校準,以確保其符合預期的格式和要求。如果輸出不符合預期,系統會重新交給ChatGPT進行生成,直到達到最大允許的錯誤次數。
盡管指定了所需的輸出格式,LLM(例如ChatGPT)偶爾也會產生意外的響應,包括不正確的輸出格式和拒絕回答。為了解決這些問題,研究人員引入了一個生成校準機制來驗證ChatGPT的響應。在生成校準中,他們首先通過將原始響應解析為JSON對象來檢查其格式。如果解析過程失敗,表明偏離了預期的格式,就會引入幾個預定義的格式校正策略,如正則匹配,以校正格式并從響應中提取所需的結果。如果原始回答成功地通過了格式檢查,或者可以使用格式校正策略進行校準,那么它就被認為是有效的并被接受為最終回答。然而,如果原始響應沒有通過格式檢查,并且不能在預定的策略中進行校正,我們就會啟動重新查詢。值得注意的是,重新查詢有一個特殊情況。當原始響應報告 "超出最大輸入長度限制 "錯誤時,將在重新查詢階段刪除最長的例子,直到查詢長度滿足長度限制。重新查詢過程包括對LLM進行額外的查詢,直到獲得一個有效的響應或達到最大的錯誤允許值為止。這個最大誤差允許值的設置是為了確保系統不會陷入無休止的循環,而是在可接受的范圍內向用戶提供一個合適的響應。
通過采用生成校準階段,可以減少與所需輸出格式的意外偏差,并確保最終的響應與預期的格式和要求一致。
圖7: 生成校準(Generation Calibration)。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。