🚀 Evo-1 (階段 1)
Evo是一個能夠進行長上下文建模和設計的生物基礎模型。它使用 StripedHyena架構,能以單核苷酸、字節級分辨率對序列進行建模,並且計算和內存相對於上下文長度呈近似線性擴展。
✨ 主要特性
- Evo使用 StripedHyena架構,可對單核苷酸、字節級分辨率的序列進行建模,計算和內存相對於上下文長度呈近似線性擴展。
- 擁有70億個參數,在包含約3000億個標記的原核全基因組數據集OpenGenome上進行訓練。
- 作為開放科學承諾的一部分,發佈了預訓練階段1和階段2的 15箇中間預訓練檢查點的權重,這些檢查點可作為相應HuggingFace存儲庫的分支獲取。
📦 安裝指南
要在Playground之外使用StripedHyena,你需要安裝自定義內核。請按照 獨立存儲庫 中的說明進行操作。
💻 使用示例
基礎用法
我們發現並修復了一個與某些投影排列錯誤相關的問題,該問題會影響生成質量。要使用新的模型版本,請按以下方式加載:
config = AutoConfig.from_pretrained(model_name, trust_remote_code=True, revision="1.1_fix")
model = AutoModelForCausalLM.from_pretrained(
model_name,
config=config,
trust_remote_code=True,
revision="1.1_fix"
)
高級用法
更多示例用法請參考 獨立存儲庫。
📚 詳細文檔
模型架構
StripedHyena是一種深度信號處理混合架構,由多頭注意力和門控捲積組成,排列在 Hyena 塊中,對僅解碼器的Transformer進行了改進。
StripedHyena旨在利用其每個層類的專長,其中Hyena層實現序列處理所需的大部分計算,而注意力層則補充了執行目標模式召回的能力。
該架構的一些亮點:
- 通過循環模式實現 高效的自迴歸生成(使用單個80GB GPU可生成超過500k)。
- 在長上下文下 顯著加快訓練和微調速度(在131k上下文下快3倍以上)。
- 在自然語言和生物序列方面,相對於最先進的架構(如Transformer++) 改進了縮放定律。
- 對超出計算最優邊界的訓練具有魯棒性,例如,在遠遠超過Chinchilla最優標記數量的情況下進行訓練(詳見預印本 -- 更多細節即將公佈)。
參數化用於推理和微調
深度信號處理模型的優點之一是其靈活性。根據預訓練、微調或推理工作負載的內存、表達能力和因果關係要求,可以使用不同的卷積參數化。
主要類別包括:
- 模態規範:無約束極點 (參考, 參考),或約束極點 (參考, 參考)。
- 伴隨規範/有理:待公佈。
- 超網絡:超網絡 (參考),調製超網絡 (參考)。
- 顯式:調製顯式 (參考)。
StripedHyena是一個混合精度模型。請確保將 poles
和 residues
保持在 float32
精度,特別是對於較長的提示或訓練。
模型檢查點
檢查點名稱 |
描述 |
evo-1-8k-base |
一個以8192上下文進行預訓練的模型。我們將此模型用作分子尺度微調任務的基礎模型。 |
evo-1-131k-base |
一個使用 evo-1-8k-base 作為初始化,以131072上下文進行預訓練的模型。我們使用此模型在基因組尺度上進行推理和生成序列。 |
🔧 技術細節
Evo的技術細節可在我們的預印本和相關博客文章中找到。Evo由 Arc Institute 和TogetherAI合作開發。
📄 許可證
本項目採用Apache 2.0許可證。
📖 引用
@article{nguyen2024sequence,
author = {Eric Nguyen and Michael Poli and Matthew G. Durrant and Brian Kang and Dhruva Katrekar and David B. Li and Liam J. Bartie and Armin W. Thomas and Samuel H. King and Garyk Brixi and Jeremy Sullivan and Madelena Y. Ng and Ashley Lewis and Aaron Lou and Stefano Ermon and Stephen A. Baccus and Tina Hernandez-Boussard and Christopher Ré and Patrick D. Hsu and Brian L. Hie },
title = {Sequence modeling and design from molecular to genome scale with Evo},
journal = {Science},
volume = {386},
number = {6723},
pages = {eado9336},
year = {2024},
doi = {10.1126/science.ado9336},
URL = {https://www.science.org/doi/abs/10.1126/science.ado9336},