分子生成領域的stable diffusion - GEOLDM

一、關于stable diffusion

很多人都知道stable diffusion,stable diffusion的出現改變了機器生成領域,讓AI技術第一次無比的接近正常人。大語言模型,AIGC概念于是興起。基于stable diffusion 大家開發了lora, hyperwork等微調技術,使得我們可以精確的控制生成圖片,于是我們可以生成如下一些圖片,以假亂真:

???????

神奇的stable diffusion模型的架構如下:

stable diffusion模型架構簡單理解:首先使用一個編碼器,將圖片編碼到隱式空間的潛向量,然后基于該潛向量實現diffusion model的增噪和去噪過程,生成新的潛向量,然后再使用解碼器,解碼潛向量,生成新圖片。關于stable diffusion的介紹,全網到處都是,感興趣的可以仔細研究研究。

那么問題來了,在分子生成領域,在藥物設計領域,是不是可以有一個stable diffusion 模型?實現真正的可控分子生成?讓藥物設計、分子設計領域的大語言模型真正的興起,實現Drug-AIGC?要實現這一點的難點在于:藥物分子是具有空間幾何特征的(即旋轉不變性和空間平移不變性),且不連續稀疏的。而圖片更簡單,是平面的且連續的。因此,基機器視覺開發的stable diffusion是不能直接使用于分子設計、藥物設計等領域的,需要專門開發一個能處理空間幾何與稀疏不連續的stable diffusion模型架構。

新發表的GEOLDM 模型實現了這一點。也許從此刻開始,變天了。Drug-AIGC真的要來了。分子設計領域有了stable diffusion模型,那么分子設計領域的lora還遠嗎?

二、分子生成領域的stable diffusion - GeoLDM

GEOLDM 模型是發表在2023年 ICML(全稱:International Conference on Machine Learning)會議上的會刊 <Geometric Latent Diffusion Models for 3D Molecule Generation> 文章。第一作者是斯坦福大學計算機系的Minkai Xu。文章鏈接為:https://arxiv.org/pdf/2305.01140.pdf

GEOLDM模型可以生成3D的分子,在有條件或者無條件下都可以生成。

GEOLDM的全稱是Geometric Latent Diffusion Models,幾何隱式擴散模型。GEOLDM 是分子幾何領域的第一個隱式擴散模型(簡稱:DM),由將結構編碼為連續隱式向量的自動編碼器和在隱式空間中運行的擴散模型組成。 文章的關鍵創新在于,對 3D 分子幾何進行建模,通過構建具有不變標量和等變張量的點結構隱式空間來捕獲其關鍵的旋轉平移等變約束。

在GEOLDM模型中,分子中原子坐標和特征,即x,h會,被編碼器編碼成隱式向量,即z_x和z_h。然后在隱式空間內,對z_x和z_h進行T步的加噪過程,使用深度學習網絡預測噪音,反向去噪,生成隱式向量。解碼器根據去噪后的隱式向量生成分子。

注意,GEOLDM的擴散過程是操作在隱式向量空間的。這一點與之前的分子生成模型,EDM,Difflinker,Targetdiff等不同。之前的分子生成模型的擴散過程是直接操作在原子空間的,即添加噪音在坐標x和原子特征h上。而GEOLDM是將擴散過程操作在坐標x和原子特征h,生成的嵌入隱空間z上。這一點完全與機器視覺中的stable diffusion對齊了。

訓練GEOLDM模型的偽代碼:

首先,需要按照常規的變分自動編碼器一樣,在沒有加噪和去噪的擴散過程下,先訓練變分自動編碼器,即First stage。然后,固定自動變分編碼器,加入擴散的加噪和去噪過程,訓練模型學習去噪。所以,可以簡單的理解GEOLDM模型由編碼器,擴散去噪,解碼器,三個AI網絡組成。

使用GEOLDM模型生成分子的偽代碼如下:

三、GeoLDM模型的性能

作者在QM9和DRUG數據上進行了測試,考察了分子生成的質量(有效性,唯一性)。作者對每個模型都進行了三次分子生成,每次生成1w個分子。測試結果如下:

與之前的方法相比,同時具有不變變量和等變變量的潛在空間使GEOLDM在大分子生成的有效性方面實現了高達7%的改進。

stable diffusion模型厲害之處,主要是其非常強大的可改造能力,最簡單的,就是條件控制生成。這里作者做了嘗試。作者嘗試讓GEOLDM模型生成HOMO等更低的分子,結果發現,GEOLDM確實要好于我們之前常用的EDM模型。如下圖:

另一方面,在條件控制生成中,GEOLDM,可以對生成的條件的程度進行控制。作者以生成極化的分子為例,使用了不同的極化控制參數,如下圖:

四、總結

整體感覺GEOLDM這個模型非常好模擬了stable diffusion模型的結構,將擴散過程的加噪去噪過程操作在隱式向量空間內。大大降低了,在分子生成領域的計算成本。同時,因為在潛向量空間內,也打開了分子生成領域的優化可能,我們可以CLIP, LORA, Controlnet 等技術,微調模型,實現精確控制分子生成。

看來Drug-AIGC的日子不遠了,真的不遠了。距離作者正式發表GEOLDM有幾個月了,距離作者開始在GitHub上傳代碼有10個月了。我們將很快看到很多的相關文章出現。老了,腦子跟不上了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213153.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[GWCTF 2019]我有一個數據庫1

提示 信息收集phpmyadmin的版本漏洞 這里看起來不像是加密應該是編碼錯誤 這里訪問robots.txt 直接把phpinfo.php放出來了 這里能看到它所有的信息 這里并沒有能找到可控點 用dirsearch掃了一遍 ####注意掃描buuctf的題需要控制掃描速度&#xff0c;每一秒只能掃10個多一個都…

聚類算法的性能度量

聚類算法的性能度量 聚類算法就是根據數據中樣本與樣本之間的距離或相似度&#xff0c;將樣本劃分為若干組&#xff0f;類&#xff0f;簇&#xff0c;其劃分的原則&#xff1a;簇內樣本相似、簇間樣本不相似&#xff0c;聚類的結果是產生一個簇的集合。 其劃分方式主要分為兩…

API接口并發測試:如何測試API接口的最大并發能力?

本文將深入探討API接口并發測試&#xff0c;介紹并比較不同的API并發測試工具&#xff0c;并分享如何有效測量和提高API接口在最大并發情況下的性能。了解如何應對高并發壓力是保證系統穩定性和用戶滿意度的關鍵&#xff0c;讓我們一起來探索這個重要的話題。 隨著互聯網的迅速…

float,flex和grid布局

頁面布局往往會影響著整體的結構與項目的樣式&#xff0c;通常我們用的布局方式有三種&#xff1a;float,flex,grid 1.float或position布局 1.1概念 首先對于一個頁面來說&#xff0c;有浮動流&#xff0c;文檔流&#xff0c;文本流這幾種模式&#xff0c;而float布局則是…

【EI會議征稿中】第六屆下一代數據驅動網絡國際學術會議(NGDN 2024)

第六屆下一代數據驅動網絡國際學術會議&#xff08;NGDN 2024&#xff09; The Sixth International Conference on Next Generation Data-driven Networks 基于前幾屆在英國埃克塞特 (ISPA 2020) 、中國沈陽 (TrustCom 2021) 和中國武漢 (IEEETrustCom-2022)成功舉辦的經驗&a…

若依vue-新建目錄及菜單

前面我們把標題和logo換成了自己系統的標題和logo了 接下來就是要建立自己需要的菜單和頁面 新建目錄解析 在拉下來的代碼跑起來后 有一個系統菜單--菜單管理(如圖) 在這個菜單的這個頁面內有對應的操作功能 修改功能 這個功能可以修改寫好了的菜單數據 例如:名稱/排序/路由…

python:五種算法(DBO、WOA、GWO、PSO、GA)求解23個測試函數(python代碼)

一、五種算法簡介 1、蜣螂優化算法DBO 2、鯨魚優化算法WOA 3、灰狼優化算法GWO 4、粒子群優化算法PSO 5、遺傳算法GA 二、5種算法求解23個函數 &#xff08;1&#xff09;23個函數簡介 參考文獻&#xff1a; [1] Yao X, Liu Y, Lin G M. Evolutionary programming made…

【小白專用】php執行sql腳本 更新23.12.10

可以使用 PHP 的 mysqli 擴展來執行 SQL 腳本。具體步驟如下&#xff1a; 連接到數據庫&#xff1b;打開 SQL 腳本文件并讀取其中的 SQL 語句&#xff1b;逐條執行 SQL 語句&#xff1b;關閉 SQL 腳本文件&#xff1b;關閉數據庫連接。 以下是通過 mysqli 執行 SQL 腳本的示例…

生產問題: 利用線程Thread預加載數據緩存,其它類全局變量獲取緩存偶發加載不到

生產問題: 利用線程Thread預加載數據緩存偶發加載不到 先上代碼 public class ThreadTest {//本地緩存Map<String, Object> map new HashMap<String, Object>();class ThreadA implements Runnable{Overridepublic void run() {System.out.println("Thread…

RT-Thread學習筆記(六):RT_Thread系統死機日志定位

RT_Thread系統死機日志定位 一、RT_Thread系統死機日志定位二、Cortex-M3 / M4架構知識2.1 Cortex-M3 / M4架構概述2.2 寄存器用途 三、排查步驟 一、RT_Thread系統死機日志定位 RT-Thread 系統發生hardfault死機時&#xff0c;系統默認會打印出一系列寄存器狀態幫助用戶定位死…

XML學習及應用

介紹XML語法及應用 1.XML基礎知識1.1什么是XML語言1.2 XML 和 HTML 之間的差異1.3 XML 用途 2.XML語法2.1基礎語法2.2XML元素2.3 XML屬性2.4XML命名空間 3.XML驗證3.1xml語法驗證3.2自定義驗證3.2.1 XML DTD3.2.2 XML Schema3.2.3PCDATA和CDATA區別3.2.4 參考 1.XML基礎知識 1…

AWR1642 boost開發板支持的TI參考設計

打開radar_toolbox_1_30_00_05\source\ti\examples\examples_overview,通過輸入“1642”查找AWR1642 BOOST支持的參考設計,通過篩選,支持AWR1642 BOOST的參考設計如下: 挑選出兩個參考設計上手,一個是“nonos_oob_16xx",不帶OS;另一個是”short range radar“,比較…

Sbatch, Salloc提交任務相關

salloc 申請計算節點&#xff0c;然后登錄到申請到的計算節點上運行指令&#xff1b; salloc的參數與sbatch相同&#xff0c;該部分先介紹一個簡單的使用案例&#xff1b;隨后介紹一個GPU的使用案例&#xff1b;最后介紹一個跨節點使用案例&#xff1b; 首先是一個簡單的例子&a…

基于Java健身房課程管理系統

基于Java健身房課程管理系統 功能需求 1、課程信息管理&#xff1a;系統需要能夠記錄和管理所有課程的詳細信息&#xff0c;包括課程名稱、教練信息、課程時間、課程地點、課程容量等。管理員和教練可以添加、編輯和刪除課程信息。 2、會員信息管理&#xff1a;系統需要能夠…

無服務器監控工具的演變:提高效率和性能

無服務器計算的興起改變了應用程序的構建和部署方式&#xff0c;提供了無與倫比的可擴展性&#xff0c;減少了基礎設施管理并提高了成本效率。隨著無服務器架構變得越來越流行&#xff0c;對有效監控工具的需求對于確保最佳性能和可靠性變得至關重要。 在本文中&#xff0c;我…

Go開發運維:Go服務發布到K8S集群

目錄 一、實驗 1.Go服務發布到k8s集群 二、問題 1.如何從Harbor拉取鏡像 一、實驗 1.Go服務發布到k8s集群 &#xff08;1&#xff09;linux機器安裝go(基于CentOS 7系統) yum install go -y &#xff08;2&#xff09;查看版本 go version &#xff08;3&#xff09;創…

【參天引擎】華為參天引擎內核架構專欄開始更新了,多主分布式數據庫的特點,類oracle RAC國產數據開始出現了

cantian引擎的介紹 ?專欄內容&#xff1a; 參天引擎內核架構 本專欄一起來聊聊參天引擎內核架構&#xff0c;以及如何實現多機的數據庫節點的多讀多寫&#xff0c;與傳統主備&#xff0c;MPP的區別&#xff0c;技術難點的分析&#xff0c;數據元數據同步&#xff0c;多主節點的…

Python 中 4 個高效的技巧(建議收藏)

今天我想和大家分享 4 個省時的 Python 技巧&#xff0c;可以節省 10~20% 的 Python 執行時間。 反轉列表 Python 中通常有兩種反轉列表的方法&#xff1a;切片或 reverse() 函數調用。這兩種方法都可以反轉列表&#xff0c;但需要注意的是內置函數 reverse() 會更改原始列表…

【數據結構】C語言結構體詳解

目錄 前言 一、結構體的定義 二、定義結構體變量 三、結構體變量的初始化 四、使用typedef聲明新數據類型名 五、指向結構體變量的指針 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1…

做題筆記:SQL Sever 方式做牛客SQL的題目--查詢每天刷題通過數最多的前二名用戶

----查詢每天刷題通過數最多的前二名用戶id和刷題數 現有牛客刷題表questions_pass_record&#xff0c;請查詢每天刷題通過數最多的前二名用戶id和刷題數&#xff0c;輸出按照日期升序排序&#xff0c;查詢返回結果名稱和順序為&#xff1a; date|user_id|pass_count 表單創建…