{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/dirichlet-flow-matching-with-applications-to","title":"Dirichlet Flow Matching with Applications to DNA Sequence Design","arxiv_id":"2402.05841","date":"2024-02-08","proceeding":null,"authors":["Hannes Stark","Bowen Jing","Chenyu Wang","Gabriele Corso","Bonnie Berger","Regina Barzilay","Tommi Jaakkola"],"abstract":"Discrete diffusion or flow models could enable faster and more controllable sequence generation than autoregressive models. We show that na\\\"ive linear flow matching on the simplex is insufficient toward this goal since it suffers from discontinuities in the training target and further pathologies. To overcome this, we develop Dirichlet flow matching on the simplex based on mixtures of Dirichlet distributions as probability paths. In this framework, we derive a connection between the mixtures' scores and the flow's vector field that allows for classifier and classifier-free guidance. Further, we provide distilled Dirichlet flow matching, which enables one-step sequence generation with minimal performance hits, resulting in $O(L)$ speedups compared to autoregressive models. On complex DNA sequence generation tasks, we demonstrate superior performance compared to all baselines in distributional metrics and in achieving desired design targets for generated sequences. Finally, we show that our classifier-free guidance approach improves unconditional generation and is effective for generating DNA that satisfies design targets. Code is available at https://github.com/HannesStark/dirichlet-flow-matching.","url_abs":"https://arxiv.org/abs/2402.05841v2","url_pdf":"https://arxiv.org/pdf/2402.05841v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"dirichlet-flow-matching-with-applications-to","repo_url":"https://github.com/hannesstark/dirichlet-flow-matching","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"dirichlet-flow-matching-with-applications-to","repo_url":"https://github.com/olsdavis/fisher-flow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2402.05841","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.05841"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/olsdavis/fisher-flow","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hannesstark/dirichlet-flow-matching","reach":null}],"summary":{"ran_honours":1,"ran_draft_wrong":2},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"22c38cadd0bf4ee1","entry":"load_flybrain_designed_seqs","repo":"hannesstark/dirichlet-flow-matching","repo_kind":"official","path":"utils/flow_utils.py","file_url":"https://github.com/hannesstark/dirichlet-flow-matching/blob/HEAD/utils/flow_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"22c38cadd0bf4ee1"}},{"code_sha256_prefix":"2c300b84493c2cda","entry":"min_max_str","repo":"hannesstark/dirichlet-flow-matching","repo_kind":"official","path":"utils/flow_utils.py","file_url":"https://github.com/hannesstark/dirichlet-flow-matching/blob/HEAD/utils/flow_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2c300b84493c2cda"}},{"code_sha256_prefix":"55205512756a9ef1","entry":"update_ema","repo":"hannesstark/dirichlet-flow-matching","repo_kind":"official","path":"utils/flow_utils.py","file_url":"https://github.com/hannesstark/dirichlet-flow-matching/blob/HEAD/utils/flow_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"55205512756a9ef1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}