From e95444fa744ab56d35831af90e3f58fe0ac1f6c9 Mon Sep 17 00:00:00 2001 From: Akemi Izuko Date: Fri, 29 Nov 2024 17:16:09 -0700 Subject: [PATCH] Pytorch version of lira --- lira-pytorch/.gitignore | 7 + lira-pytorch/LICENSE | 202 ++++++++++++++++++++ lira-pytorch/README.md | 42 +++++ lira-pytorch/env.yml | 35 ++++ lira-pytorch/figures/fprtpr_resnet18.png | Bin 0 -> 38762 bytes lira-pytorch/figures/fprtpr_wideresnet.png | Bin 0 -> 37919 bytes lira-pytorch/inference.py | 75 ++++++++ lira-pytorch/plot.py | 205 +++++++++++++++++++++ lira-pytorch/run.sh | 21 +++ lira-pytorch/score.py | 70 +++++++ lira-pytorch/train.py | 180 ++++++++++++++++++ lira-pytorch/wide_resnet.py | 75 ++++++++ 12 files changed, 912 insertions(+) create mode 100644 lira-pytorch/.gitignore create mode 100644 lira-pytorch/LICENSE create mode 100644 lira-pytorch/README.md create mode 100644 lira-pytorch/env.yml create mode 100644 lira-pytorch/figures/fprtpr_resnet18.png create mode 100644 lira-pytorch/figures/fprtpr_wideresnet.png create mode 100644 lira-pytorch/inference.py create mode 100644 lira-pytorch/plot.py create mode 100755 lira-pytorch/run.sh create mode 100644 lira-pytorch/score.py create mode 100644 lira-pytorch/train.py create mode 100644 lira-pytorch/wide_resnet.py diff --git a/lira-pytorch/.gitignore b/lira-pytorch/.gitignore new file mode 100644 index 0000000..a06f1b4 --- /dev/null +++ b/lira-pytorch/.gitignore @@ -0,0 +1,7 @@ +__pycache__ +exp +logs +slurm +gpu.sh +*.out + diff --git a/lira-pytorch/LICENSE b/lira-pytorch/LICENSE new file mode 100644 index 0000000..57bc88a --- /dev/null +++ b/lira-pytorch/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/lira-pytorch/README.md b/lira-pytorch/README.md new file mode 100644 index 0000000..ab2d606 --- /dev/null +++ b/lira-pytorch/README.md @@ -0,0 +1,42 @@ +# Likelihood Ration Attack (LiRA) in PyTorch +Implementation of the original [LiRA](https://github.com/tensorflow/privacy/tree/master/research/mi_lira_2021) using PyTorch. To run the code, first create an environment with the `env.yml` file. Then run the following command to train the models and run the LiRA attack: + +``` +./run.sh +``` + +The output will generate and store a log-scale FPR-TPR curve as `./fprtpr.png` with the TPR@0.1%FPR in the output log. + +## Results on CIFAR10 + +Using 16 shadow models trained with `ResNet18 and 2 augmented queries`: + +![roc](figures/fprtpr_resnet18.png) +``` +Attack Ours (online) + AUC 0.6548, Accuracy 0.6015, TPR@0.1%FPR of 0.0068 +Attack Ours (online, fixed variance) + AUC 0.6700, Accuracy 0.6042, TPR@0.1%FPR of 0.0464 +Attack Ours (offline) + AUC 0.5250, Accuracy 0.5353, TPR@0.1%FPR of 0.0041 +Attack Ours (offline, fixed variance) + AUC 0.5270, Accuracy 0.5380, TPR@0.1%FPR of 0.0192 +Attack Global threshold + AUC 0.5948, Accuracy 0.5869, TPR@0.1%FPR of 0.0006 +``` + +Using 16 shadow models trained with `WideResNet28-10 and 2 augmented queries`: + +![roc](figures/fprtpr_wideresnet.png) +``` +Attack Ours (online) + AUC 0.6834, Accuracy 0.6152, TPR@0.1%FPR of 0.0240 +Attack Ours (online, fixed variance) + AUC 0.7017, Accuracy 0.6240, TPR@0.1%FPR of 0.0704 +Attack Ours (offline) + AUC 0.5621, Accuracy 0.5649, TPR@0.1%FPR of 0.0140 +Attack Ours (offline, fixed variance) + AUC 0.5698, Accuracy 0.5628, TPR@0.1%FPR of 0.0370 +Attack Global threshold + AUC 0.6016, Accuracy 0.5977, TPR@0.1%FPR of 0.0013 +``` \ No newline at end of file diff --git a/lira-pytorch/env.yml b/lira-pytorch/env.yml new file mode 100644 index 0000000..faa5b07 --- /dev/null +++ b/lira-pytorch/env.yml @@ -0,0 +1,35 @@ +# Minimal environment for starting a project using conda/mamba: +# conda env create -n ENVNAME --file ENV.yml + +name: template +channels: + - pytorch + - nvidia + - conda-forge + - defaults +dependencies: + - python=3.8.6 + - pip + - pytest + - numpy + - scipy + - scikit-learn + - matplotlib + - pandas + - tqdm + - wandb + - jupyterlab + - jupyter + - ipykernel + - pytorch + - torchvision + - torchaudio + - pytorch-cuda=12.1 + - tqdm + - pytorch-lightning + - lightning-bolts + - torchmetrics + + # Install packages with pip + # - pip: + # - ray[tune] diff --git a/lira-pytorch/figures/fprtpr_resnet18.png b/lira-pytorch/figures/fprtpr_resnet18.png new file mode 100644 index 0000000000000000000000000000000000000000..00a672a961b3989f622e44178cd4603cc1003715 GIT binary patch literal 38762 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 ALjV8( literal 0 HcmV?d00001 diff --git a/lira-pytorch/figures/fprtpr_wideresnet.png b/lira-pytorch/figures/fprtpr_wideresnet.png new file mode 100644 index 0000000000000000000000000000000000000000..2defb08eb718d7aba61d80000582e08c236e97e2 GIT binary patch literal 37919 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