SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2306.15794 · NeurIPS · 2023

HyenaDNA: Long-Range Genomic Sequence Modeling at Single Nucleotide Resolution

Yoshua Bengio, Stefano Ermon, Christopher Ré, Michael Poli, Stefano Massaroli, Eric Nguyen, Stephen Baccus, Armin Thomas, Marjan Faizi, Callum Sykes, Michael Wornow, Aman Patel, and 1 more

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 28 functions out of this paper's own repositories and ran 17 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
frederikkemarin/bend — 11 of 19
HazyResearch/hyena-dna — 5 of 8
copy not recorded — 1 of 1
FunctionStatusWhere it lives
Activation Ran HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("3cd2f572b4362749")
ExponentialModulation Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("71c56d498ff19d96")
GPT2Embeddings Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("fb99304499c57d08")
HyenaFilter Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("b65ebc2556b1f0bd")
Laplace Ran HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("916ff67d7cc5dec1")
LinearResidual Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("e9b64f401a36c5e0")
MHA Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("2108a9e482ae37a6")
Mlp Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("d86ea40df8708d4d")
PositionalEmbedding Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("0e977f11203102fd")
SelfAttention Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("f745e0dbcc9bb059")
SequenceDecoder Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("d30504da4d509b40")
Sin Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("3f162814e9da788b")
SquaredReLU Ran HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("2c0fd690964e38f6")
TransposedLN Ran HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("f930c490ea93d623")
create_mlp_cls Ran frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("f365c364e5fb2475")
laplace Ran HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("452d521c52ebdf0f")
mul_sum Ran this paper's copy was not recorded; identical code first harvested from HazyResearch/H3
pointer only · get_code("5dd28d20c60f0c19")
Block Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("15e87d04566e903e")
HyenaDNAModel Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("1a0693ded9212e71")
HyenaOperator Not yet run HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("bdfcfc1b78dd3774")
HyenaOperator Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("7b17a3ba43c38567")
LMBackbone Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("989ba1bad54bbbc8")
_init_weights Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("8ae5fabb54f1ee70")
auto_assign_attrs Not yet run HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("b37e90eb829295dc")
create_block Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("78db10ce14ffa95c")
create_mixer_cls Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("fe93a5054c8dd38f")
fftconv Not yet run frederikkemarin/bend/bend/models/hyena_dna.py
code served (permissive licence) · get_code("41b32f57fc8ec1e5")
instantiate Not yet run HazyResearch/hyena-dna/src/models/sequence/hyena.py
code served (permissive licence) · get_code("ef3e1ed020307a6f")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Genomic (DNA) sequences encode an enormous amount of information for gene regulation, protein synthesis, and numerous other cellular properties. Similar to natural language models, researchers have proposed foundation models in genomics to learn generalizable features from unlabeled genome data that can then be fine-tuned for downstream tasks such as identifying regulatory elements. Due to the quadratic scaling of attention, previous Transformer-based genomic models have used 512 to 4k tokens as context (<0.001% of the human genome), significantly limiting the modeling of long-range interactions in DNA. In addition, these methods rely on tokenizers or fixed k-mers to aggregate meaningful DNA units, losing single nucleotide resolution (i.e. DNA "characters") where subtle genetic variations can completely alter protein function via single nucleotide polymorphisms (SNPs). Recently, Hyena, a large language model based on implicit convolutions was shown to match attention in quality while allowing longer context lengths and lower time complexity. Leveraging Hyena's new long-range capabilities, we present HyenaDNA, a genomic foundation model pretrained on the human reference genome with context lengths of up to 1 million tokens at the single nucleotide-level -an up to 500x increase over previous dense attention-based models. HyenaDNA scales sub-quadratically in sequence length (training up to 160x faster than Transformer), uses single nucleotide tokens, and has full global context at each layer. We explore what longer context enables -including the first use of in-context learning in genomics for simple adaptation to novel tasks without updating pretrained model weights. On a long-range species classification task, HyenaDNA is able to effectively solve the challenge by increasing the context length to 1M without downsampling. On fine-tuned benchmarks from the Nucleotide Transformer, HyenaDNA reaches state-of-the-art (SotA) on 12 of 18 datasets using a model with orders of magnitude less parameters and pretraining data. 1 On the GenomicBenchmarks, HyenaDNA surpasses SotA on 7 of 8 datasets on average by +10 accuracy points, and by as much as +20 accuracy points on enhancer identification. Code available at https://github.com/HazyResearch/hyena-dna.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2306.15794")
get_code_for_paper("2306.15794")
have("2306.15794")

Connect an agent — have() is free.