{"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/safe-dreamerv3-safe-reinforcement-learning","title":"SafeDreamer: Safe Reinforcement Learning with World Models","arxiv_id":"2307.07176","date":"2023-07-14","proceeding":null,"authors":["Weidong Huang","Jiaming Ji","Chunhe Xia","Borong Zhang","Yaodong Yang"],"abstract":"The deployment of Reinforcement Learning (RL) in real-world applications is constrained by its failure to satisfy safety criteria. Existing Safe Reinforcement Learning (SafeRL) methods, which rely on cost functions to enforce safety, often fail to achieve zero-cost performance in complex scenarios, especially vision-only tasks. These limitations are primarily due to model inaccuracies and inadequate sample efficiency. The integration of the world model has proven effective in mitigating these shortcomings. In this work, we introduce SafeDreamer, a novel algorithm incorporating Lagrangian-based methods into world model planning processes within the superior Dreamer framework. Our method achieves nearly zero-cost performance on various tasks, spanning low-dimensional and vision-only input, within the Safety-Gymnasium benchmark, showcasing its efficacy in balancing performance and safety in RL tasks. Further details can be found in the code repository: \\url{https://github.com/PKU-Alignment/SafeDreamer}.","url_abs":"https://arxiv.org/abs/2307.07176v3","url_pdf":"https://arxiv.org/pdf/2307.07176v3.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":"safe-dreamerv3-safe-reinforcement-learning","repo_url":"https://github.com/pku-alignment/safedreamer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"safe-reinforcement-learning","task_name":"Safe Reinforcement Learning"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[{"method_slug":"fail","method_name":"fail"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2307.07176","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.07176"}},"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/PKU-Alignment/SafeDreamer","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pku-alignment/safedreamer","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5,"unverified":7},"by_repo_kind":{"official":{"samples":12,"ran":5,"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":"24fe13b4f847da6b","entry":"cast_to_compute","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/jaxutils.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/jaxutils.py","link_basis":"harvester_set","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":"24fe13b4f847da6b"}},{"code_sha256_prefix":"1b40546e7c4ffe56","entry":"cost_from_state","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/behaviors.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/behaviors.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":"1b40546e7c4ffe56"}},{"code_sha256_prefix":"bbd25fa32893729e","entry":"pure","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/ninjax.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/ninjax.py","link_basis":"harvester_set","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":"bbd25fa32893729e"}},{"code_sha256_prefix":"e5b1910ea05891b1","entry":"subsample","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/jaxutils.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/jaxutils.py","link_basis":"harvester_set","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":"e5b1910ea05891b1"}},{"code_sha256_prefix":"67c6d2355562342f","entry":"tensorstats","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/jaxutils.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/jaxutils.py","link_basis":"harvester_set","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":"67c6d2355562342f"}},{"code_sha256_prefix":"4b830637b16db4c8","entry":"convert","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/embodied/core/basics.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/embodied/core/basics.py","link_basis":"harvester_set","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":"4b830637b16db4c8"}},{"code_sha256_prefix":"3360b32511bc42d4","entry":"format_","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/embodied/core/basics.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/embodied/core/basics.py","link_basis":"harvester_set","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":"3360b32511bc42d4"}},{"code_sha256_prefix":"03dd934385b4d240","entry":"get_act","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/nets.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/nets.py","link_basis":"harvester_set","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":"03dd934385b4d240"}},{"code_sha256_prefix":"1ad869363216c281","entry":"grad","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/ninjax.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/ninjax.py","link_basis":"harvester_set","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":"1ad869363216c281"}},{"code_sha256_prefix":"45b97b51433849a7","entry":"rng","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/ninjax.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/ninjax.py","link_basis":"harvester_set","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":"45b97b51433849a7"}},{"code_sha256_prefix":"d241520c8a517f0a","entry":"symexp","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/agent.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/agent.py","link_basis":"harvester_set","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":"d241520c8a517f0a"}},{"code_sha256_prefix":"5ba274a4e18b46f3","entry":"treemap","repo":"PKU-Alignment/SafeDreamer","repo_kind":"official","path":"SafeDreamer/embodied/core/basics.py","file_url":"https://github.com/PKU-Alignment/SafeDreamer/blob/HEAD/SafeDreamer/embodied/core/basics.py","link_basis":"harvester_set","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":"5ba274a4e18b46f3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}