{"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/joey-nmt-a-minimalist-nmt-toolkit-for-novices","title":"Joey NMT: A Minimalist NMT Toolkit for Novices","arxiv_id":"1907.12484","date":"2019-07-29","proceeding":"IJCNLP 2019 11","authors":["Julia Kreutzer","Jasmijn Bastings","Stefan Riezler"],"abstract":"We present Joey NMT, a minimalist neural machine translation toolkit based on PyTorch that is specifically designed for novices. Joey NMT provides many popular NMT features in a small and simple code base, so that novices can easily and quickly learn to use it and adapt it to their needs. Despite its focus on simplicity, Joey NMT supports classic architectures (RNNs, transformers), fast beam search, weight tying, and more, and achieves performance comparable to more complex toolkits on standard benchmarks. We evaluate the accessibility of our toolkit in a user study where novices with general knowledge about Pytorch and NMT and experts work through a self-contained Joey NMT tutorial, showing that novices perform almost as well as experts in a subsequent code quiz. Joey NMT is available at https://github.com/joeynmt/joeynmt .","url_abs":"https://arxiv.org/abs/1907.12484v3","url_pdf":"https://arxiv.org/pdf/1907.12484v3.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":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/joeynmt/joeynmt","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/StatNLP/joeynmt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/benjaminbeilharz/hierarchical-reinforcement-learning","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/deep-spin/S7","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/deep-spin/sigmorphon-seq2seq","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/jarl93/joeynmt-modified","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/juliakreutzer/joeynmt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"joey-nmt-a-minimalist-nmt-toolkit-for-novices","repo_url":"https://github.com/songchujun/joeynmt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"general-knowledge","task_name":"General Knowledge"},{"task_slug":"machine-translation","task_name":"Machine Translation"},{"task_slug":"nmt","task_name":"NMT"},{"task_slug":"translation","task_name":"Translation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1907.12484","atlas_url":"https://app.syntology.ai/?focus=1907.12484","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1907.12484"}},"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/deep-spin/sigmorphon-seq2seq","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/benjaminbeilharz/hierarchical-reinforcement-learning","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/juliakreutzer/joeynmt","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/joeynmt/joeynmt","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jarl93/joeynmt-modified","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/StatNLP/joeynmt","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/songchujun/joeynmt","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/deep-spin/S7","reach":null}],"summary":{"ran":10,"ran_violates":1,"ran_fixture":1,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"listed":{"samples":16,"ran":12,"repositories":4}},"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":"fbfce742341c3312","entry":"build_general_value_network","repo":"benjaminbeilharz/hierarchical-reinforcement-learning","repo_kind":"listed","path":"joeynmt/value_network.py","file_url":"https://github.com/benjaminbeilharz/hierarchical-reinforcement-learning/blob/HEAD/joeynmt/value_network.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":true,"mcp_get_code":{"code_sha256":"fbfce742341c3312"}},{"code_sha256_prefix":"a0deb98db94ae939","entry":"check_vocab_and_split","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"a0deb98db94ae939"}},{"code_sha256_prefix":"86b7d1950504d5b1","entry":"clones","repo":"jarl93/joeynmt-modified","repo_kind":"listed","path":"joeynmt/helpers.py","file_url":"https://github.com/jarl93/joeynmt-modified/blob/HEAD/joeynmt/helpers.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":true,"mcp_get_code":{"code_sha256":"86b7d1950504d5b1"}},{"code_sha256_prefix":"52d69829a4cee830","entry":"encode","repo":"deep-spin/S7","repo_kind":"listed","path":"scripts/apply_bpe.py","file_url":"https://github.com/deep-spin/S7/blob/HEAD/scripts/apply_bpe.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52d69829a4cee830"}},{"code_sha256_prefix":"a8c303bcecfe0b48","entry":"ends","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"hallucination/augment.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/hallucination/augment.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":true,"mcp_get_code":{"code_sha256":"a8c303bcecfe0b48"}},{"code_sha256_prefix":"294b5b42eb8b85cc","entry":"find_good_range","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"hallucination/augment.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/hallucination/augment.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":true,"mcp_get_code":{"code_sha256":"294b5b42eb8b85cc"}},{"code_sha256_prefix":"290febe7a42e8479","entry":"get_pairs","repo":"deep-spin/S7","repo_kind":"listed","path":"scripts/apply_bpe.py","file_url":"https://github.com/deep-spin/S7/blob/HEAD/scripts/apply_bpe.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":"290febe7a42e8479"}},{"code_sha256_prefix":"5664f103cf301cd7","entry":"make_fake_user_answer_labels","repo":"benjaminbeilharz/hierarchical-reinforcement-learning","repo_kind":"listed","path":"subtask_pretraining.py","file_url":"https://github.com/benjaminbeilharz/hierarchical-reinforcement-learning/blob/HEAD/subtask_pretraining.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":true,"mcp_get_code":{"code_sha256":"5664f103cf301cd7"}},{"code_sha256_prefix":"aad8945d314699ad","entry":"make_logger","repo":"jarl93/joeynmt-modified","repo_kind":"listed","path":"joeynmt/helpers.py","file_url":"https://github.com/jarl93/joeynmt-modified/blob/HEAD/joeynmt/helpers.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":true,"mcp_get_code":{"code_sha256":"aad8945d314699ad"}},{"code_sha256_prefix":"a19f205cc566f56c","entry":"pad_and_stack_hyps","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"joeynmt/model.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/joeynmt/model.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":true,"mcp_get_code":{"code_sha256":"a19f205cc566f56c"}},{"code_sha256_prefix":"ff0ec87d63da9b32","entry":"read_data","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"hallucination/augment.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/hallucination/augment.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":true,"mcp_get_code":{"code_sha256":"ff0ec87d63da9b32"}},{"code_sha256_prefix":"77a42ba2975545ab","entry":"read_task1_data","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"hallucination/generate_task1_data.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/hallucination/generate_task1_data.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":true,"mcp_get_code":{"code_sha256":"77a42ba2975545ab"}},{"code_sha256_prefix":"9e0d921dd261c239","entry":"rules","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"hallucination/generate_task1_data.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/hallucination/generate_task1_data.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":true,"mcp_get_code":{"code_sha256":"9e0d921dd261c239"}},{"code_sha256_prefix":"e0cdbcc27a1c011a","entry":"build_scheduler","repo":"jarl93/joeynmt-modified","repo_kind":"listed","path":"joeynmt/builders.py","file_url":"https://github.com/jarl93/joeynmt-modified/blob/HEAD/joeynmt/builders.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":"e0cdbcc27a1c011a"}},{"code_sha256_prefix":"c7677be26fa62d12","entry":"build_scheduler","repo":"deep-spin/sigmorphon-seq2seq","repo_kind":"listed","path":"joeynmt/builders.py","file_url":"https://github.com/deep-spin/sigmorphon-seq2seq/blob/HEAD/joeynmt/builders.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":"c7677be26fa62d12"}},{"code_sha256_prefix":"d2439dd3cffbf595","entry":"make_model_dir","repo":"jarl93/joeynmt-modified","repo_kind":"listed","path":"joeynmt/helpers.py","file_url":"https://github.com/jarl93/joeynmt-modified/blob/HEAD/joeynmt/helpers.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":"d2439dd3cffbf595"}},{"code_sha256_prefix":"cb329af957271d21","entry":"token_batch_size_fn","repo":"jarl93/joeynmt-modified","repo_kind":"listed","path":"joeynmt/data.py","file_url":"https://github.com/jarl93/joeynmt-modified/blob/HEAD/joeynmt/data.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":"cb329af957271d21"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}