HyenaDNA 完整教學
Repository: https://github.com/HazyResearch/hyena-dna Stars: 791 | Fork: 108 | License: Apache-2.0 Tags:
genomics,foundation-models,language-modelsPaper: arXiv:2306.15794 | HuggingFace: LongSafari Primary Language: Python (含 CUDA C++ 加速核心) 最後更新: 2026-06-10
2. 核心架構
2.1 整體架構圖
graph TB
subgraph Input["輸入層 Input Layer"]
DNA["DNA 序列
ATCGATCG..."]
TOK["Character Tokenizer
{A=0, C=1, G=2, T=3, N=4, PAD=5}"]
EMB["DNA Embedding Layer
nn.Embedding(6, d_model)"]
end
subgraph Backbone["Hyena Backbone (N Layers)"]
direction TB
subgraph Layer["Hyena Block x N"]
HYENA["Hyena Operator
(Long Convolution + Gating)"]
FF["Feed-Forward Network
(GLU / GatedMLP)"]
NORM1["LayerNorm"]
NORM2["LayerNorm"]
RES1["Residual Connection"]
RES2["Residual Connection"]
end
end
subgraph HyenaOp["Hyena Operator 內部"]
direction LR
PROJ["Linear Projections
Q, K, V 投影"]
FILTER["Implicit Filter
(Parameterized Conv Kernel)"]
FFT["FFT Convolution
O(N log N)"]
GATE["Element-wise Gating
(Multiplicative)"]
end
subgraph Output["輸出層 Output Layer"]
POOL["Pooling / Last Token"]
DEC["Task Decoder
(MLP Head)"]
PRED["Prediction
(Classification / Regression / LM)"]
end
DNA --> TOK --> EMB
EMB --> NORM1 --> HYENA --> RES1
RES1 --> NORM2 --> FF --> RES2
RES2 --> |"Repeat N times"| NORM1
HYENA -.-> PROJ
PROJ -.-> FILTER
FILTER -.-> FFT
FFT -.-> GATE
RES2 --> POOL --> DEC --> PRED
style Input fill:#e1f5fe,stroke:#0288d1
style Backbone fill:#fff3e0,stroke:#f57c00
style HyenaOp fill:#fce4ec,stroke:#c62828
style Output fill:#e8f5e9,stroke:#2e7d32
2.2 Hyena Operator 運作原理
Hyena operator 的核心思想是以 隱式參數化的長卷積 (implicit long convolution) 取代 Transformer 中的 self-attention:
- 投影 (Projection):輸入 x 被線性投影為 v (value)、以及多組門控信號 x_1, x_2, …
- 隱式濾波器 (Implicit Filter):使用小型 MLP 將位置資訊映射為卷積核權重,而非顯式儲存 N x N 的 attention matrix
- FFT 卷積 (FFT Convolution):透過快速傅立葉變換在頻域執行卷積,複雜度 O(N log N)
- 乘法門控 (Multiplicative Gating):多階段的 element-wise 乘法交互,賦予模型非線性的序列混合能力
2.3 專案程式碼結構
1hyena-dna/
2+-- train.py # 主訓練入口 (PyTorch Lightning)
3+-- huggingface.py # HuggingFace 整合 (embedding extraction)
4+-- standalone_hyenadna.py # 獨立使用版本 (不依賴 Lightning)
5+-- requirements.txt
6+-- Dockerfile
7+-- configs/ # Hydra 設定檔
8| +-- config.yaml # 主設定
9| +-- experiment/hg38/ # 實驗設定 (pretrain / finetune / ICL)
10| +-- dataset/ # 資料集設定
11| +-- model/layer/ # 模型層設定 (hyena / attention / etc.)
12| +-- optimizer/ # 最佳化器設定
13| +-- scheduler/ # 學習率排程
14| +-- pipeline/ # 任務管線設定
15| +-- task/ # 任務類型 (LM / classification / regression)
16+-- src/
17| +-- models/sequence/
18| | +-- hyena.py # Hyena operator 核心實作
19| | +-- long_conv.py # 長卷積層
20| | +-- long_conv_lm.py # 語言模型包裝
21| | +-- dna_embedding.py # DNA embedding 層
22| | +-- block.py # 模型區塊組合
23| | +-- model.py # 完整模型定義
24| +-- dataloaders/
25| | +-- datasets/
26| | | +-- hg38_dataset.py # HG38 預訓練資料集
27| | | +-- hg38_char_tokenizer.py # 字元級 tokenizer
28| | | +-- genomic_bench_dataset.py
29| | | +-- nucleotide_transformer_dataset.py
30| | | +-- species_dataset.py
31| | | +-- chromatin_profile_dataset.py
32| +-- tasks/
33| | +-- tasks.py # 任務定義 (LMTask etc.)
34| | +-- decoders.py # 解碼頭 (classification / regression)
35| | +-- metrics.py # 評估指標
36| +-- ops/
37| | +-- fftconv.py # FFT 卷積運算
38+-- evals/ # 評估腳本
39| +-- hg38_inference.py # 推論取 logits
40| +-- soft_prompting_genomics.py # 軟提示 ICL
41| +-- instruction_tuned_genomics.py # 指令微調 ICL
42+-- csrc/fftconv/ # CUDA FFT 卷積加速核心
43+-- flash-attention/ # Git submodule: Flash Attention
3. 安裝與設定
3.1 方法一:Conda 環境 (推薦開發用)
1# 1. Clone 含 submodule
2git clone --recurse-submodules https://github.com/HazyResearch/hyena-dna.git
3cd hyena-dna
4
5# 2. 建立 conda 環境
6conda create -n hyena-dna python=3.8 -y
7conda activate hyena-dna
8
9# 3. 安裝 PyTorch (CUDA 11.7)
10conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 \
11 pytorch-cuda=11.7 -c pytorch -c nvidia
12
13# 4. 安裝 Python 依賴
14pip install -r requirements.txt
15
16# 5. 安裝 Flash Attention (加速用,需 CUDA 編譯環境)
17cd flash-attention
18git submodule update --init
19pip install -e . --no-build-isolation
20
21# 6. (選用) 安裝 fused LayerNorm (額外加速)
22cd csrc/layer_norm && pip install . --no-build-isolation
3.2 方法二:Docker (推薦可重現環境)
1# Clone
2git clone --recurse-submodules https://github.com/HazyResearch/hyena-dna.git
3cd hyena-dna
4
5# 方法 A:Pull 預建映像
6docker pull hyenadna/hyena-dna:latest
7docker run --gpus all -it -p80:3000 hyenadna/hyena-dna /bin/bash
8
9# 方法 B:含 Nucleotide Transformer 資料集的映像
10docker pull hyenadna/hyena-dna-nt6:latest
11docker run --gpus all -it -p80:3000 hyenadna/hyena-dna-nt6 /bin/bash
3.3 方法三:HuggingFace + Colab (最簡單入門)
無需本地安裝,直接使用 Google Colab notebook。Free tier 可處理最多 450K 核苷酸的序列。
3.4 下載預訓練資料
1# 下載 Human Reference Genome (HG38)
2mkdir -p data/hg38/
3curl https://storage.googleapis.com/basenji_barnyard2/hg38.ml.fa.gz > data/hg38/hg38.ml.fa.gz
4curl https://storage.googleapis.com/basenji_barnyard2/sequences_human.bed > data/hg38/human-sequences.bed
5
6# 解壓 fasta 檔案
7gunzip data/hg38/hg38.ml.fa.gz
3.5 環境驗證
1# 快速驗證:從頭訓練小模型於 GenomicBenchmarks
2python -m train wandb=null experiment=hg38/genomic_benchmark_scratch
3# 若能正常跑完幾個 epoch 並印出 loss,表示環境正確
4. 使用方式與程式碼範例
4.1 範例一:使用 HuggingFace 載入預訓練模型並取得 DNA Embedding
這是最常見的使用方式 – 將 DNA 序列轉換為 embedding vector (嵌入向量) 以供下游任務使用。
1"""
2HyenaDNA Embedding Extraction (嵌入提取)
3從預訓練模型取得 DNA 序列的向量表示
4"""
5import torch
6import json
7from transformers import PreTrainedModel
8from standalone_hyenadna import HyenaDNAModel, CharacterTokenizer, HyenaDNAPreTrainedModel
9
10# --- 1. 設定模型 ---
11# 可選模型: tiny-1k / small-32k / medium-160k / medium-450k / large-1m
12pretrained_model_name = "hyenadna-small-32k-seqlen"
13max_length = 32_768 # 須與模型匹配
14
15# --- 2. 從 HuggingFace 載入 ---
16model = HyenaDNAPreTrainedModel.from_pretrained(
17 f"LongSafari/{pretrained_model_name}",
18 download=True,
19)
20model.eval()
21
22# --- 3. 建立 Tokenizer ---
23tokenizer = CharacterTokenizer(
24 characters=['A', 'C', 'G', 'T', 'N'],
25 model_max_length=max_length + 2, # +2 for BOS/EOS tokens
26 add_special_tokens=False,
27)
28
29# --- 4. Tokenize DNA 序列 ---
30dna_sequence = "ACGTACGTACGTACGT" * 100 # 範例:1600 bp
31tok_seq = tokenizer(dna_sequence, return_tensors="pt")
32input_ids = tok_seq["input_ids"]
33print(f"Input shape: {input_ids.shape}") # [1, 1600]
34
35# --- 5. 取得 Embedding ---
36with torch.no_grad():
37 # 取得最後一層隱藏狀態
38 embeddings = model(input_ids) # shape: [1, seq_len, d_model]
39
40 # 方法 A: Mean pooling (平均池化)
41 mean_embedding = embeddings.mean(dim=1) # [1, d_model]
42
43 # 方法 B: 取最後一個 token (GPT-style)
44 last_token_embedding = embeddings[:, -1, :] # [1, d_model]
45
46print(f"Embedding dim: {mean_embedding.shape[-1]}")
47print(f"Mean embedding: {mean_embedding[0, :5]}") # 前 5 維
4.2 範例二:在 GenomicBenchmarks 資料集上微調 (Fine-tuning)
1# =============================================================
2# GenomicBenchmarks Fine-tuning (基因組基準測試微調)
3# 使用預訓練 HyenaDNA backbone + 線性分類頭
4# =============================================================
5
6# --- 步驟 1:下載預訓練權重 ---
7# 從 HuggingFace 下載 tiny-1k-d256 模型
8# https://huggingface.co/LongSafari/hyenadna-tiny-1k-seqlen-d256
9# 將 .ckpt 檔案放到 outputs/ 目錄
10
11# --- 步驟 2:啟動微調 ---
12python -m train \
13 wandb=null \
14 experiment=hg38/genomic_benchmark \
15 dataset_name=human_enhancers_cohn \
16 train.pretrained_model_path=outputs/weights.ckpt \
17 dataset.max_length=500 \
18 model.layer.l_max=1024 \
19 model.d_model=256 \
20 model.n_layer=2 \
21 optimizer.lr=6e-4 \
22 trainer.devices=1 \
23 trainer.max_epochs=10
24
25# --- 參數說明 ---
26# dataset_name : 8 個資料集之一 (auto-download)
27# - human_enhancers_cohn (2 classes, 27791 seqs, median 500 bp)
28# - human_enhancers_ensembl (2 classes, 154842 seqs)
29# - human_ensembl_regulatory (3 classes, 289061 seqs)
30# - human_nontata_promoters (2 classes, 36131 seqs)
31# - human_ocr_ensembl (2 classes, 174756 seqs)
32# - demo_coding_vs_intergenomic_seqs (2 classes, 100K seqs)
33# - demo_human_or_worm (2 classes, 100K seqs)
34# - dummy_mouse_enhancers_ensembl (2 classes, 1210 seqs)
35#
36# model.layer.l_max : 模型最大序列長度 (>= dataset.max_length + 2)
37# train.pretrained_model_path : 預訓練權重路徑
38# model.checkpoint_mixer: True # 啟用梯度檢查點 (省記憶體)
39# model.checkpoint_mlp : True # 同上
4.3 範例三:自訂資料集的預訓練與 In-Context Learning
1"""
2HyenaDNA Custom Pretraining + Evaluation Pipeline
3自訂資料集預訓練 + In-Context Learning (ICL; 情境學習) 評估
4"""
5
6# =============================================================
7# Part A: 在自訂基因組上從頭預訓練
8# =============================================================
9# 假設你有自己的 .fasta 檔案 (例如:某微生物基因組)
10
11# 步驟 1:準備資料結構
12# data/
13# +-- custom_genome/
14# +-- genome.fa # 你的 FASTA 檔案
15# +-- sequences.bed # (選用) 序列區間定義
16
17# 步驟 2:啟動預訓練
18# 使用 species_dataset.py 作為 dataloader 範本
19"""
20python -m train \
21 wandb=null \
22 experiment=hg38/hg38_hyena \
23 model.d_model=128 \
24 model.n_layer=2 \
25 dataset.batch_size=256 \
26 train.global_batch_size=256 \
27 dataset.max_length=1024 \
28 optimizer.lr=6e-4 \
29 trainer.devices=1 \
30 trainer.max_epochs=100
31"""
32
33# =============================================================
34# Part B: Sequence Length Warmup (序列長度漸進訓練)
35# =============================================================
36# 從短序列逐步增加到長序列的課程學習策略
37# 設定在 configs/experiment/hg38/hg38_hyena_seqlen_warmup_reload.yaml
38
39WARMUP_STAGES = """
40callbacks:
41 seqlen_warmup_reload:
42 stage_params:
43 - epochs: 2 # Stage 1: 1K bp
44 seq_len: 1024
45 batch_size: 256
46 - epochs: 2 # Stage 2: 2K bp
47 seq_len: 2048
48 batch_size: 128
49 - epochs: 2 # Stage 3: 4K bp
50 seq_len: 4096
51 batch_size: 64
52 - epochs: 2 # Stage 4: 8K bp
53 seq_len: 8192
54 batch_size: 32
55 - epochs: 4 # Stage 5: 16K bp
56 seq_len: 16384
57 batch_size: 16
58 - epochs: 4 # Stage 6: 32K bp
59 seq_len: 32768
60 batch_size: 8
61"""
62
63# =============================================================
64# Part C: In-Context Learning (ICL; 情境學習)
65# =============================================================
66# HyenaDNA 支援兩種 ICL 模式:
67
68# 模式 1:Soft Prompting (軟提示)
69# 在輸入前加入可學習的 prompt token
70"""
71python -m evals/soft_prompting_genomics
72"""
73
74# 模式 2:Instruction Fine-tuning (指令微調)
75# 將分類任務包裝成指令格式
76"""
77python -m evals/instruction_tuned_genomics
78"""
79
80# =============================================================
81# Part D: 取得模型 Logits (用於下游分析)
82# =============================================================
83# 載入含 LM head 的完整模型取得 per-token logits
84"""
85python -m evals/hg38_inference
86"""
87# 輸出:每個位置對 {A, C, G, T, N} 的機率分布
88# 可用於:突變效應預測 (variant effect prediction)、
89# 序列生成 (sequence generation)、
90# motif 發現 (motif discovery)
5. 在蛋白質設計/基因組模擬生態系中的定位
5.1 Domain 5 生態系定位
HyenaDNA 位於 Domain 5 「蛋白質設計與基因組模擬」生態系的 基因組序列基礎模型 (Genomic Sequence Foundation Model) 區位,扮演 DNA 序列理解與表示學習的核心角色:
graph LR
subgraph GenomicsModels["B. 基因組與單細胞模擬"]
HYENA["HyenaDNA
(DNA Foundation Model)
★ 本教學"]
WGSIM["wgsim
(Reads Simulator)"]
SCGPT["scGPT
(Single-cell FM)"]
SCVI["scvi-tools
(Probabilistic scRNA)"]
SCGEN["scgen
(Perturbation Pred)"]
SPLAT["Splatter
(scRNA-seq Sim)"]
BIOMED["biomed-multi-align
(Multi-omics)"]
PYFEAT["PyFeat
(Feature Gen)"]
end
subgraph ProteinModels["A. 蛋白質設計與生成"]
ESM["ESM
(Protein LM)"]
RFDIFF["RFdiffusion
(Protein Diffusion)"]
CHROMA["Chroma
(Protein Gen)"]
COLAB["ColabFold
(Structure Pred)"]
end
HYENA -->|"DNA embedding
→ 基因表達預測"| SCGPT
HYENA -->|"啟動子/增強子
特徵"| SCVI
HYENA -->|"基因組 context
→ 蛋白序列映射"| ESM
HYENA -->|"調控元素辨識
→ 標的驗證"| BIOMED
WGSIM -->|"模擬定序讀段"| HYENA
style HYENA fill:#ff9800,stroke:#e65100,color:#fff
5.2 在製藥研發管線 (WP1-WP7) 中的角色
| 工作包 (Work Package) | HyenaDNA 的貢獻 | 具體應用 |
|---|---|---|
| WP1: 標的發現 (Target Discovery) | 高 | 識別 enhancer (增強子) / promoter (啟動子) 調控區域,輔助找出疾病相關基因調控異常 |
| WP2: 標的驗證 (Target Validation) | 中 | 預測 variant effect (變異效應),評估 SNP (單核苷酸多態性) 對基因功能的影響 |
| WP3: 先導化合物 (Lead Discovery) | 低 | 間接 – 提供基因組層級的 target context |
| WP4: 最佳化 (Optimization) | 低 | 不直接參與 |
| WP5: 臨床前 (Preclinical) | 中 | 跨物種序列比較 (species classification),評估動物模型的基因組相似性 |
| WP6: 臨床 (Clinical) | 中-高 | Pharmacogenomics (藥物基因組學): 預測個體基因變異對藥物反應的影響 |
| WP7: 生物製劑 (Biologics) | 中 | DNA 序列最佳化 – codon optimization (密碼子最佳化) 的基礎模型 |
5.3 藍海機會 (Blue Ocean Opportunities)
長程調控元素的合成資料生成 (Synthetic Regulatory Element Generation)
- 利用 HyenaDNA 的 language model head 生成合成 enhancer/promoter 序列
- 結合 GAN/diffusion model 實現條件式調控序列設計
- 應用:合成啟動子庫用於基因治療載體最佳化
Pharmacogenomics Foundation Model (藥物基因組學基礎模型)
- 在 ClinVar / PharmGKB 上 fine-tune HyenaDNA
- 預測 germline variant (種系變異) 對藥物代謝酵素 (CYP450 等) 活性的影響
- 應用:精準醫療的患者分層 (patient stratification)
跨物種基因組遷移學習 (Cross-Species Transfer Learning)
- 在多物種基因組上預訓練,提升動物模型 (preclinical) 到人體 (clinical) 的可轉譯性
- 應用:pre-IND 階段的 species bridging 分析
6. 與其他工具的整合
6.1 與 scGPT 的整合 (DNA → Single-cell)
1"""
2HyenaDNA embedding → scGPT 基因表達預測
3概念性整合:DNA 調控特徵輔助單細胞分析
4"""
5# Step 1: 用 HyenaDNA 取得啟動子區域 embedding
6# (參考範例 4.1)
7promoter_embedding = hyena_model(promoter_sequence) # [1, seq_len, d_model]
8
9# Step 2: 平均池化取得 gene-level representation
10gene_repr = promoter_embedding.mean(dim=1) # [1, d_model]
11
12# Step 3: 作為 scGPT 的額外基因特徵輸入
13# scGPT 的 gene embedding 可與 HyenaDNA 的 promoter embedding 融合
14# 提供 DNA 層級的調控資訊給單細胞模型
6.2 與 ESM / Protein Language Model 的整合 (DNA → Protein)
HyenaDNA 提供基因組 context,ESM 提供蛋白質序列表示,兩者的 embedding 可在多模態架構中融合:
| 整合策略 | 說明 | 適用場景 |
|---|---|---|
| 串聯特徵 (Concatenation) | HyenaDNA gene embedding + ESM protein embedding 直接拼接 | 基因-蛋白質功能預測 |
| Cross-attention 融合 | DNA embedding 作為 key/value,protein embedding 作為 query | 轉錄調控建模 |
| DNA→Protein pipeline | HyenaDNA 識別 ORF/codon → ESM 預測蛋白質結構 | 功能基因組學 |
6.3 與 AIKT Pipeline 的整合
在 AI-Knowledge Template (AIKT) 管線中的使用模式:
| AIKT Layer | 整合方式 |
|---|---|
| paper-search (L9) | paper: HyenaDNA long-range genomics foundation model year=2023-2026 |
| paper-qa-lite (L10) | 對 HyenaDNA 相關論文集做 RAG 問答 |
| paper-tutorial (L15) | 將 HyenaDNA 原始論文 + 應用論文打包成教學 HTML |
| tu-plan-generator (L19) | tu repos: <target_gene> <indication> 時,HyenaDNA 提供 variant effect 預測 |
| research-pipeline-v2 (L18) | 在 Stage 2 (target validation) 中使用 HyenaDNA 做 regulatory element 分析 |
6.4 與 biomed-multi-alignment 的整合 (Multi-omics)
HyenaDNA 的基因組 embedding 可作為 biomed-multi-alignment 多模態對齊架構的其中一個模態輸入,實現 DNA-protein-cell phenotype 的聯合表示學習。
7. 優缺點分析
7.1 優點
| 面向 | 說明 |
|---|---|
| 突破性長程建模 | 100 萬 bp context length 是同類模型中最長的,可捕捉 enhancer-promoter 等遠距調控關係 |
| 單核苷酸解析度 | Character-level tokenization 保留完整序列資訊,不會像 k-mer 方法丟失位置敏感的變異 |
| 計算效率 | Hyena operator 的 O(N log N) 複雜度遠優於 attention 的 O(N^2),使超長序列訓練成為可能 |
| 豐富的預訓練模型 | 7 種尺寸/長度組合的預訓練權重,從 Colab 到 A100 皆可使用 |
| 多元下游任務支援 | 分類、回歸、LM、ICL (soft prompt / instruction tuning) 均有範例 |
| 完整訓練框架 | 基於 PyTorch Lightning + Hydra 的模組化訓練框架,容易自訂新實驗 |
| Docker 支援 | 預建 Docker 映像 (含資料集),可重現實驗結果 |
| Apache-2.0 授權 | 商業友善的開源授權 |
7.2 缺點與限制
| 面向 | 說明 | 緩解策略 |
|---|---|---|
| 單物種預訓練 | 僅在 hg38 (人類) 上預訓練,跨物種泛化能力未經充分驗證 | 在自訂物種資料上 fine-tune (參考 species classification 範例) |
| 單方向 (Causal) | 預訓練為從左到右的 causal LM,雖有實驗性 bidirectional 但效果不如 causal | 使用 model.bidirectional=True 做 from-scratch 訓練 (非預訓練) |
| 依賴 Flash Attention | 安裝 flash-attention 需要 CUDA 編譯環境,對非 NVIDIA GPU 用戶不友善 | 使用 Docker 預建映像跳過手動編譯 |
| 較舊的依賴版本 | PyTorch 1.13 / Python 3.8,與較新生態系可能有相容性問題 | 使用 Docker 隔離環境 |
| 缺乏原生 variant effect 支援 | 沒有內建的 zero-shot variant effect prediction pipeline | 需自行實作 logit 差異計算 (wild-type vs mutant) |
| 文件品質 | README 詳盡但略顯零散,缺乏系統化 API 文件 | 參考 standalone_hyenadna.py 和 Colab notebook 作為入門 |
| 社群維護速度 | 自 2023 年發表後更新頻率降低,後續發展轉移至 Evo / Caduceus 等後繼模型 | 關注 Hazy Research 的後繼專案 (Evo, Mamba-based 模型) |
| GPU 記憶體需求 | large-1m 模型需 A100 80GB,對一般研究者門檻較高 | 從 tiny/small 模型開始,善用 gradient checkpointing (model.checkpoint_mixer=True) |
7.3 與同類工具比較
| 特性 | HyenaDNA | DNABERT-2 | Nucleotide Transformer | Evo |
|---|---|---|---|---|
| 最大 Context Length | 1M bp | 128K bp | 12K bp | 131K bp |
| Tokenization | Character | BPE | 6-mer | Character |
| 核心架構 | Hyena (Long Conv) | Transformer + ALiBi | Transformer | StripedHyena |
| 預訓練資料 | hg38 (人類) | 多物種 | 多物種 | 多物種 (2.7M genomes) |
| 授權 | Apache-2.0 | Apache-2.0 | CC-BY-NC-SA | Apache-2.0 |
| 主要優勢 | 超長 context | 多物種泛化 | 最大訓練資料 | 最新架構 + 多物種 |
7.4 建議使用情境
推薦使用 HyenaDNA 的場景:
- 需要分析 >32K bp 的長程基因組區域 (如完整基因座、TAD domains)
- 研究 enhancer-promoter 長距離交互作用
- 需要單核苷酸級別的 variant effect 預測
- 作為基因組 representation learning 的基礎模型
考慮替代方案的場景:
- 跨物種分析 → 優先考慮 DNABERT-2 或 Evo
- 短序列分類 (<1K bp) → Nucleotide Transformer 可能更簡單
- 需要最先進架構 → Evo (StripedHyena) 或 Mamba-based 模型
- 蛋白質相關任務 → 直接使用 ESM 系列
參考資料
- Nguyen, E. et al. (2023). HyenaDNA: Long-Range Genomic Sequence Modeling at Single Nucleotide Resolution. arXiv:2306.15794
- Poli, M. et al. (2023). Hyena Hierarchy: Towards Larger Convolutional Language Models. ICML 2023
- HuggingFace Model Hub: LongSafari
- Google Colab Notebook
- Stanford Hazy Research Blog
Comments