{"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/arxiv-2604-22768","title":"Secure On-Premise Deployment of Open-Weights Large Language Models in Radiology: An Isolation-First Architecture with Prospective Pilot Evaluation","arxiv_id":"2604.22768","date":"2026-03-25","proceeding":null,"authors":["Sebastian Nowak","Jann-Frederick Laß","Narine Mesropyan","Babak Salam","Nico Piel","Mohammed Bahaaeldin","Wolfgang Block","Alois Martin Sprinkart","Julian Alexander Luetkens","Benjamin Wulff","Alexander Isaak"],"abstract":"Purpose: To design, implement, evaluate, and report on the regulatory requirements of a self-hosted LLM infrastructure for radiology adhering to the principle of least privilege, emphasizing technical feasibility, network isolation, and clinical utility. Materials and Methods: The isolation-first, containerized LLM inference stack relies on strict network segmentation, host-enforced egress filtering, and active isolation monitoring preventing unauthorized external connectivity. An accompanying deployment package provides automated isolation and hardening tests. The system served the open-weights DeepSeek-R1 model via vLLM. In a one-week pilot phase, 22 residents and radiologists were free to use 10 predefined prompt-templates whenever they considered them useful in daily work. Afterward, they rated clinical utility and system stability on an 0-10 Likert scale and reported observed critical errors in model output. Results: The applied institutional governance pathway achieved approval from clinic management, compliance, data protection and information security officers for processing unanonymized PHI. The system was rated stable and user friendly during the pilot. Source text-anchored tasks, such as report corrections or simplifications, and radiology guideline recommendations received the highest utility ratings, whereas open-ended conclusion generation based on findings resulted in the highest frequency of critical errors, such as clinically relevant hallucinations or omissions. Conclusion: The proposed isolation-first on-premise architecture enabled overcoming regulatory borders, showed promising clinical utility in text-anchored tasks and is the current base to serve open-weights LLMs as an official service of a German University Hospital with over 10,000 employees. The deployment package were made publicly available (https://github.com/ukbonn/ukb-gpt).","url_abs":"https://arxiv.org/abs/2604.22768","url_pdf":"https://arxiv.org/pdf/2604.22768","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2604.22768"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/ukbonn/ukb-gpt","reach":null}],"summary":{"ran":2,"ran_violates":4,"ran_draft_wrong":2,"unverified":14},"by_repo_kind":{"found_in_text":{"samples":22,"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":0,"samples":[{"code_sha256_prefix":"8822e43f5606f191","entry":"_egress_targets_configured","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"8822e43f5606f191"}},{"code_sha256_prefix":"b5c56c60ae74ad09","entry":"_env_enabled","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b5c56c60ae74ad09"}},{"code_sha256_prefix":"53cc6a434876297d","entry":"_format_cmd","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"53cc6a434876297d"}},{"code_sha256_prefix":"b4063ea50f507657","entry":"_parse_egress_rules","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"b4063ea50f507657"}},{"code_sha256_prefix":"84ca2a0a9b634d5a","entry":"_populate_egress_chain","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"84ca2a0a9b634d5a"}},{"code_sha256_prefix":"5efde1bd5254c2d6","entry":"_run_capture","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"5efde1bd5254c2d6"}},{"code_sha256_prefix":"4fa52964c8b7aeec","entry":"_run_cmd","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4fa52964c8b7aeec"}},{"code_sha256_prefix":"23256898ae508484","entry":"_wait_for_interface","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"23256898ae508484"}},{"code_sha256_prefix":"b4bc00e26cc126c4","entry":"EgressRule","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"b4bc00e26cc126c4"}},{"code_sha256_prefix":"ab35eb963637ace5","entry":"_append_rule","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"ab35eb963637ace5"}},{"code_sha256_prefix":"bb0362e1a968f4f2","entry":"_chain_exists","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"bb0362e1a968f4f2"}},{"code_sha256_prefix":"5becc85efcdae855","entry":"_ensure_chain","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"5becc85efcdae855"}},{"code_sha256_prefix":"c86ca11d28af5493","entry":"_ensure_managed_chains","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"c86ca11d28af5493"}},{"code_sha256_prefix":"3eeb3246ed18847f","entry":"_flush_chain","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"3eeb3246ed18847f"}},{"code_sha256_prefix":"1ebbb3464a86ecb4","entry":"_install_jump_rules","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"1ebbb3464a86ecb4"}},{"code_sha256_prefix":"69f98c79d2f9fcb9","entry":"_parse_legacy_egress_rules","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"69f98c79d2f9fcb9"}},{"code_sha256_prefix":"803e5daef1e9871e","entry":"_populate_ingress_chain","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"803e5daef1e9871e"}},{"code_sha256_prefix":"8051a2485bf80086","entry":"_populate_internal_chain","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"8051a2485bf80086"}},{"code_sha256_prefix":"e611a084e92540f7","entry":"_reinstall_rule","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"e611a084e92540f7"}},{"code_sha256_prefix":"a5314ad166e2b9d0","entry":"_remove_rule_if_present","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"a5314ad166e2b9d0"}},{"code_sha256_prefix":"f0a1f1ca5b158caa","entry":"_rule_exists","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"f0a1f1ca5b158caa"}},{"code_sha256_prefix":"cbfa23f55de4d865","entry":"enforce_ipv4_rules","repo":"ukbonn/ukb-gpt","repo_kind":"found_in_text","path":"security_helpers/apply_host_firewall.py","file_url":"https://github.com/ukbonn/ukb-gpt/blob/HEAD/security_helpers/apply_host_firewall.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":"cbfa23f55de4d865"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}