{"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/differentially-private-synthetic-data-via-1","title":"Differentially Private Synthetic Data via Foundation Model APIs 2: Text","arxiv_id":"2403.01749","date":"2024-03-04","proceeding":null,"authors":["Chulin Xie","Zinan Lin","Arturs Backurs","Sivakanth Gopi","Da Yu","Huseyin A Inan","Harsha Nori","Haotian Jiang","Huishuai Zhang","Yin Tat Lee","Bo Li","Sergey Yekhanin"],"abstract":"Text data has become extremely valuable due to the emergence of machine learning algorithms that learn from it. A lot of high-quality text data generated in the real world is private and therefore cannot be shared or used freely due to privacy concerns. Generating synthetic replicas of private text data with a formal privacy guarantee, i.e., differential privacy (DP), offers a promising and scalable solution. However, existing methods necessitate DP finetuning of large language models (LLMs) on private data to generate DP synthetic data. This approach is not viable for proprietary LLMs (e.g., GPT-3.5) and also demands considerable computational resources for open-source LLMs. Lin et al. (2024) recently introduced the Private Evolution (PE) algorithm to generate DP synthetic images with only API access to diffusion models. In this work, we propose an augmented PE algorithm, named Aug-PE, that applies to the complex setting of text. We use API access to an LLM and generate DP synthetic text without any model training. We conduct comprehensive experiments on three benchmark datasets. Our results demonstrate that Aug-PE produces DP synthetic text that yields competitive utility with the SOTA DP finetuning baselines. This underscores the feasibility of relying solely on API access of LLMs to produce high-quality DP synthetic texts, thereby facilitating more accessible routes to privacy-preserving LLM applications. Our code and data are available at https://github.com/AI-secure/aug-pe.","url_abs":"https://arxiv.org/abs/2403.01749v2","url_pdf":"https://arxiv.org/pdf/2403.01749v2.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":"differentially-private-synthetic-data-via-1","repo_url":"https://github.com/ai-secure/aug-pe","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"differentially-private-synthetic-data-via-1","repo_url":"https://github.com/microsoft/dpsda","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"privacy-preserving","task_name":"Privacy Preserving"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-3","method_name":"GPT-3"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.01749","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.01749"}},"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/AI-secure/aug-pe","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/microsoft/dpsda","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ai-secure/aug-pe","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5,"ran_violates":1,"unverified":5},"by_repo_kind":{"official":{"samples":11,"ran":6,"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":"fb7941cb1fafb89d","entry":"calculate_fid","repo":"AI-secure/aug-pe","repo_kind":"official","path":"metric.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/metric.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fb7941cb1fafb89d"}},{"code_sha256_prefix":"2404f2b745222315","entry":"load_embeddings","repo":"AI-secure/aug-pe","repo_kind":"official","path":"dpsda/logging.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/dpsda/logging.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":"2404f2b745222315"}},{"code_sha256_prefix":"55f14b1415459c51","entry":"log_samples","repo":"AI-secure/aug-pe","repo_kind":"official","path":"dpsda/logging.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/dpsda/logging.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":"55f14b1415459c51"}},{"code_sha256_prefix":"db19b32cf584c992","entry":"sample_dataset","repo":"AI-secure/aug-pe","repo_kind":"official","path":"dpsda/data_loader.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/dpsda/data_loader.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":"db19b32cf584c992"}},{"code_sha256_prefix":"7c508037b40522af","entry":"str2bool","repo":"AI-secure/aug-pe","repo_kind":"official","path":"dpsda/arg_utils.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/dpsda/arg_utils.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7c508037b40522af"}},{"code_sha256_prefix":"0b978e0d687562ae","entry":"timeout","repo":"AI-secure/aug-pe","repo_kind":"official","path":"apis/utils.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/apis/utils.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":"0b978e0d687562ae"}},{"code_sha256_prefix":"0a476b02add6c207","entry":"calculate_all_metrics","repo":"AI-secure/aug-pe","repo_kind":"official","path":"metric.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/metric.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":"0a476b02add6c207"}},{"code_sha256_prefix":"c65344585c2872db","entry":"dp_nn_histogram","repo":"ai-secure/aug-pe","repo_kind":"official","path":"dpsda/dp_counter.py","file_url":"https://github.com/ai-secure/aug-pe/blob/HEAD/dpsda/dp_counter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c65344585c2872db"}},{"code_sha256_prefix":"7a4ed6749d9abfcf","entry":"get_subcategories","repo":"AI-secure/aug-pe","repo_kind":"official","path":"apis/utils.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/apis/utils.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":"7a4ed6749d9abfcf"}},{"code_sha256_prefix":"e313afc9b63d7994","entry":"load_data","repo":"AI-secure/aug-pe","repo_kind":"official","path":"dpsda/data_loader.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/dpsda/data_loader.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":"e313afc9b63d7994"}},{"code_sha256_prefix":"393870d61a0df0c0","entry":"load_dataset_with_special","repo":"AI-secure/aug-pe","repo_kind":"official","path":"dpsda/data_loader.py","file_url":"https://github.com/AI-secure/aug-pe/blob/HEAD/dpsda/data_loader.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":"393870d61a0df0c0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}