{"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/rwkv-reinventing-rnns-for-the-transformer-era","title":"RWKV: Reinventing RNNs for the Transformer Era","arxiv_id":"2305.13048","date":"2023-05-22","proceeding":null,"authors":["Bo Peng","Eric Alcaide","Quentin Anthony","Alon Albalak","Samuel Arcadinho","Stella Biderman","Huanqi Cao","Xin Cheng","Michael Chung","Matteo Grella","Kranthi Kiran GV","Xuzheng He","Haowen Hou","Jiaju Lin","Przemyslaw Kazienko","Jan Kocon","Jiaming Kong","Bartlomiej Koptyra","Hayden Lau","Krishna Sri Ipsit Mantri","Ferdinand Mom","Atsushi Saito","Guangyu Song","Xiangru Tang","Bolun Wang","Johan S. Wind","Stanislaw Wozniak","Ruichong Zhang","Zhenyuan Zhang","Qihang Zhao","Peng Zhou","Qinghua Zhou","Jian Zhu","Rui-Jie Zhu"],"abstract":"Transformers have revolutionized almost all natural language processing (NLP) tasks but suffer from memory and computational complexity that scales quadratically with sequence length. In contrast, recurrent neural networks (RNNs) exhibit linear scaling in memory and computational requirements but struggle to match the same performance as Transformers due to limitations in parallelization and scalability. We propose a novel model architecture, Receptance Weighted Key Value (RWKV), that combines the efficient parallelizable training of transformers with the efficient inference of RNNs. Our approach leverages a linear attention mechanism and allows us to formulate the model as either a Transformer or an RNN, thus parallelizing computations during training and maintains constant computational and memory complexity during inference. We scale our models as large as 14 billion parameters, by far the largest dense RNN ever trained, and find RWKV performs on par with similarly sized Transformers, suggesting future work can leverage this architecture to create more efficient models. This work presents a significant step towards reconciling trade-offs between computational efficiency and model performance in sequence processing tasks.","url_abs":"https://arxiv.org/abs/2305.13048v2","url_pdf":"https://arxiv.org/pdf/2305.13048v2.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":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/BlinkDL/RWKV-LM","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/blinkdl/chatrwkv","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/Westlake-AI/openmixup","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/asuller/rwkv-musicgenerator","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/dc-dc-dc/mlx-rwkv","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/hannibal046/nanorwkv","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/khhaliil/avatario","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/rwkv/rwkv-lm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/rwkv/rwkv.cpp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/sustcsonglin/flash-linear-attention","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/tomer9080/stock-prediction-using-rwkv","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/typoverflow/decision-rwkv","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/seung7361/RWKV-Pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"rwkv-reinventing-rnns-for-the-transformer-era","repo_url":"https://github.com/yangyucheng000/University/tree/main/model-3/rwkv","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null}],"tasks":[{"task_slug":"computational-efficiency","task_name":"Computational Efficiency"},{"task_slug":"natural-language-inference","task_name":"Natural Language 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":"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"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/natural-language-inference-on-wnli","task":"Natural Language Inference","dataset":"WNLI","model":"RWKV-4-Raven-14B","rank_in_archive_order":22,"of":23,"metrics":{"Accuracy":"49.3"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2305.13048","atlas_url":"https://app.syntology.ai/?focus=2305.13048","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.13048"}},"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/Westlake-AI/openmixup","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/blinkdl/chatrwkv","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tomer9080/stock-prediction-using-rwkv","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sustcsonglin/flash-linear-attention","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dc-dc-dc/mlx-rwkv","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hannibal046/nanorwkv","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/khhaliil/avatario","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/BlinkDL/RWKV-LM","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rwkv/rwkv.cpp","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rwkv/rwkv-lm","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yangyucheng000/University/tree/main/model-3/rwkv","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/typoverflow/decision-rwkv","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/seung7361/RWKV-Pytorch","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/asuller/rwkv-musicgenerator","reach":{"status":"ok"}}],"summary":{"ran_honours":1,"ran":3,"ran_draft_wrong":2,"unverified":5},"by_repo_kind":{"official":{"samples":7,"ran":3,"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":"7e9cf65e078afda5","entry":"batch","repo":"BlinkDL/RWKV-LM","repo_kind":"official","path":"RWKV-v7/train_temp/rwkv7_train_simplified.py","file_url":"https://github.com/BlinkDL/RWKV-LM/blob/HEAD/RWKV-v7/train_temp/rwkv7_train_simplified.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":"7e9cf65e078afda5"}},{"code_sha256_prefix":"922e0a890b2fbbab","entry":"format_loss","repo":"rwkv/rwkv.cpp","repo_kind":"listed","path":"python/measure_pexplexity.py","file_url":"https://github.com/rwkv/rwkv.cpp/blob/HEAD/python/measure_pexplexity.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":"922e0a890b2fbbab"}},{"code_sha256_prefix":"c64ea6a80f61aeac","entry":"format_loss_with_perplexity","repo":"rwkv/rwkv.cpp","repo_kind":"listed","path":"python/measure_pexplexity.py","file_url":"https://github.com/rwkv/rwkv.cpp/blob/HEAD/python/measure_pexplexity.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":"c64ea6a80f61aeac"}},{"code_sha256_prefix":"4dbb2fe483ceceed","entry":"get_layer_count","repo":"rwkv/rwkv.cpp","repo_kind":"listed","path":"python/convert_pytorch_to_ggml.py","file_url":"https://github.com/rwkv/rwkv.cpp/blob/HEAD/python/convert_pytorch_to_ggml.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":"4dbb2fe483ceceed"}},{"code_sha256_prefix":"35e590faf9de67ca","entry":"sample_logits","repo":"blinkdl/chatrwkv","repo_kind":"official","path":"RWKV_in_150_lines.py","file_url":"https://github.com/blinkdl/chatrwkv/blob/HEAD/RWKV_in_150_lines.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"35e590faf9de67ca"}},{"code_sha256_prefix":"07a576b3352ec5ac","entry":"time_mixing__","repo":"BlinkDL/RWKV-LM","repo_kind":"official","path":"RWKV-v7/rwkv_v7_demo_rnn.py","file_url":"https://github.com/BlinkDL/RWKV-LM/blob/HEAD/RWKV-v7/rwkv_v7_demo_rnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"07a576b3352ec5ac"}},{"code_sha256_prefix":"4ba3321ca44d1608","entry":"RUN_CUDA_RWKV7g","repo":"BlinkDL/RWKV-LM","repo_kind":"official","path":"RWKV-v7/train_temp/rwkv7_train_simplified.py","file_url":"https://github.com/BlinkDL/RWKV-LM/blob/HEAD/RWKV-v7/train_temp/rwkv7_train_simplified.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":"4ba3321ca44d1608"}},{"code_sha256_prefix":"a43aabdbc73f2f29","entry":"channel_mixing__","repo":"BlinkDL/RWKV-LM","repo_kind":"official","path":"RWKV-v7/rwkv_v7_demo_rnn.py","file_url":"https://github.com/BlinkDL/RWKV-LM/blob/HEAD/RWKV-v7/rwkv_v7_demo_rnn.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":"a43aabdbc73f2f29"}},{"code_sha256_prefix":"5256b8e5b92e6c98","entry":"load_all_stat","repo":"blinkdl/chatrwkv","repo_kind":"official","path":"chat.py","file_url":"https://github.com/blinkdl/chatrwkv/blob/HEAD/chat.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":"5256b8e5b92e6c98"}},{"code_sha256_prefix":"104b35c3b39791a5","entry":"mm8","repo":"blinkdl/chatrwkv","repo_kind":"official","path":"rwkv_pip_package/src/rwkv/model.py","file_url":"https://github.com/blinkdl/chatrwkv/blob/HEAD/rwkv_pip_package/src/rwkv/model.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":"104b35c3b39791a5"}},{"code_sha256_prefix":"ecd9b52290cb9d64","entry":"split_last_end_of_line","repo":"rwkv/rwkv.cpp","repo_kind":"listed","path":"python/chat_with_bot.py","file_url":"https://github.com/rwkv/rwkv.cpp/blob/HEAD/python/chat_with_bot.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":"ecd9b52290cb9d64"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}