{"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-2510-18232","title":"ACTG-ARL: Differentially Private Conditional Text Generation with RL-Boosted Control","arxiv_id":"2510.18232","date":"2025-10-21","proceeding":"ICML","authors":["Yuzheng Hu","Ryan McKenna","Da Yu","Shanshan Wu","Han Zhao","Zheng Xu","Peter Kairouz"],"abstract":"Generating high-quality synthetic text under differential privacy (DP) is critical for training and evaluating language models without compromising user privacy. Prior work on synthesizing DP datasets often fail to preserve key statistical attributes, suffer utility loss from the noise required by DP, and lack fine-grained control over generation. To address these challenges, we make two contributions. First, we introduce a hierarchical framework that decomposes DP synthetic text generation into two subtasks: feature learning and conditional text generation. This design explicitly incorporates learned features into the generation process and simplifies the end-to-end synthesis task. Through systematic ablations, we identify the most effective configuration: a rich tabular schema as feature, a DP tabular synthesizer, and a DP fine-tuned conditional generator, which we term ACTG (Attribute-Conditioned Text Generation). Second, we propose Anchored RL (ARL), a post-training method that improves the instruction-following ability of ACTG for conditional generation. ARL combines RL to boost control with an SFT anchor on best-of-$N$ data to prevent reward hacking. Together, these components form our end-to-end algorithm ACTG-ARL, which advances both the quality of DP synthetic text (+20% MAUVE over prior work) and the control of the conditional generator under strong privacy guarantees.","url_abs":"https://arxiv.org/abs/2510.18232","url_pdf":"https://arxiv.org/pdf/2510.18232","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":{"syntology_url":"https://syntology.ai/paper/2510.18232","atlas_url":"https://app.syntology.ai/?focus=2510.18232","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2510.18232"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/actg-arl/ACTG-ARL","reach":{"status":"ok"}},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/tanyuqian/synthetic-private-data","reach":{"status":"ok"}}],"summary":{"unverified":10},"by_repo_kind":{"found_in_text":{"samples":10,"ran":0,"repositories":2}},"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":10,"samples":[{"code_sha256_prefix":"52b43047818c6eae","entry":"collate_fn","repo":"tanyuqian/synthetic-private-data","repo_kind":"found_in_text","path":"finetune.py","file_url":"https://github.com/tanyuqian/synthetic-private-data/blob/HEAD/finetune.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"52b43047818c6eae"}},{"code_sha256_prefix":"58907038637470a3","entry":"exponential_mechanism","repo":"actg-arl/ACTG-ARL","repo_kind":"found_in_text","path":"AIM/common.py","file_url":"https://github.com/actg-arl/ACTG-ARL/blob/HEAD/AIM/common.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"58907038637470a3"}},{"code_sha256_prefix":"bf86928de402abfa","entry":"get_gen_dataset","repo":"tanyuqian/synthetic-private-data","repo_kind":"found_in_text","path":"data_utils.py","file_url":"https://github.com/tanyuqian/synthetic-private-data/blob/HEAD/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bf86928de402abfa"}},{"code_sha256_prefix":"1bc4b3de0f3bd617","entry":"get_src","repo":"tanyuqian/synthetic-private-data","repo_kind":"found_in_text","path":"finetune.py","file_url":"https://github.com/tanyuqian/synthetic-private-data/blob/HEAD/finetune.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1bc4b3de0f3bd617"}},{"code_sha256_prefix":"065e099344411cf0","entry":"get_topic_keywords","repo":"tanyuqian/synthetic-private-data","repo_kind":"found_in_text","path":"data_utils.py","file_url":"https://github.com/tanyuqian/synthetic-private-data/blob/HEAD/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"065e099344411cf0"}},{"code_sha256_prefix":"9de7ddca8f9bbc3c","entry":"loss_fn","repo":"tanyuqian/synthetic-private-data","repo_kind":"found_in_text","path":"finetune.py","file_url":"https://github.com/tanyuqian/synthetic-private-data/blob/HEAD/finetune.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9de7ddca8f9bbc3c"}},{"code_sha256_prefix":"80242254dcc941ad","entry":"pred_fn","repo":"tanyuqian/synthetic-private-data","repo_kind":"found_in_text","path":"evaluate_next_word_prediction.py","file_url":"https://github.com/tanyuqian/synthetic-private-data/blob/HEAD/evaluate_next_word_prediction.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"80242254dcc941ad"}},{"code_sha256_prefix":"4a9cfab866ddf4ff","entry":"zcdp_delta","repo":"actg-arl/ACTG-ARL","repo_kind":"found_in_text","path":"AIM/accounting.py","file_url":"https://github.com/actg-arl/ACTG-ARL/blob/HEAD/AIM/accounting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4a9cfab866ddf4ff"}},{"code_sha256_prefix":"a53fe06a625ac0cc","entry":"zcdp_eps","repo":"actg-arl/ACTG-ARL","repo_kind":"found_in_text","path":"AIM/accounting.py","file_url":"https://github.com/actg-arl/ACTG-ARL/blob/HEAD/AIM/accounting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a53fe06a625ac0cc"}},{"code_sha256_prefix":"5049d40dc24ec5a2","entry":"zcdp_rho","repo":"actg-arl/ACTG-ARL","repo_kind":"found_in_text","path":"AIM/accounting.py","file_url":"https://github.com/actg-arl/ACTG-ARL/blob/HEAD/AIM/accounting.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5049d40dc24ec5a2"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,821 of the 9,623 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9623,"papers_checked":6821},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}