{"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/deep-language-networks-joint-prompt-training","title":"Joint Prompt Optimization of Stacked LLMs using Variational Inference","arxiv_id":"2306.12509","date":"2023-06-21","proceeding":"NeurIPS 2023 11","authors":["Alessandro Sordoni","Xingdi Yuan","Marc-Alexandre Côté","Matheus Pereira","Adam Trischler","Ziang Xiao","Arian Hosseini","Friederike Niedtner","Nicolas Le Roux"],"abstract":"Large language models (LLMs) can be seen as atomic units of computation mapping sequences to a distribution over sequences. Thus, they can be seen as stochastic language layers in a language network, where the learnable parameters are the natural language prompts at each layer. By stacking two such layers and feeding the output of one layer to the next, we obtain a Deep Language Network (DLN). We first show how to effectively perform prompt optimization for a 1-Layer language network (DLN-1). Then, we present an extension that applies to 2-layer DLNs (DLN-2), where two prompts must be learned. The key idea is to consider the output of the first layer as a latent variable, which requires inference, and prompts to be learned as the parameters of the generative distribution. We first test the effectiveness of DLN-1 in multiple reasoning and natural language understanding tasks. Then, we show that DLN-2 can reach higher performance than a single layer, showing promise that we might reach comparable performance to GPT-4, even when each LLM in the network is smaller and less powerful.","url_abs":"https://arxiv.org/abs/2306.12509v2","url_pdf":"https://arxiv.org/pdf/2306.12509v2.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":"deep-language-networks-joint-prompt-training","repo_url":"https://github.com/microsoft/deep-language-networks","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"natural-language-understanding","task_name":"Natural Language Understanding"},{"task_slug":"variational-inference","task_name":"Variational Inference"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-4","method_name":"GPT-4"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"},{"method_slug":"variational-inference","method_name":"Variational Inference"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2306.12509","atlas_url":"https://app.syntology.ai/?focus=2306.12509","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.12509"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/microsoft/deep-language-networks","reach":null}],"summary":{"ran_fixture":1,"ran_draft_wrong":2,"unverified":16},"by_repo_kind":{"official":{"samples":19,"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":"4e2d9476c7b7f5bb","entry":"compute_pairwise_kl","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4e2d9476c7b7f5bb"}},{"code_sha256_prefix":"27d7836227d45e77","entry":"init_prompts","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"projects/vi_dln/vi_main.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/projects/vi_dln/vi_main.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":"27d7836227d45e77"}},{"code_sha256_prefix":"d843b5eea08b3a77","entry":"load_template","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d843b5eea08b3a77"}},{"code_sha256_prefix":"25b3e2a5424120d2","entry":"DLNTemplate","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"25b3e2a5424120d2"}},{"code_sha256_prefix":"a3be7a8450083a00","entry":"Info","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3be7a8450083a00"}},{"code_sha256_prefix":"58142a168b50bfe8","entry":"LLM","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"58142a168b50bfe8"}},{"code_sha256_prefix":"917d903a0020d602","entry":"LLoss","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"917d903a0020d602"}},{"code_sha256_prefix":"f8c95ea21f840a49","entry":"LogProbs","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f8c95ea21f840a49"}},{"code_sha256_prefix":"f37b35b99bcbb3c0","entry":"LogProbsScore","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f37b35b99bcbb3c0"}},{"code_sha256_prefix":"5805bad2f84aed03","entry":"OutputClasses","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5805bad2f84aed03"}},{"code_sha256_prefix":"a78e566e54ca2436","entry":"PosteriorSampler","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a78e566e54ca2436"}},{"code_sha256_prefix":"bea9ae5b3a1554ae","entry":"PriorLayer","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bea9ae5b3a1554ae"}},{"code_sha256_prefix":"44e5112d138ac1a5","entry":"ResidualPriorLayer","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"44e5112d138ac1a5"}},{"code_sha256_prefix":"9a68c9cffdb8207f","entry":"ResultLogEntry","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9a68c9cffdb8207f"}},{"code_sha256_prefix":"674886d8862cc099","entry":"ScoreRequest","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"674886d8862cc099"}},{"code_sha256_prefix":"244a56a215343711","entry":"SequentialPromptSampler","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"244a56a215343711"}},{"code_sha256_prefix":"ff15cdb643c50016","entry":"Templates","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ff15cdb643c50016"}},{"code_sha256_prefix":"b62b5074721ca0f4","entry":"VILModel","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b62b5074721ca0f4"}},{"code_sha256_prefix":"df0c026e50c6f1a0","entry":"log_message","repo":"microsoft/deep-language-networks","repo_kind":"official","path":"dln/vi/model.py","file_url":"https://github.com/microsoft/deep-language-networks/blob/HEAD/dln/vi/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"df0c026e50c6f1a0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}