Biomni 深度解析:AI 如何統一生物多模態數據,引領精準醫療革命
如果能把實驗室裡產生的各種數據 — — 基因序列 (omics)、蛋白質交互作用 (proteomics)、細胞長什麼樣子 (imaging)、病人的臨床紀錄 (EHR) — — 全部串在一起,問一個簡單卻關鍵的問題:「到底是什麼導致了這個疾病?」
UpdatedMarch 24, 2026•2 min readJJhihHao Wu**近期研究重點包含 AI Agent 的供應鏈攻擊、PII 偵測模型評估,以及醫療 AI 在臨床流程中的安全落地。
在這裡,我分享深度技術實測報告(如 NVIDIA NeMo, WildGuard)與職場技術成長心得,致力於在 AI 浪潮中打造具備資安韌性的解決方案。
On this page
Biomni 深度解析:AI 如何統一生物多模態數據,引領精準醫療革命Biomni 的核心概念從官方範例了解Biomni第一步:安裝與設定第二步:定義你的問題 (BOQL)第三步:執行查詢與解讀 Output未來?
Biomni 深度解析:AI 如何統一生物多模態數據,引領精準醫療革命
如果能把實驗室裡產生的各種數據 — — 基因序列 (omics)、蛋白質交互作用 (proteomics)、細胞長什麼樣子 (imaging)、病人的臨床紀錄 (EHR) — — 全部串在一起,問一個簡單卻關鍵的問題:「到底是什麼導致了這個疾病?」
Biomni 的核心概念
簡單來說,Biomni 想做的事情,就是訓練一個能理解「生物學本體 (Ontology)」的大語言模型。這裡的「本體」你可以想像成是一本生物學的辭海,它不只定義了什麼是基因、什麼是蛋白質,也定義了這些東西之間的「關係」,例如「A基因 轉錄成 某個RNA」、「蛋白質 C 抑制了 代寫流程 D」。
傳統的 LLM 懂人類的自然語言,但它不懂這些生物學的複雜邏輯。Biomni 試圖讓 LLM 學會這套邏輯。如此一來,我們就可以用更接近自然語言的方式,去「查詢」整個生物系統。
Bio-Ontology Query Language (BOQL): 這是一套專為生物學設計的查詢語言。例如,你可以寫一段 BOQL 來問:「在肺腺癌細胞中,哪些基因的表現量顯著上升,並且會跟 EGFR 這個重要的Gene產生交互作用?」在以前,我們通常需要先得到基因表現的數據與資料庫、再去比對蛋白質交互作用資料庫,常常會花不少時間且容易出錯。
多模態 GNN 骨幹: 再來,當你用 BOQL 下達指令後,Biomni 會把這個查詢「翻譯」成一個圖譜查詢任務。它背後有個強大的圖神經網路(GNN),這個 GNN 學習了龐大的生物知識圖譜(Knowledge Graph),裡面包含了基因、藥物、疾病、細胞類型等節點,以及它們之間的關係。然後在這個巨大網路中尋找特定路徑與模式。
在我們繼續介紹之前,官方團隊提供了一部非常清楚的教學影片,直接展示了 Biomni 網路平台的操作介面與核心功能,強烈建議大家花點時間看看。
Executor [[02:15**](http://www.youtube.com/watch?v=E0BRvl23hLs&t=135)]:** 當你提出一個複雜的分析任務時,例如「比較不同藥物擾動對基因表現的影響」,Biomni 會啟動EExector 並即時顯示它的思考過程:包括如何理解你的問題、規劃分析步驟、編寫程式碼來執行分析,以及觀察執行結果。
自我修正能力 [[03:57**](http://www.youtube.com/watch?v=E0BRvl23hLs&t=237)]:** 影片中一個很酷的demo是,Biomni 能夠自我偵錯,並修正它的計畫來完成任務。
成果產出與匯出 [[05:00**](http://www.youtube.com/watch?v=E0BRvl23hLs&t=300)]:** 分析完成後,Biomni 會生成一份包含圖表、關鍵發現、生物學意義和方法的綜合報告。還可以匯出成一個 Jupyter Notebook ,方便後續的修改或研究。
從官方範例了解Biomni
第一步:安裝與設定
這部分很直接,就是把 Biomni 的套件裝起來,然後把需要的模型跟本體資料庫下載下來。
# Install biomni
!pip install -q biomni
# Download the core ontology and the pretrained models
import biomni
biomni.download_core_ontologies()
biomni.download_pretrained_weights()
第二步:定義你的問題 (BOQL)
範例中,他們定義了一個叫做 query_fn 的函式,這就是 BOQL 的具體實現。
import biomni.query as bq
@bq.query_fn
def query_fn(graph: bq.Graph):
# 1. Start with a specific gene, let's say 'CD47'
gene = graph.get_entity("Gene", "CD47")
# 2. Find drugs that target this gene
drug = gene.neighbors("Drug", "targets")
# 3. From those drugs, find associated diseases
disease = drug.neighbors("Disease", "associated_with")
# 4. Return the names of these diseases
return bq.Return(disease.name)
來拆解一下這段程式碼在幹嘛:
gene.neighbors("Drug", "targets"): 從CD47這個節點出發,去尋找與它有targets(靶向) 關係的Drug(藥物) 鄰居。換句話說:「有哪些藥物是針對 CD47 開發的?」drug.neighbors("Disease", "associated_with"): 接著,從上一步找到的那些藥物出發,再去尋找與這些藥物有associated_with(相關) 關係的Disease(疾病) 鄰居。這一步很有意思,它在問:「 CD47相關的藥物,還會被用來治療哪些疾病?」bq.Return(disease.name): 最後,把找到的疾病名稱回傳。
你不需要知道底層資料庫的 table schema,只需要用這種直觀的、描述關係的方式來建構你的問題。
第三步:執行查詢與解讀 Output
# Load the pre-trained Biomni model
model = biomni.Biomni.from_pretrained()
# Execute the query
result_df = model.execute(query_fn)
print(result_df)
disease.name
0 Breast Cancer
1 Leukemia
2 Myeloma
3 Non-Hodgkin Lymphoma
... ...
這個看似簡單的Output,藏的資訊量滿大的。
藥物再利用 (Drug Repurposing): 假設研究皮膚癌的研究人員看到這個列表,發現靶向 CD47 的藥物主要都跟血液腫瘤有關。就可以提出一個假說:「CD47 在皮膚癌中是否也扮演重要角色?這些現成的血液腫瘤藥物,有沒有可能對皮膚癌也有效?」
新適應症開發: 對於藥廠來說,這個結果可以幫助他們思考現有藥物的新市場。如果他們有一款 CD47 的藥物,這個清單就提供了潛在的新適應症開發方向。
機制探索: 為什麼這些看似無關的疾病,都會連結到同一個分子標靶 (CD47)?這背後是不是有共通的生物學機制?
未來?
Biomni 目前還在早期階段,但是給了我們很多想像,我們可以建構更複雜的查詢,例如,結合基因表現數據(expression > 2.0)、結合病人的生存率數據,甚至未來結合影像特徵。 例如 「在那些對免疫治療反應不好的病人族群中,有哪些基因的突變,同時與特定的細胞交互網絡模式相關?」
未來醫生在門診時,可能不再只是查詢單一的檢驗報告。他可以直接對著系統提問:「這位病人的基因突變特徵、影像紋理、以及過去的用藥史,綜合來看,最像知識庫中哪一群對標靶藥物 A 反應良好的病人?預測他使用藥物 A 的反應率和副作用風險是多少?」
無論什麼樣的AI模型,最終其實要處理的問題,都是把一堆雜亂無章的多維度醫療數據,轉化成醫師能夠理解、能夠決策的資訊。
這條路還很長,數據的標準化、模型的準確性與可解釋性、以及臨床導入的法規問題,但 Biomni 毫無疑問告訴我們,「AI + 生物資訊」是一場正在發生的革命。
Top comments (0)