> ## Documentation Index
> Fetch the complete documentation index at: https://proto.evodesign.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Evo2 DNA Language Model

> Evo2 genome language model for DNA sequence generation

<div class="page-hero">
  <img class="page-hero-banner" src="https://proto-bio.github.io/proto-assets/images/generator/evo2/hero.png" alt="Evo2 DNA Language Model" />
</div>

<Note>
  **License:** Evo2 is open source and free for academic and commercial use under an Apache-2.0 license. Please refer to [the license](https://github.com/arcinstitute/evo2/blob/main/LICENSE) for full terms.
</Note>

<p class="entity-disclaimer">This generator is open source. Any third-party models, product names, or trademarks referenced are the property of their respective owners, and Proto is not affiliated with them.</p>

<hr class="entity-rule" />

<input type="radio" name="tab-generator-evo2" id="none-generator-evo2" class="tab-radio-input" />

<input type="radio" name="tab-generator-evo2" id="tools-generator-evo2" class="tab-radio-input" defaultChecked />

<input type="radio" name="tab-generator-evo2" id="source-generator-evo2" class="tab-radio-input" />

<input type="radio" name="tab-generator-evo2" id="cite-generator-evo2" class="tab-radio-input" />

<div class="tool-tab-bar"><span class="tool-tab-wrap"><label for="tools-generator-evo2" class="tool-tab tab-open badge-tools"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1" /><rect width="7" height="7" x="14" y="3" rx="1" /><rect width="7" height="7" x="14" y="14" rx="1" /><rect width="7" height="7" x="3" y="14" rx="1" /></svg> Tools Used</label><label for="none-generator-evo2" class="tool-tab tab-close badge-tools"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1" /><rect width="7" height="7" x="14" y="3" rx="1" /><rect width="7" height="7" x="14" y="14" rx="1" /><rect width="7" height="7" x="3" y="14" rx="1" /></svg> Tools Used</label></span> <span class="tool-tab-wrap"><label for="source-generator-evo2" class="tool-tab tab-open badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</label><label for="none-generator-evo2" class="tool-tab tab-close badge-source"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</label></span> <span class="tool-tab-wrap"><label for="cite-generator-evo2" class="tool-tab tab-open badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label><label for="none-generator-evo2" class="tool-tab tab-close badge-cite"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Cite</label></span></div>

<a href="/docs/tools/causal-models/evo2" class="tab-panel tools-panel tools-panel-single" data-tab="tools-generator-evo2">
  <div class="tools-single-card">
    <img noZoom src="https://proto-bio.github.io/proto-assets/images/tool/evo2/social.png" alt="" loading="lazy" />
  </div>

  <span class="panel-goto-btn tools-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14" /><path d="m12 5 7 7-7 7" /></svg> Go to Tool Page</span></span>
</a>

<a href="https://github.com/evo-design/proto-language/blob/d3b7822f74ea64747cc751a3b2ab1aa6b799ac47/proto_language/generator/evo2_generator.py#L212" target="_blank" class="tab-panel source-panel" data-tab="source-generator-evo2">
  <div class="source-info">
    <img noZoom src="https://github.com/evo-design.png?size=40" class="source-avatar" width="36" height="36" />

    <span class="source-path">evo-design/proto-language<span class="source-subpath">/proto\_language/generator/evo2\_generator.py</span></span>
  </div>

  <span class="panel-goto-btn source-goto-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" /></svg> View source</span></span>
</a>

<div class="tab-panel cite-panel" data-tab="cite-generator-evo2">
  <div class="cite-code-wrap">
    ```bibtex theme={null}
    @ARTICLE{Brixi2026-jn,
      title     = "Genome modelling and design across all domains of life with Evo 2",
      author    = "Brixi, Garyk and Durrant, Matthew G and Ku, Jerome and
                   Naghipourfar, Mohsen and Poli, Michael and Sun, Gwanggyu and
                   Brockman, Greg and Chang, Daniel and Fanton, Alison and Gonzalez,
                   Gabriel A and King, Samuel H and Li, David B and Merchant, Aditi
                   T and Nguyen, Eric and Ricci-Tam, Chiara and Romero, David W and
                   Schmok, Jonathan C and Taghibakhshi, Ali and Vorontsov, Anton and
                   Yang, Brandon and Deng, Myra and Gorton, Liv and Nguyen, Nam and
                   Wang, Nicholas K and Pearce, Michael T and Simon, Elana and
                   Adams, Etowah and Amador, Zachary J and Ashley, Euan A and
                   Baccus, Stephen A and Dai, Haoyu and Dillmann, Steven and Ermon,
                   Stefano and Guo, Daniel and Herschl, Michael H and Ilango, Rajesh
                   and Janik, Ken and Lu, Amy X and Mehta, Reshma and Mofrad,
                   Mohammad R K and Ng, Madelena Y and Pannu, Jaspreet and R{\'e},
                   Christopher and St John, John and Sullivan, Jeremy and Tey,
                   Joseph and Viggiano, Ben and Zhu, Kevin and Zynda, Greg and
                   Balsam, Daniel and Collison, Patrick and Costa, Anthony B and
                   Hernandez-Boussard, Tina and Ho, Eric and Liu, Ming-Yu and
                   McGrath, Thomas and Powell, Kimberly and Pinglay, Sudarshan and
                   Burke, Dave P and Goodarzi, Hani and Hsu, Patrick D and Hie,
                   Brian L",
      journal   = "Nature",
      publisher = "Springer Science and Business Media LLC",
      pages     = "1--13",
      doi       = "10.1038/s41586-026-10176-5",
      month     =  mar,
      year      =  2026,
      language  = "en"
    }
    ```
  </div>

  <span class="panel-goto-btn cite-copy-btn"><span><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z" /><path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z" /></svg> Copy citation</span></span>
</div>

<div class="entity-contributors"><span class="entity-contributors-label">Generator contributors</span><span class="entity-contributors-people"><a class="entity-contributor" href="https://github.com/dguo8412" target="_blank" rel="noopener" title="dguo8412: 3 commits"><img noZoom class="entity-contributor-avatar" src="https://avatars.githubusercontent.com/u/46211285?v=4&s=64" alt="" loading="lazy" /><span class="entity-contributor-login">dguo8412</span></a></span></div>
Sequence generator using Evo2 genomic language model for DNA generation.

This generator uses the Evo2 7B parameter model to autoregressively generate
DNA sequences from prompt sequences. Supports advanced sampling strategies,
KV caching for efficiency, and batch generation.

The generator category is `"autoregressive"`, indicating sequences
are generated token-by-token from left to right.

The number of tokens to generate is automatically calculated based on the
assigned segment's sequence\_length, prompt length, and prepend\_prompt setting.

## API Reference

<div class="api-model-section api-model-static api-config-section">
  <div class="api-model-header"><span class="api-model-badge api-config-badge">Config</span><span class="api-model-name">Evo2GeneratorConfig</span><a href="https://github.com/evo-design/proto-language/blob/d3b7822f74ea64747cc751a3b2ab1aa6b799ac47/proto_language/generator/evo2_generator.py#L20" target="_blank" class="func-table-btn func-source-btn api-model-source"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6" /><polyline points="8 6 2 12 8 18" /></svg> Source</a></div>

  Configuration object for Evo2Generator.

  This class defines configuration parameters for the Evo2 generator, which uses
  a 7B parameter genomic language model to generate DNA sequences autoregressively
  from prompt sequences.

  <Note>
    All prompts must have identical lengths for batched generation. For detailed
    information on Evo2 parameters, see: [https://github.com/arcinstitute/evo2](https://github.com/arcinstitute/evo2)
  </Note>

  <ParamField path="prompts" type="List[string]" required>
    Prompt sequences for DNA sequence generation (single prompt or multiple)
  </ParamField>

  <ParamField path="model_checkpoint" type="enum" default="evo2_7b">
    Evo2 model variant to load (currently only evo2\_7b).

    Options: `evo2_7b`, `evo2_20b`, `evo2_40b`, `evo2_7b_base`, `evo2_40b_base`, `evo2_1b_base`, `evo2_7b_262k`, `evo2_7b_microviridae`
  </ParamField>

  <ParamField path="local_path" type="string">
    Path to local checkpoint weights for custom or finetuned models
  </ParamField>

  <ParamField path="device" type="string" default="cuda">
    GPU device to run Evo2 on (e.g. 'cuda' or 'cuda:0').
  </ParamField>

  <ParamField path="top_k" type="integer" default="4">
    Limits sampling to the top-k most probable tokens at each generation step.
  </ParamField>

  <ParamField path="top_p" type="number" default="1">
    Nucleus sampling cutoff. Restricts to the smallest token set with cumulative prob ≥ top-p.
  </ParamField>

  <ParamField path="temperature" type="number" default="1.0">
    Sharpness of sampling. Below 1 favors high-probability tokens; above 1 increases diversity.
  </ParamField>

  <ParamField path="force_prompt_threshold" type="integer">
    Optional number of tokens to prefill in parallel before switching to prompt forcing.
  </ParamField>

  <ParamField path="max_seqlen" type="integer">
    Optional maximum sequence length to generate. Determines the max size of the cache if larger.
  </ParamField>

  <ParamField path="stop_at_eos" type="boolean" default="True">
    Whether to stop at end-of-sequence token
  </ParamField>

  <ParamField path="batched" type="boolean" default="True">
    Generate all prompts together in a single batched forward pass. Required for multiple prompts.
  </ParamField>

  <ParamField path="batch_size" type="integer" default="1">
    Number of sequences to process simultaneously on GPU
  </ParamField>

  <ParamField path="cached_generation" type="boolean" default="True">
    Whether to reuse KV-cache state across decoding steps to avoid recomputation.
  </ParamField>

  <ParamField path="store_kv_cache" type="boolean" default="False">
    Retain and expose the per-sequence KV-cache after generation so downstream callers can continue.
  </ParamField>

  <ParamField path="prepend_prompt" type="boolean" default="False">
    Whether to prepend prompt to generation
  </ParamField>

  <ParamField path="verbose" type="boolean" default="False">
    Whether to print verbose output
  </ParamField>
</div>

## Usage

```python python icon="python" theme={null}
>>> from proto_language.generator import Evo2Generator, Evo2GeneratorConfig
>>> from proto_language.core import Segment, SequenceType
>>> config = Evo2GeneratorConfig(prompts="ATG", temperature=0.8)
>>> gen = Evo2Generator(config)
>>> # Segment length determines how many tokens to generate
>>> segment = Segment(length=1003, sequence_type="dna")
>>> gen.assign(segment)  # prepend_prompt defaults to False, so max_new_tokens = 1003
>>> gen.sample()  # Generates DNA sequences
```

## Metadata

| Property                 | Value            |
| ------------------------ | ---------------- |
| Key                      | `evo2`           |
| Class                    | `Evo2Generator`  |
| Category                 | `autoregressive` |
| Input Type               | `prompt`         |
| Uses GPU                 | `True`           |
| Supported Sequence Types | `dna`            |
| Allows Empty Start       | `False`          |
