{"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/collaborative-distillation-meta-learning-for","title":"DevFormer: A Symmetric Transformer for Context-Aware Device Placement","arxiv_id":"2205.13225","date":"2022-05-26","proceeding":null,"authors":["Haeyeon Kim","Minsu Kim","Federico Berto","Joungho Kim","Jinkyoo Park"],"abstract":"In this paper, we present DevFormer, a novel transformer-based architecture for addressing the complex and computationally demanding problem of hardware design optimization. Despite the demonstrated efficacy of transformers in domains including natural language processing and computer vision, their use in hardware design has been limited by the scarcity of offline data. Our approach addresses this limitation by introducing strong inductive biases such as relative positional embeddings and action-permutation symmetricity that effectively capture the hardware context and enable efficient design optimization with limited offline data. We apply DevFoemer to the problem of decoupling capacitor placement and show that it outperforms state-of-the-art methods in both simulated and real hardware, leading to improved performances while reducing the number of components by more than $30\\%$. Finally, we show that our approach achieves promising results in other offline contextual learning-based combinatorial optimization tasks.","url_abs":"https://arxiv.org/abs/2205.13225v3","url_pdf":"https://arxiv.org/pdf/2205.13225v3.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":"collaborative-distillation-meta-learning-for","repo_url":"https://github.com/kaist-silab/devformer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"collaborative-distillation-meta-learning-for","repo_url":"https://github.com/kaist-silab/dppbench","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"collaborative-distillation-meta-learning-for","repo_url":"https://github.com/ai4co/llm-as-hh","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"collaborative-distillation-meta-learning-for","repo_url":"https://github.com/ai4co/reevo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"collaborative-distillation-meta-learning-for","repo_url":"https://github.com/kaist-silab/symmetric_replay","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"combinatorial-optimization","task_name":"Combinatorial Optimization"},{"task_slug":"meta-learning","task_name":"Meta-Learning"}],"methods":[{"method_slug":"collaborative-distillation","method_name":"Collaborative Distillation"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2205.13225","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.13225"}},"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/ai4co/llm-as-hh","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ai4co/reevo","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kaist-silab/devformer","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kaist-silab/dppbench","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kaist-silab/symmetric_replay","reach":null}],"summary":{"ran":10,"ran_draft_wrong":3,"unverified":10},"by_repo_kind":{"official":{"samples":19,"ran":10,"repositories":2},"listed":{"samples":4,"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":"44766ff2bb80cded","entry":"DevFormerFixed","repo":"kaist-silab/dppbench","repo_kind":"official","path":"src/models/devformer.py","file_url":"https://github.com/kaist-silab/dppbench/blob/HEAD/src/models/devformer.py","link_basis":"first_harvest_node","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":"44766ff2bb80cded"}},{"code_sha256_prefix":"3bbb9454b0aed4ee","entry":"EncoderLayer","repo":"ai4co/reevo","repo_kind":"listed","path":"problems/cvrp_lehd/VRPModel.py","file_url":"https://github.com/ai4co/reevo/blob/HEAD/problems/cvrp_lehd/VRPModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3bbb9454b0aed4ee"}},{"code_sha256_prefix":"e4ba52635327e4e6","entry":"Feed_Forward_Module","repo":"ai4co/reevo","repo_kind":"listed","path":"problems/cvrp_lehd/VRPModel.py","file_url":"https://github.com/ai4co/reevo/blob/HEAD/problems/cvrp_lehd/VRPModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e4ba52635327e4e6"}},{"code_sha256_prefix":"ee17ee53e70396c2","entry":"GraphAttentionEncoder","repo":"kaist-silab/dppbench","repo_kind":"official","path":"src/models/devformer.py","file_url":"https://github.com/kaist-silab/dppbench/blob/HEAD/src/models/devformer.py","link_basis":"first_harvest_node","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":"ee17ee53e70396c2"}},{"code_sha256_prefix":"b1e65318aee81d61","entry":"MultiHeadAttention","repo":"kaist-silab/dppbench","repo_kind":"official","path":"src/models/devformer.py","file_url":"https://github.com/kaist-silab/dppbench/blob/HEAD/src/models/devformer.py","link_basis":"first_harvest_node","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":"b1e65318aee81d61"}},{"code_sha256_prefix":"e974ebdae8b92931","entry":"MultiHeadAttentionLayer","repo":"kaist-silab/dppbench","repo_kind":"official","path":"src/models/devformer.py","file_url":"https://github.com/kaist-silab/dppbench/blob/HEAD/src/models/devformer.py","link_basis":"first_harvest_node","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":"e974ebdae8b92931"}},{"code_sha256_prefix":"01df1926cf07ac89","entry":"check_extension","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/data_utils.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/data_utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"01df1926cf07ac89"}},{"code_sha256_prefix":"69062811f34d8ff6","entry":"load_dataset","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/data_utils.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/data_utils.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":"69062811f34d8ff6"}},{"code_sha256_prefix":"454003b7383dce9f","entry":"mask_bool2long","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/boolmask.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/boolmask.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":"454003b7383dce9f"}},{"code_sha256_prefix":"10638ccfaa13fb59","entry":"mask_long2bool","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/boolmask.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/boolmask.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":"10638ccfaa13fb59"}},{"code_sha256_prefix":"1a3bb2f0ebdf9a4e","entry":"mask_long_scatter","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/boolmask.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/boolmask.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":"1a3bb2f0ebdf9a4e"}},{"code_sha256_prefix":"107d6628712f1a21","entry":"move_to","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/functions.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/functions.py","link_basis":"harvester_set","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":"107d6628712f1a21"}},{"code_sha256_prefix":"388642e538834053","entry":"multi_head_attention","repo":"ai4co/reevo","repo_kind":"listed","path":"problems/cvrp_lehd/VRPModel.py","file_url":"https://github.com/ai4co/reevo/blob/HEAD/problems/cvrp_lehd/VRPModel.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"388642e538834053"}},{"code_sha256_prefix":"e0e374040216e134","entry":"CVRP_Encoder","repo":"ai4co/reevo","repo_kind":"listed","path":"problems/cvrp_lehd/VRPModel.py","file_url":"https://github.com/ai4co/reevo/blob/HEAD/problems/cvrp_lehd/VRPModel.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":"e0e374040216e134"}},{"code_sha256_prefix":"8344a332d9a93ac4","entry":"DevFormer","repo":"kaist-silab/dppbench","repo_kind":"official","path":"src/models/devformer.py","file_url":"https://github.com/kaist-silab/dppbench/blob/HEAD/src/models/devformer.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":"8344a332d9a93ac4"}},{"code_sha256_prefix":"9d5b8d4a73d01c19","entry":"backtrack","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/beam_search.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/beam_search.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":"9d5b8d4a73d01c19"}},{"code_sha256_prefix":"0afddc8bf087bf72","entry":"format_file_size","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/download_anonymous_github.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/download_anonymous_github.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":"0afddc8bf087bf72"}},{"code_sha256_prefix":"be9c547a8e748da5","entry":"get_beam_search_results","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/beam_search.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/beam_search.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":"be9c547a8e748da5"}},{"code_sha256_prefix":"082646223bfd2be7","entry":"get_options","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/options.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/options.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":"082646223bfd2be7"}},{"code_sha256_prefix":"303bdfb5bc7ca4ca","entry":"load_problem","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/functions.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/functions.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":"303bdfb5bc7ca4ca"}},{"code_sha256_prefix":"3996e33f11d6e05c","entry":"req_url","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/download_anonymous_github.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/download_anonymous_github.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":"3996e33f11d6e05c"}},{"code_sha256_prefix":"4fff104acbe171fa","entry":"sample_many","repo":"kaist-silab/dppbench","repo_kind":"official","path":"src/models/devformer.py","file_url":"https://github.com/kaist-silab/dppbench/blob/HEAD/src/models/devformer.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":"4fff104acbe171fa"}},{"code_sha256_prefix":"0538f709044ed305","entry":"torch_load_cpu","repo":"kaist-silab/devformer","repo_kind":"official","path":"src/utils/functions.py","file_url":"https://github.com/kaist-silab/devformer/blob/HEAD/src/utils/functions.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":"0538f709044ed305"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}