{"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/scalable-adaptive-computation-for-iterative","title":"Scalable Adaptive Computation for Iterative Generation","arxiv_id":"2212.11972","date":"2022-12-22","proceeding":null,"authors":["Allan Jabri","David Fleet","Ting Chen"],"abstract":"Natural data is redundant yet predominant architectures tile computation uniformly across their input and output space. We propose the Recurrent Interface Networks (RINs), an attention-based architecture that decouples its core computation from the dimensionality of the data, enabling adaptive computation for more scalable generation of high-dimensional data. RINs focus the bulk of computation (i.e. global self-attention) on a set of latent tokens, using cross-attention to read and write (i.e. route) information between latent and data tokens. Stacking RIN blocks allows bottom-up (data to latent) and top-down (latent to data) feedback, leading to deeper and more expressive routing. While this routing introduces challenges, this is less problematic in recurrent computation settings where the task (and routing problem) changes gradually, such as iterative generation with diffusion models. We show how to leverage recurrence by conditioning the latent tokens at each forward pass of the reverse diffusion process with those from prior computation, i.e. latent self-conditioning. RINs yield state-of-the-art pixel diffusion models for image and video generation, scaling to 1024X1024 images without cascades or guidance, while being domain-agnostic and up to 10X more efficient than 2D and 3D U-Nets.","url_abs":"https://arxiv.org/abs/2212.11972v2","url_pdf":"https://arxiv.org/pdf/2212.11972v2.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":"scalable-adaptive-computation-for-iterative","repo_url":"https://github.com/google-research/pix2seq","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":null},{"paper_slug":"scalable-adaptive-computation-for-iterative","repo_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"video-generation","task_name":"Video Generation"},{"task_slug":"video-prediction","task_name":"Video Prediction"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-generation-on-imagenet-128x128","task":"Image Generation","dataset":"ImageNet 128x128","model":"RIN","rank_in_archive_order":8,"of":23,"metrics":{"FID":"2.75","IS":"144.1"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-imagenet-256x256","task":"Image Generation","dataset":"ImageNet 256x256","model":"RIN","rank_in_archive_order":85,"of":94,"metrics":{"FID":"4.51"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-imagenet-64x64","task":"Image Generation","dataset":"ImageNet 64x64","model":"RIN","rank_in_archive_order":8,"of":65,"metrics":{"FID":"1.23"},"uses_additional_data":false},{"leaderboard":"/sota/video-prediction-on-kinetics-600-12-frames","task":"Video Prediction","dataset":"Kinetics-600 12 frames, 64x64","model":"RIN (1000 steps)","rank_in_archive_order":6,"of":16,"metrics":{"FVD":"10.8","IS":"17.7"},"uses_additional_data":false},{"leaderboard":"/sota/video-prediction-on-kinetics-600-12-frames","task":"Video Prediction","dataset":"Kinetics-600 12 frames, 64x64","model":"RIN (400 steps)","rank_in_archive_order":7,"of":16,"metrics":{"FVD":"11.5","IS":"17.7"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2212.11972","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.11972"}},"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/google-research/pix2seq","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lucidrains/recurrent-interface-network-pytorch","reach":null}],"summary":{"ran":10,"ran_honours":8,"ran_draft_wrong":2,"ran_fixture":1,"unverified":8},"by_repo_kind":{"official":{"samples":17,"ran":12,"repositories":1},"listed":{"samples":11,"ran":8,"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":"df4d0ae2244e374f","entry":"Attend","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"df4d0ae2244e374f"}},{"code_sha256_prefix":"305ed1d536ee99b2","entry":"Attention","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"305ed1d536ee99b2"}},{"code_sha256_prefix":"80161ca59f374d2a","entry":"DropPath","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"80161ca59f374d2a"}},{"code_sha256_prefix":"1e9eca95c178f7c9","entry":"FeedForward","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"1e9eca95c178f7c9"}},{"code_sha256_prefix":"b9ad5f9347bcd710","entry":"FeedForwardLayer","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b9ad5f9347bcd710"}},{"code_sha256_prefix":"d070db73849f9743","entry":"LayerNorm","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"d070db73849f9743"}},{"code_sha256_prefix":"e4a1970252d572fd","entry":"LearnedSinusoidalPosEmb","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e4a1970252d572fd"}},{"code_sha256_prefix":"f8753f538bdf8090","entry":"LinearAttention","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"f8753f538bdf8090"}},{"code_sha256_prefix":"8535fbe5734cf1d3","entry":"MultiHeadedRMSNorm","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"8535fbe5734cf1d3"}},{"code_sha256_prefix":"2090cfddb3b4ea08","entry":"PEG","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"2090cfddb3b4ea08"}},{"code_sha256_prefix":"fbc958c1295b5f01","entry":"add_vis_pos_emb","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fbc958c1295b5f01"}},{"code_sha256_prefix":"cbbd048907025ae1","entry":"get_1d_position_codes","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cbbd048907025ae1"}},{"code_sha256_prefix":"554d30594bb18ba4","entry":"get_2d_position_codes","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"554d30594bb18ba4"}},{"code_sha256_prefix":"c1a5330036a08dfa","entry":"get_angles","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c1a5330036a08dfa"}},{"code_sha256_prefix":"508ee551fb33fedc","entry":"get_ar_mask","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"508ee551fb33fedc"}},{"code_sha256_prefix":"3e4ac71a6f12be9d","entry":"get_chunk_ar_mask","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3e4ac71a6f12be9d"}},{"code_sha256_prefix":"90a86ebf31046958","entry":"get_layer_config","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"90a86ebf31046958"}},{"code_sha256_prefix":"37888d00e9d8c4ab","entry":"get_variable_initializer","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"37888d00e9d8c4ab"}},{"code_sha256_prefix":"e37890b1d73b280c","entry":"kronecker_product","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e37890b1d73b280c"}},{"code_sha256_prefix":"7a5b750c9c8d5e81","entry":"positional_encoding","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7a5b750c9c8d5e81"}},{"code_sha256_prefix":"d1c561539ef11926","entry":"suffix_id","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"d1c561539ef11926"}},{"code_sha256_prefix":"e147f983e472692f","entry":"FIT","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e147f983e472692f"}},{"code_sha256_prefix":"e2256176baee1426","entry":"MLP","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e2256176baee1426"}},{"code_sha256_prefix":"5fdaf6caf1863ed1","entry":"RIN","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"5fdaf6caf1863ed1"}},{"code_sha256_prefix":"89c11df753e06cb9","entry":"RINBlock","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"89c11df753e06cb9"}},{"code_sha256_prefix":"d6fde31f78c4502f","entry":"Sequential","repo":"lucidrains/recurrent-interface-network-pytorch","repo_kind":"listed","path":"rin_pytorch/rin_pytorch.py","file_url":"https://github.com/lucidrains/recurrent-interface-network-pytorch/blob/HEAD/rin_pytorch/rin_pytorch.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":"d6fde31f78c4502f"}},{"code_sha256_prefix":"f14aac70f9859dd8","entry":"TransformerDecoderLayer","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f14aac70f9859dd8"}},{"code_sha256_prefix":"b019a0895599116d","entry":"TransformerEncoder","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b019a0895599116d"}},{"code_sha256_prefix":"e730a175de3303f8","entry":"TransformerEncoderLayer","repo":"google-research/pix2seq","repo_kind":"official","path":"architectures/transformers.py","file_url":"https://github.com/google-research/pix2seq/blob/HEAD/architectures/transformers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e730a175de3303f8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}