{"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-encoder-shallow-decoder-reevaluating-the","title":"Deep Encoder, Shallow Decoder: Reevaluating Non-autoregressive Machine Translation","arxiv_id":"2006.10369","date":"2020-06-18","proceeding":"ICLR 2021 1","authors":["Jungo Kasai","Nikolaos Pappas","Hao Peng","James Cross","Noah A. Smith"],"abstract":"Much recent effort has been invested in non-autoregressive neural machine translation, which appears to be an efficient alternative to state-of-the-art autoregressive machine translation on modern GPUs. In contrast to the latter, where generation is sequential, the former allows generation to be parallelized across target token positions. Some of the latest non-autoregressive models have achieved impressive translation quality-speed tradeoffs compared to autoregressive baselines. In this work, we reexamine this tradeoff and argue that autoregressive baselines can be substantially sped up without loss in accuracy. Specifically, we study autoregressive models with encoders and decoders of varied depths. Our extensive experiments show that given a sufficiently deep encoder, a single-layer autoregressive decoder can substantially outperform strong non-autoregressive models with comparable inference speed. We show that the speed disadvantage for autoregressive baselines compared to non-autoregressive methods has been overestimated in three aspects: suboptimal layer allocation, insufficient speed measurement, and lack of knowledge distillation. Our results establish a new protocol for future research toward fast, accurate machine translation. Our code is available at https://github.com/jungokasai/deep-shallow.","url_abs":"https://arxiv.org/abs/2006.10369v4","url_pdf":"https://arxiv.org/pdf/2006.10369v4.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-encoder-shallow-decoder-reevaluating-the","repo_url":"https://github.com/jungokasai/deep-shallow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"deep-encoder-shallow-decoder-reevaluating-the","repo_url":"https://github.com/snoop2head/Deep-Encoder-Shallow-Decoder","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"knowledge-distillation","task_name":"Knowledge Distillation"},{"task_slug":"machine-translation","task_name":"Machine Translation"},{"task_slug":"translation","task_name":"Translation"}],"methods":[{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.10369","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.10369"}},"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":"deterministic:regex_extraction","url":"https://github.com/jungokasai/deep-shallow","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/clab/fast_align","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/snoop2head/Deep-Encoder-Shallow-Decoder","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":1,"unverified":4},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":4,"ran":0,"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":1,"samples":[{"code_sha256_prefix":"82bdf940665aeeb4","entry":"safe_readline","repo":"jungokasai/deep-shallow","repo_kind":"official","path":"fairseq/binarizer.py","file_url":"https://github.com/jungokasai/deep-shallow/blob/HEAD/fairseq/binarizer.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"82bdf940665aeeb4"}},{"code_sha256_prefix":"a5f26521dfecfd30","entry":"cleanse_broken","repo":"snoop2head/Deep-Encoder-Shallow-Decoder","repo_kind":"listed","path":"preprocess.py","file_url":"https://github.com/snoop2head/Deep-Encoder-Shallow-Decoder/blob/HEAD/preprocess.py","link_basis":"harvester_set","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":"a5f26521dfecfd30"}},{"code_sha256_prefix":"8d980fbded1762a7","entry":"custom_collate_fn","repo":"snoop2head/Deep-Encoder-Shallow-Decoder","repo_kind":"listed","path":"dataset.py","file_url":"https://github.com/snoop2head/Deep-Encoder-Shallow-Decoder/blob/HEAD/dataset.py","link_basis":"harvester_set","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":"8d980fbded1762a7"}},{"code_sha256_prefix":"7ef1cf63594e8444","entry":"custom_collate_inference_fn","repo":"snoop2head/Deep-Encoder-Shallow-Decoder","repo_kind":"listed","path":"dataset.py","file_url":"https://github.com/snoop2head/Deep-Encoder-Shallow-Decoder/blob/HEAD/dataset.py","link_basis":"harvester_set","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":"7ef1cf63594e8444"}},{"code_sha256_prefix":"b123ed9c3b4a5518","entry":"generate_square_subsequent_mask","repo":"snoop2head/Deep-Encoder-Shallow-Decoder","repo_kind":"listed","path":"trainer.py","file_url":"https://github.com/snoop2head/Deep-Encoder-Shallow-Decoder/blob/HEAD/trainer.py","link_basis":"harvester_set","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":"b123ed9c3b4a5518"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}