🚀 GENERator-eukaryote-3b-baseモデル
このモデルは、真核生物のDNAに基づく長文脈の生成型ゲノム基礎モデルで、幅広い生物に対する理解と生成能力を備えています。
🚀 クイックスタート
このリポジトリでは、GENERatorという生成型ゲノム基礎モデルを紹介しています。このモデルは98k塩基対のコンテキスト長と30億のパラメータを持ち、3860億塩基対の真核生物DNAからなる大規模なデータセットで学習されています。広範かつ多様な事前学習データにより、GENERatorは様々な生物に対する理解と生成能力が向上しています。
詳細な技術情報については、論文 GENERator: A Long-Context Generative Genomic Foundation Model を参照してください。コードと実装の詳細はGithubで公開されています: https://github.com/GenerTeam/GENERator。
✨ 主な機能
- 98k塩基対の長いコンテキスト長をサポート
- 3860億塩基対の真核生物DNAで学習
- 様々な生物に対する理解と生成能力を備える
📦 インストール
このモデルはtransformers
ライブラリを使用しています。必要な依存関係をインストールすることで利用できます。
💻 使用例
基本的な使用法
生成の例
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("GenerTeam/GENERator-eukaryote-3b-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("GenerTeam/GENERator-eukaryote-3b-base")
config = model.config
max_length = config.max_position_embeddings
sequences = [
"ATGAGGTGGCAAGAAATGGGCTAC",
"GAATTCCATGAGGCTATAGAATAATCTAAGAGAAAT"
]
sequences = [tokenizer.bos_token + sequence for sequence in sequences]
tokenizer.padding_side = "left"
inputs = tokenizer(
sequences,
add_special_tokens=False,
return_tensors="pt",
padding=True,
truncation=True,
max_length=max_length
)
with torch.inference_mode():
outputs = model.generate(**inputs, max_new_tokens=32, temperature=0.00001, top_k=1)
decoded_sequences = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(decoded_sequences)
埋め込みの例
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("GENERator-eukaryote-3b-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("GenerTeam/GENERator-eukaryote-3b-base")
config = model.config
max_length = config.max_position_embeddings
sequences = [
"ATGAGGTGGCAAGAAATGGGCTAC",
"GAATTCCATGAGGCTATAGAATAATCTAAGAGAAAT"
]
tokenizer.padding_side = "right"
inputs = tokenizer(
sequences,
add_special_tokens=True,
return_tensors="pt",
padding=True,
truncation=True,
max_length=max_length
)
with torch.inference_mode():
outputs = model(**inputs, output_hidden_states=True)
hidden_states = outputs.hidden_states[-1]
attention_mask = inputs["attention_mask"]
last_token_indices = attention_mask.sum(dim=1) - 1
seq_embeddings = []
for i, token_index in enumerate(last_token_indices):
seq_embedding = hidden_states[i, token_index, :]
seq_embeddings.append(seq_embedding)
seq_embeddings = torch.stack(seq_embeddings)
print("Sequence Embeddings:", seq_embeddings)
📚 ドキュメント
詳細な技術情報については、論文 GENERator: A Long-Context Generative Genomic Foundation Model を参照してください。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。
📚 引用
@misc{wu2025generator,
title={GENERator: A Long-Context Generative Genomic Foundation Model},
author={Wei Wu and Qiuyi Li and Mingyang Li and Kun Fu and Fuli Feng and Jieping Ye and Hui Xiong and Zheng Wang},
year={2025},
eprint={2502.07272},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2502.07272},
}