From ab44177e5b0f795421c8c4d10766443c7f650c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=AA=E9=87=8C=E5=B0=8F=E7=99=BD=E7=81=B0?= Date: Tue, 26 Nov 2024 00:42:09 +0800 Subject: [PATCH] Create embedding_inversion under mindarmor/examples/privacy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新建 img update examples/privacy/embedding_inversion/vec2text/README.md. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/README.md. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/data_helpers.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/README.md. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/README.md. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/aliases.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/collator.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/data_helpers.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/config.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/utils/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/utils/utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/README.md. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/aliases.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/__init__.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/data_helpers.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/aliases.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/analyze_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/model_utils.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/tokenize_data.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/inversion.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/experiments.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/base.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/run_args.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 update examples/privacy/embedding_inversion/vec2text/trainers/corrector.py. Signed-off-by: 浪里小白灰 --- .../embedding_inversion/vec2text/README.md | 79 ++ .../embedding_inversion/vec2text/__init__.py | 13 + .../embedding_inversion/vec2text/aliases.py | 97 +++ .../vec2text/analyze_utils.py | 203 +++++ .../embedding_inversion/vec2text/collator.py | 106 +++ .../vec2text/data_helpers.py | 106 +++ .../vec2text/ds_config.json | 29 + .../vec2text/experiments.py | 631 +++++++++++++++ .../embedding_inversion/vec2text/img/.keep | 0 .../vec2text/img/case_study.png | Bin 0 -> 515668 bytes .../vec2text/img/comparison.png | Bin 0 -> 36931 bytes .../vec2text/img/image.png | Bin 0 -> 93657 bytes .../vec2text/models/__init__.py | 13 + .../vec2text/models/config.py | 38 + .../vec2text/models/corrector_encoder.py | 214 +++++ .../vec2text/models/inversion.py | 322 ++++++++ .../vec2text/models/model_utils.py | 168 ++++ .../vec2text/precompute_train_hypotheses.py | 79 ++ .../vec2text/requirements.txt | 16 + .../embedding_inversion/vec2text/run.py | 37 + .../embedding_inversion/vec2text/run_args.py | 484 +++++++++++ .../vec2text/tokenize_data.py | 372 +++++++++ .../vec2text/trainers/__init__.py | 6 + .../vec2text/trainers/base.py | 489 +++++++++++ .../vec2text/trainers/corrector.py | 761 ++++++++++++++++++ .../vec2text/trainers/inversion.py | 68 ++ .../vec2text/utils/__init__.py | 4 + .../vec2text/utils/utils.py | 108 +++ 28 files changed, 4443 insertions(+) create mode 100644 examples/privacy/embedding_inversion/vec2text/README.md create mode 100644 examples/privacy/embedding_inversion/vec2text/__init__.py create mode 100644 examples/privacy/embedding_inversion/vec2text/aliases.py create mode 100644 examples/privacy/embedding_inversion/vec2text/analyze_utils.py create mode 100644 examples/privacy/embedding_inversion/vec2text/collator.py create mode 100644 examples/privacy/embedding_inversion/vec2text/data_helpers.py create mode 100644 examples/privacy/embedding_inversion/vec2text/ds_config.json create mode 100644 examples/privacy/embedding_inversion/vec2text/experiments.py create mode 100644 examples/privacy/embedding_inversion/vec2text/img/.keep create mode 100644 examples/privacy/embedding_inversion/vec2text/img/case_study.png create mode 100644 examples/privacy/embedding_inversion/vec2text/img/comparison.png create mode 100644 examples/privacy/embedding_inversion/vec2text/img/image.png create mode 100644 examples/privacy/embedding_inversion/vec2text/models/__init__.py create mode 100644 examples/privacy/embedding_inversion/vec2text/models/config.py create mode 100644 examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py create mode 100644 examples/privacy/embedding_inversion/vec2text/models/inversion.py create mode 100644 examples/privacy/embedding_inversion/vec2text/models/model_utils.py create mode 100644 examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py create mode 100644 examples/privacy/embedding_inversion/vec2text/requirements.txt create mode 100644 examples/privacy/embedding_inversion/vec2text/run.py create mode 100644 examples/privacy/embedding_inversion/vec2text/run_args.py create mode 100644 examples/privacy/embedding_inversion/vec2text/tokenize_data.py create mode 100644 examples/privacy/embedding_inversion/vec2text/trainers/__init__.py create mode 100644 examples/privacy/embedding_inversion/vec2text/trainers/base.py create mode 100644 examples/privacy/embedding_inversion/vec2text/trainers/corrector.py create mode 100644 examples/privacy/embedding_inversion/vec2text/trainers/inversion.py create mode 100644 examples/privacy/embedding_inversion/vec2text/utils/__init__.py create mode 100644 examples/privacy/embedding_inversion/vec2text/utils/utils.py diff --git a/examples/privacy/embedding_inversion/vec2text/README.md b/examples/privacy/embedding_inversion/vec2text/README.md new file mode 100644 index 0000000..bf4dcda --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/README.md @@ -0,0 +1,79 @@ +# vec2text embedding inversion + +## 0.项目相关 + +本仓库主要是对嵌入进行反转,具体的技术细节在这篇文章中**[Text Embeddings Reveal (Almost) As Much As Text (EMNLP 2023)](https://arxiv.org/abs/2310.06816)**. + +主要目的是将论文[相关仓库](https://github.com/jxmorris12/vec2text)的代码迁移到华为mindspore的SIG社区mindarmor上,增强安全性的技术工具。 + +论文主要的内容是: + +**控制生成方法**:作者将其方法描述为一个控制生成问题,目标是生成与给定嵌入尽可能匹配的文本。这涉及生成文本,使得重新嵌入后,它保持接近原始嵌入在潜在空间中的位置。**目的是**构建一个系统,该系统可以采用真实嵌入、假设文本序列和嵌入空间中的假设位置,并预测真实文本序列。 + +**迭代细化**:采用**迭代过程**,其中生成一个初始假设,然后通过一系列步骤进行细化。每一个细化步骤都涉及生成一个新的假设,根据当前假设的嵌入与目标嵌入之间的差异,更好地与目标嵌入对齐。 + +**模型架构**:模型使用为嵌入反演任务适配的基于 Transformer 的encoder-decoder架构。它包含了比较嵌入和调整生成文本的机制。 + +![输入图片说明](img/image.png) +## 1.训练指令 + +第一阶段的目前的环境配置: + +> GPU环境 +> +> python3.9 +> +> mindspore2.2.14+ +> +> mindnlp0.4.0 + +这个仓库中的大部分代码用于训练 inversion models,训练过程大致分为**三个步骤:** + +1. 训练一个“零步”模型,用于从 embeddings 生成文本。 +2. 使用零步模型生成“假设”,作为纠正模型的训练数据。 +3. 训练一个纠正模型,条件是(真实的 embedding,假设,假设 embedding)三元组,以生成纠正后的文本。 + +也就是说代码的训练包括两个部分,第一部分是inversion阶段(step1),第二个部分是corrector阶段(step2,3)。当前仓库支持第一阶段inversion的训练代码的迁移,并正在努力进行第二阶段的迁移。 + +**其中第一阶段的迁移代码的基本的指令如下:** + +> python3 run.py --per_device_train_batch_size 128 --per_device_eval_batch_size 128 --max_seq_length 32 --model_name_or_path **google-t5/t5-base** --dataset_name **nq** --embedder_model_name **gtr_base** --num_repeat_tokens 16 --embedder_no_grad True --num_train_epochs **20** --max_eval_samples **16** --eval_steps 10 --warmup_steps 300 --bf16=1 --use_frozen_embeddings_as_input False --experiment inversion --learning_rate 0.001 --output_dir ./saves/gtr-1 --save_steps 10000000000 --use_less_data **2560** + +接下来分别解释一下以下参数,具体的参数在代码中也有解释,这里主要强调以下**几个参数:** + +google-t5/t5-base是用来inversion的模型,gtr_base是嵌入的模型,nq是一个50多万条文本数据的数据集。 + +use_less_data是使用的其中的训练集的数量,max_eval_samples这是验证集的数量(不要设置很多,因为要评估以及逆转回text,会有点儿慢) + +## 2.一些踩坑点 + +因为本项目原来高度依赖transformer库(huggingface中),但是因为transformer库对mindspore没有支持。 + +所以迁移的技术路线选择的是mindnlp社区的对transformer复现的相关配套API,然而mindnlp社区的transformer的复现的支持不是非常完善,有一个比较严重的问题是:GPU跑相关代码时会发生训练单个step的时间线性增加,这影响了整体的训练效率,对于此bug已提issue,社区负责人也在积极解决中,因此本实验在有限的训练轮次中对比实验结果。 + +当然,一个解决方案是使用Ascend进行训练,因为Ascend卡对于mindspore和mindnlp更加配套,此bug可能不复存在。 + +## 3.实验结果 + +### 1.对比试验 + +分别对nq数据集的25600条数据跑了10个epoch,实验结果如下: + +![输入图片说明](img/comparison.png) + +* 分别做了三组实验,变量是mindspore和pytorch,gtr-base和paraphrase-distilroberta嵌入模型。 + +* 可以看出在同等训练数据和轮次的情况下取得相当的性能,初步证明代码迁移成功。 + +* 后续还需要在申请成功的Ascend资源下进一步验证实验的精度准确性 + +### 2.案例分析 + +![输入图片说明](img/case_study.png) + +* 在mindspore上的训练效果,可以能精确的预测出love,propose,municipality,village等单词,直观上验证我们的迁移结果不错。 + +## 4.后续的工作完善 + +* 在Ascend上解决inner_training_loop的过程中,step线性变慢的问题 +* 继续corrector阶段的复现,增强嵌入反转的效果 \ No newline at end of file diff --git a/examples/privacy/embedding_inversion/vec2text/__init__.py b/examples/privacy/embedding_inversion/vec2text/__init__.py new file mode 100644 index 0000000..6930d8a --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/__init__.py @@ -0,0 +1,13 @@ +""" +This module initializes the vec2text package, providing access to various components +for embedding inversion tasks, including data collation, model training, and hypothesis generation. +""" +# pylint: disable=W0406 +from . import ( # noqa: F401 + aliases, + collator, + metrics, + models, + trainers, +) +from .trainers import Corrector # noqa: F401 diff --git a/examples/privacy/embedding_inversion/vec2text/aliases.py b/examples/privacy/embedding_inversion/vec2text/aliases.py new file mode 100644 index 0000000..f884797 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/aliases.py @@ -0,0 +1,97 @@ +''' +get zero step model arguments setup for the second phrase of embedding inversion(corrector) +''' +import analyze_utils + +# TODO always load args from disk, delete this dict. +ARGS_DICT = { + "gtr_nq__msl128_beta": ( + "--dataset_name nq " + "--per_device_train_batch_size 128 " + "--per_device_eval_batch_size 128 " + "--max_seq_length 128 " + "--model_name_or_path t5-base " + "--embedder_model_name gtr_base " + "--num_repeat_tokens 16 " + "--embedder_no_grad True " + "--exp_group_name mar17-baselines " + "--learning_rate 0.0003 " + "--freeze_strategy none " + "--embedder_fake_with_zeros False " + "--use_frozen_embeddings_as_input False " + "--num_train_epochs 24 " + "--max_eval_samples 500 " + "--eval_steps 25000 " + "--warmup_steps 100000 " + "--bf16=1 " + "--use_wandb=0" + ), + "paraphrase_nq__msl32__10epoch": ( + "--per_device_train_batch_size 128 " + "--per_device_eval_batch_size 128 " + "--max_seq_length 32 " + "--model_name_or_path google-t5/t5-base " + "--dataset_name nq " + "--embedder_model_name gtr_base " + "--num_repeat_tokens 16 " + "--embedder_no_grad True " + "--num_train_epochs 1 " + "--max_eval_samples 16 " + "--eval_steps 400 " + "--warmup_steps 300 " + "--bf16 1 " + "--use_frozen_embeddings_as_input False " + "--experiment inversion " + "--learning_rate 0.001 " + "--output_dir ./saves/gtr-XXXxxx " + "--save_steps 10000000000 " + "--use_less_data 2560" + ) +} + + +# Dictionary mapping model names +CHECKPOINT_FOLDERS_DICT = { + ############################# MSMARCO ############################## + "paraphrase_nq__msl32__10epoch": "/home/luoyf/vec2text/vec2text/saves/gtr-X", +} + + +def load_experiment_and_trainer_from_alias(alias: str, max_seq_length: int = None, use_less_data: int = None): + """ + Load the experimental setup and corresponding trainer based on a given alias. + + Parameters: + alias (str): The identifier used to select the experiment setup. + max_seq_length (int, optional): The maximum sequence length for the model. Defaults to None. + use_less_data (int, optional): A flag to indicate if a reduced dataset should be used. Defaults to None. + + Returns: + type: Description of the return value (if applicable) + """ + try: + args_str = ARGS_DICT.get(alias) + checkpoint_folder = CHECKPOINT_FOLDERS_DICT[alias] + print("-----------args_str的值是---------------") + print(args_str) + + except KeyError: + print(f"{alias} not found in aliases.py, using as checkpoint folder") + args_str = None + checkpoint_folder = alias + print(f"loading alias {alias} from {checkpoint_folder}...") + experiment, trainer = analyze_utils.load_experiment_and_trainer( + checkpoint_folder, + args_str, + do_eval=False, + max_seq_length=max_seq_length, + use_less_data=use_less_data, + ) + return experiment, trainer + + +def load_model_from_alias(alias: str, max_seq_length: int = None): + _, trainer = load_experiment_and_trainer_from_alias( + alias, max_seq_length=max_seq_length + ) + return trainer.model diff --git a/examples/privacy/embedding_inversion/vec2text/analyze_utils.py b/examples/privacy/embedding_inversion/vec2text/analyze_utils.py new file mode 100644 index 0000000..1b6a196 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/analyze_utils.py @@ -0,0 +1,203 @@ +''' +load experiment and trainer +''' +import argparse +import os +import glob +import json +import shlex +from typing import Optional + + +import pandas as pd +from mindnlp.engine import get_last_checkpoint +import mindnlp.utils.logging as logging +import mindspore as ms + +import experiments +from models.config import InversionConfig +from run_args import DataArguments, ModelArguments, TrainingArguments, \ + parse_args_into_dataclasses + + +# from mindnlp.accelerate import PartialState +# import error, can't find this package. + +# no need for data transformation across multiple device +# def set_device_context(): +# try: +# # 尝试设置为 GPU +# context.set_context(device_target="GPU") +# print("Using GPU") +# except: +# try: +# # 如果 GPU 不可用,尝试设置为 Ascend +# context.set_context(device_target="Ascend") +# print("Using Ascend") +# except: +# # 如果 Ascend 也不可用,使用 CPU +# context.set_context(device_target="CPU") +# print("Using CPU") +# set_device_context() + +# device = torch.device( +# "cuda" +# if torch.cuda.is_available() +# else "mps" +# if torch.backends.mps.is_available() +# else "cpu" +# ) + +logging.set_verbosity_error() + + +#corrector 的第二个阶段的两次加载都调用这个了 +def load_experiment_and_trainer( + checkpoint_folder: str, + args_str: Optional[str] = None, + checkpoint: Optional[str] = None, + max_seq_length: Optional[int] = None, + use_less_data: Optional[int] = None, +): + ''' + (can't import due to circular import) -> trainers.InversionTrainer: + import previous aliases so that .bin that were saved prior to the + existence of the vec2text module will still work. + ''' + + if checkpoint is None: + checkpoint = get_last_checkpoint(checkpoint_folder) # a checkpoint + if checkpoint is None: + # This happens in a weird case, where no model is saved to saves/xxx/checkpoint-*/pytorch_model.bin + # because checkpointing never happened (likely a very short training run) but there is still a file + # available in saves/xxx/pytorch_model.bin. + checkpoint = checkpoint_folder + print("Loading model from checkpoint:", checkpoint) + + if args_str is not None: + #先后有两次args,第一次是command line中的args,还有一次是调用的写入alias中的明文args + + args_list = shlex.split(args_str) # not namespace format which can be tackled with identical operation like the first call + + parser = argparse.ArgumentParser() + for i in range(0, len(args_list) - 1, 2): + arg_name = args_list[i].lstrip('-') + arg_value = args_list[i + 1] + + try: + arg_value = int(arg_value) + except ValueError: + if arg_value == 'True': + arg_value = True + elif arg_value == 'False': + arg_value = False + parser.add_argument(f'--{arg_name}', default=arg_value, type=type(arg_value)) + + args = parser.parse_args(args_list) + + # traing_args may not be a normal dataclass, and then should be adapted to the new one. + model_args, data_args, training_args = parse_args_into_dataclasses(args) + else: + try: + data_args = ms.load_checkpoint(os.path.join(checkpoint, os.pardir, "data_args.bin")) + except FileNotFoundError: + data_args = ms.load_checkpoint(os.path.join(checkpoint, "data_args.bin")) + try: + model_args = ms.load_checkpoint( + os.path.join(checkpoint, os.pardir, "model_args.bin") + ) + except FileNotFoundError: + model_args = ms.load_checkpoint(os.path.join(checkpoint, "model_args.bin")) + try: + training_args = ms.load_checkpoint( + os.path.join(checkpoint, os.pardir, "training_args.bin") + ) + except FileNotFoundError: + training_args = ms.load_checkpoint(os.path.join(checkpoint, "training_args.bin")) + + training_args.dataloader_num_workers = 0 # no multiprocessing :) + training_args.use_wandb = False + training_args.report_to = [] + training_args.mock_embedder = False + # training_args.no_cuda = not (context.get_context("device_target")=="GPU") + + if max_seq_length is not None: + print( + f"Overwriting max sequence length from {model_args.max_seq_length} to {max_seq_length}" + ) + model_args.max_seq_length = max_seq_length + + if use_less_data is not None: + print( + f"Overwriting use_less_data from {data_args.use_less_data} to {use_less_data}" + ) + data_args.use_less_data = use_less_data + + experiment = experiments.experiment_from_args(model_args, data_args, training_args) + trainer = experiment.load_trainer() + # pylint: disable=W0212 + trainer.model._keys_to_ignore_on_save = [] + try: + # pylint: disable=W0212 + trainer._load_from_checkpoint(checkpoint) + except RuntimeError: + # backwards compatibility from adding/removing layernorm + trainer.model.use_ln = False + trainer.model.layernorm = None + # try again without trying to load layernorm + # pylint: disable=W0212 + trainer._load_from_checkpoint(checkpoint) + return experiment, trainer + + +def load_trainer( + *args, **kwargs +): # (can't import due to circluar import) -> trainers.Inversion + _, trainer = load_experiment_and_trainer(*args, **kwargs) + return trainer + + +def load_results_from_folder(name: str) -> pd.DataFrame: + filenames = glob.glob(os.path.join(name, "*.json")) + data = [] + for f in filenames: + d = json.load(open(f, "r")) + if "_eval_args" in d: + # unnest args for evaluation + d.update(d.pop("_eval_args")) + data.append(d) + return pd.DataFrame(data) + + +def args_from_config(args_cls, config): + args = args_cls() + for key, value in vars(config).items(): + if key in dir(args): + setattr(args, key, value) + return args + + +def load_experiment_and_trainer_from_pretrained(name: str, use_less_data: int = 1000): + '''load experiment and trainer from pretrained model''' + + config = InversionConfig.from_pretrained(name) + model_args = args_from_config(ModelArguments, config) + data_args = args_from_config(DataArguments, config) + training_args = args_from_config(TrainingArguments, config) + + data_args.use_less_data = use_less_data + training_args.bf16 = 0 # no bf16 in case no support from GPU + training_args.local_rank = -1 # Don't load in DDP + + training_args.deepspeed_plugin = None # For backwards compatibility + training_args.use_wandb = False + training_args.report_to = [] + training_args.mock_embedder = False + training_args.output_dir = "saves/" + name.replace("/", "__") + + + experiment = experiments.experiment_from_args(model_args, data_args, training_args) + trainer = experiment.load_trainer() + trainer.model = trainer.model.__class__.from_pretrained(name) + # trainer.model.to(training_args.device) + return experiment, trainer diff --git a/examples/privacy/embedding_inversion/vec2text/collator.py b/examples/privacy/embedding_inversion/vec2text/collator.py new file mode 100644 index 0000000..303b18f --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/collator.py @@ -0,0 +1,106 @@ +''' +data collator for correction +''' + +from dataclasses import dataclass +from typing import Optional, Union + +import numpy as np +from mindnlp.transformers import PreTrainedTokenizer + + +@dataclass +class DataCollatorForCorrection: + """ + Data collator that will dynamically pad the inputs received, as well as the labels, and hypotheses. + + Based off of hf DataCollatorForSeq2Seq: + github.com/huggingface/transformers/blob/main/src/transformers/data/data_collator.py#L517 + """ + + tokenizer: PreTrainedTokenizer + label_pad_token_id: int = -100 + padding: Union[bool, str] = True + max_length: Optional[int] = None + pad_to_multiple_of: Optional[int] = None + return_tensors: str = "ms" + + def __call__(self, features, return_tensors=None): + if return_tensors is None: + return_tensors = self.return_tensors + labels = ( + [feature["labels"] for feature in features] + if "labels" in features[0].keys() + else None + ) + # We have to pad the labels before calling `tokenizer.pad` as this method won't pad them and needs them of the + # same length to return tensors. + max_label_length = max(len(l) for l in labels) + if self.pad_to_multiple_of is not None: + max_label_length = ( + (max_label_length + self.pad_to_multiple_of - 1) + // self.pad_to_multiple_of + * self.pad_to_multiple_of + ) + + padding_side = self.tokenizer.padding_side + + if "hypothesis_input_ids" in features[0].keys(): + max_hypothesis_length = max( + map(lambda d: len(d["hypothesis_input_ids"]), features) + ) + else: + max_hypothesis_length = 0 + hypothesis_features = [] + regular_features = [] + for feature in features: + ### pad labels + remainder = [self.label_pad_token_id] * ( + max_label_length - len(feature["labels"]) + ) + if isinstance(feature["labels"], list): + feature["labels"] = ( + feature["labels"] + remainder + if padding_side == "right" + else remainder + feature["labels"] + ) + elif padding_side == "right": + feature["labels"] = np.concatenate( + [feature["labels"], remainder] + ).astype(np.int64) + else: + feature["labels"] = np.concatenate( + [remainder, feature["labels"]] + ).astype(np.int64) + #### add to lists + regular_features.append( + {k: v for k, v in feature.items() if not k.startswith("hypothesis_")} + ) + + hypothesis_features.append( + { + k.replace("hypothesis_", ""): v + for k, v in feature.items() + if k.startswith("hypothesis_") + } + ) + + new_features = self.tokenizer.pad( + regular_features, + padding=self.padding, + max_length=self.max_length, + pad_to_multiple_of=self.pad_to_multiple_of, + ) + + if max_hypothesis_length > 0: + hypothesis_features = self.tokenizer.pad( + hypothesis_features, + padding=self.padding, + max_length=self.max_length, + pad_to_multiple_of=self.pad_to_multiple_of, + ) + hypothesis_features = { + f"hypothesis_{k}": v for k, v in hypothesis_features.items() + } + return {**new_features, **hypothesis_features} + return new_features diff --git a/examples/privacy/embedding_inversion/vec2text/data_helpers.py b/examples/privacy/embedding_inversion/vec2text/data_helpers.py new file mode 100644 index 0000000..a74165d --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/data_helpers.py @@ -0,0 +1,106 @@ +''' +download dataset +''' +import os +from typing import Dict, List +import datasets +from mindnlp.dataset import load_dataset +from run_args import DataArguments + + +def retain_dataset_columns(d, allowed_columns: List[str]): + column_names_to_remove = [c for c in d.features if c not in allowed_columns] + return d.remove_columns(column_names_to_remove) + + +def load_nq_dpr_corpus()-> datasets.Dataset: + return load_dataset("jxm/nq_corpus_dpr") + + +def load_msmarco_corpus(): + # has columns ["title", "text"]. only one split ("train") + dataset_dict = load_dataset("Tevatron/msmarco-passage-corpus") + return dataset_dict["train"] + + +def create_omi_ex(ex: Dict[str, str]) -> Dict[str, str]: + ex["text"] = ex["user"] + return ex + + +def create_ompi_ex(ex: Dict[str, str]) -> Dict[str, str]: + ex["user"] = ex["user"].strip() + ex["system"] = ex["system"].strip() + ex["text"] = ex["system"] + "\n\n" + ex["user"] + ex["prefix"] = ex["system"] + "\n\n" + ex["suffix"] = ex["user"] + return ex + + +def get_world_size() -> int: + try: + return os.environ.get("WORLD_SIZE", 1) + except (RuntimeError, ValueError): + return 1 + + + +def dataset_from_args(data_args: DataArguments) -> datasets.DatasetDict: + """Loads a dataset from data_args create in `run_args`.""" + if data_args.dataset_name == "nq": + raw_datasets = load_nq_dpr_corpus() + raw_datasets["validation"] = raw_datasets["dev"] + elif data_args.dataset_name == "msmarco": + raw_datasets = load_msmarco_corpus() + raw_datasets = raw_datasets.train_test_split(test_size=0.01) + raw_datasets["validation"] = raw_datasets["test"] + else: + raise ValueError(f"unsupported dataset {data_args.dataset_name}") + return raw_datasets + + +def load_ag_news_test(): + return load_dataset("ag_news")["test"] + + +def load_xsum_val(col: str): + d = load_dataset("xsum")["validation"] + d = d.rename_column(col, "text") + return d + + +def load_wikibio_val(): + d = load_dataset("wiki_bio")["val"] + d = d.rename_column("target_text", "text") + return d + + +def load_arxiv_val(): + d = load_dataset("ccdv/arxiv-summarization")["validation"] + d = d.rename_column("abstract", "text") + return d + +def load_anthropic_toxic_prompts(): + d = load_dataset("wentingzhao/anthropic-hh-first-prompt")["train"] + d = d.rename_column("user", "text") + return d + +def load_python_code_instructions_18k_alpaca(): + d = load_dataset("iamtarun/python_code_instructions_18k_alpaca")["train"] + d = d.rename_column("instruction", "text") + return d + +def load_standard_val_datasets(): + """Loads a pre-defined set of standard val datasets.""" + d = { + "ag_news": load_ag_news_test(), + "anthropic_toxic_prompts": load_anthropic_toxic_prompts(), + "arxiv": load_arxiv_val(), + "python_code_alpaca": load_python_code_instructions_18k_alpaca(), + # "xsum_doc": load_xsum_val("document"), + # "xsum_summ": load_xsum_val("summary"), + "wiki_bio": load_wikibio_val(), + } + d = {k: retain_dataset_columns(v, ["text"]) for k, v in d.items()} + + return datasets.DatasetDict(d) diff --git a/examples/privacy/embedding_inversion/vec2text/ds_config.json b/examples/privacy/embedding_inversion/vec2text/ds_config.json new file mode 100644 index 0000000..36575ec --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/ds_config.json @@ -0,0 +1,29 @@ +{ + "flops_profiler": { + "enabled": false, + "profile_step": 1, + "module_depth": -1, + "top_modules": 1, + "detailed": true, + "output_file": null + }, + "train_batch_size": "auto", + "gradient_accumulation_steps": "auto", + "train_micro_batch_size_per_gpu": "auto", + "bf16": { + "enabled": "auto" + }, + "gradient_clipping": 1.0, + "zero_optimization": { + "stage": 2, + "offload_param": { + "device": "none" + }, + "offload_optimizer": { + "device": "none" + }, + "allgather_partitions": true, + "allgather_bucket_size": 5e8, + "contiguous_gradients": true + } + } \ No newline at end of file diff --git a/examples/privacy/embedding_inversion/vec2text/experiments.py b/examples/privacy/embedding_inversion/vec2text/experiments.py new file mode 100644 index 0000000..efe3a89 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/experiments.py @@ -0,0 +1,631 @@ +''' +preprocess data and set experimental procedure +''' +import abc +import functools +import hashlib +import json +import os +import resource +from typing import Dict, Optional +import logging + +import numpy as np +import mindspore as ms +from mindspore.dataset import GeneratorDataset +import mindnlp.engine +from mindnlp.transformers.modeling_utils import PreTrainedModel +from mindnlp.transformers import AutoTokenizer +from mindnlp.transformers.tokenization_utils_fast import PreTrainedTokenizer +import datasets # needed by mindnlp + +import aliases +import analyze_utils +from data_helpers import dataset_from_args +from models.config import InversionConfig +from models import CorrectorEncoderModel, InversionModel +from run_args import DataArguments, ModelArguments, TrainingArguments +from tokenize_data import DataCollatorForSeq2Seq, embed_dataset_batch, tokenize_function_, tokenize_function +from utils import dataset_map_single_worker, get_num_proc + + + +# Allow W&B to start slowly. +os.environ["WANDB__SERVICE_WAIT"] = "300" +os.environ["_WANDB_STARTUP_DEBUG"] = "true" +os.environ["TOKENIZERS_PARALLELISM"] = "False" + + +# big issues! occasionally found no access to GPU with ms + + +device = ms.get_context("device_target") +logger = logging.getLogger(__name__) + +# We maintain our own cache because huggingface datasets caching +# doesn't always work properly. +DATASET_CACHE_PATH = os.environ.get( + "VEC2TEXT_CACHE", os.path.expanduser("~/.cache/inversion") +) + + +def md5_hash_kwargs(**kwargs) -> str: + # We ignore special hf args that start with _ like '__cached__setup_devices'. + safe_kwargs = {k: str(v) for k, v in kwargs.items() if not k.startswith("_")} + s = json.dumps(safe_kwargs, sort_keys=True) + return hashlib.md5(s.encode()).hexdigest() + + +class Experiment(abc.ABC): + ''' + experiment base class + ''' + def __init__(self, model_args: ModelArguments, data_args: DataArguments, training_args: TrainingArguments): + # Interactions between args handled here: + training_args.metric_for_best_model = f"{data_args.dataset_name}_loss" + + logger.info( + "Save checkpoints according to metric_for_best_model %s:", + training_args.metric_for_best_model, + ) + + # Save all args. + self.model_args = model_args + self.data_args = data_args + self.training_args = training_args + # Set random seed, add hash to output path. + # transformers.set_seed(training_args.seed) + mindnlp.engine.set_seed(training_args.seed) + + + if training_args.output_dir is None: + training_args.output_dir = os.path.join("saves", self.kwargs_hash) + print(f"Experiment output_dir = {training_args.output_dir}") + # Set up output_dir and wandb. + self._consider_init_wandb() + + @property + def config(self) -> InversionConfig: + return InversionConfig( + **vars(self.data_args), + **vars(self.model_args), + **vars(self.training_args), + ) + + @property + def is_llama_chat(self) -> bool: + return self.model_args.embedder_model_name in [ + "meta-llama/Llama-2-7b-chat-hf", + "meta-llama/Llama-2-13b-chat-hf", + "meta-llama/Llama-2-70b-chat-hf", + ] + + @property + def dataset_kwargs(self) -> Dict[str, str]: + return { + "model_name": self.model_args.model_name_or_path, + "embedder_name": self.model_args.embedder_model_name, + "max_seq_length": str(self.model_args.max_seq_length), + "use_less_data": str(self.data_args.use_less_data), + "embedder_model_api": str(self.model_args.embedder_model_api), + } + + def run(self): + print("----------run start?-------------") + if self.training_args.do_eval: + self.evaluate() + else: + self.train() + + def train(self) -> Dict: + '''training''' + training_args = self.training_args + logger.info("*** Training ***") + training_argsdevice = ms.get_context("device_target") + # Log on each process a small summary of training. + logger.warning( + f"Process rank: {training_args.local_rank}, device: {training_argsdevice}, " + + f"fp16 training: {training_args.fp16}, bf16 training: {training_args.bf16}" + ) + checkpoint = self._get_checkpoint() + + logging.info("Experiment::train() loaded checkpoint %s", checkpoint) + trainer = self.load_trainer() + print(f"train() called – resume-from_checkpoint = {checkpoint}") + train_result = trainer.train(resume_from_checkpoint=checkpoint) + # trainer.save_model() # Saves the tokenizer too for easy upload + metrics = train_result.metrics + print(metrics) + + trainer.log_metrics("train", metrics) + # trainer.save_metrics("train", metrics) + trainer.save_state() + print("success!!!!!great man!!!") + return metrics + + def evaluate(self) -> Dict: + '''Evaluation''' + logger.info("*** Evaluate ***") + trainer = self.load_trainer() + num_eval_samples = len(trainer.eval_dataset) + metrics = trainer.evaluate() + max_eval_samples = ( + self.data_args.max_eval_samples + if self.data_args.max_eval_samples is not None + else num_eval_samples + ) + metrics["eval_samples"] = min(max_eval_samples, num_eval_samples) + trainer.log_metrics("eval", metrics) + trainer.save_metrics("eval", metrics) + return metrics + + def _get_checkpoint(self) -> Optional[str]: + '''get checkpoint to implement the correction''' + training_args = self.training_args + last_checkpoint = None + if (os.path.isdir(training_args.output_dir) and not training_args.overwrite_output_dir): + last_checkpoint = mindnlp.engine.get_last_checkpoint( + training_args.output_dir + ) + if (last_checkpoint is None and os.listdir(training_args.output_dir)): + raise ValueError( + f"Output directory ({training_args.output_dir}) already exists and is not empty. " + "Use --overwrite_output_dir to overcome." + ) + if (last_checkpoint is not None and training_args.resume_from_checkpoint is None): + logger.info( + "Checkpoint detected, resuming training at %s. To avoid this behavior, change " + "the `--output_dir` or add `--overwrite_output_dir` to train from scratch.", + last_checkpoint + ) + checkpoint = None + if training_args.resume_from_checkpoint is not None: + checkpoint = training_args.resume_from_checkpoint + elif last_checkpoint is not None: + checkpoint = last_checkpoint + + if checkpoint: + logger.info("Loading from checkpoint %s", checkpoint) + else: + logger.info("No checkpoint found, training from scratch") + + print(checkpoint) + print(last_checkpoint) + return checkpoint + + @property + def kwargs_hash(self) -> str: + all_args = { + **vars(self.model_args), + **vars(self.data_args), + **vars(self.training_args), + } + all_args.pop("local_rank") + # print("all_args:", all_args) + return md5_hash_kwargs(**all_args) + + @property + def _world_size(self) -> int: + #not found in mindspore similar with torch.distributed.get_world_size() + #TODO: add some distribution function to it + try: + return os.environ.get("WORLD_SIZE", 1) + except (RuntimeError, ValueError): + return 1 + + @property + def _is_main_worker(self) -> bool: + return (self.training_args.local_rank <= 0) and ( + int(os.environ.get("LOCAL_RANK", 0)) <= 0 + ) + + @property + @abc.abstractmethod + def _wandb_project_name(self) -> str: + raise NotImplementedError() + + @property + def _wandb_exp_name(self) -> str: + name_args = [ + self.training_args.exp_group_name, + self.training_args.exp_name, + self.model_args.model_name_or_path, + self.model_args.embedder_model_name, + ] + name_args = [n for n in name_args if ((n is not None) and len(n))] + return "__".join(name_args) + + def _consider_init_wandb(self) -> None: + '''whether to init wandb''' + if self.training_args.use_wandb and self._is_main_worker: + import wandb + + wandb.init( + project=self._wandb_project_name, + name=self._wandb_exp_name, + id=self.kwargs_hash, + resume=True, + ) + training_args = vars(self.training_args) + # deepspeed kwargs are not json serializable + training_args = { + k: v for k, v in training_args.items() if "deepspeed" not in k + } + wandb.config.update( + { + **vars(self.model_args), + **vars(self.data_args), + **training_args, + }, + allow_val_change=True, + ) + # Long-running experiments have been killed because wandb + # runs out of file descriptors to write summary files + # to. Very silly error, but seems unfixed: + # https://github.com/wandb/wandb/issues/2825 + # + # Anyway, this line of code should (hopefully) set the + # limit to infinity so this can't happen. + resource.setrlimit( + resource.RLIMIT_CORE, (resource.RLIM_INFINITY, resource.RLIM_INFINITY) + ) + else: + # Disable W&B + pass + # os.environ["WANDB_MODE"] = "disabled" + # os.environ["WANDB_DISABLED"] = "true" + + @abc.abstractmethod + def load_trainer(self) -> mindnlp.engine.Trainer: + raise NotImplementedError() + + @abc.abstractmethod + def load_model(self) -> PreTrainedModel: + raise NotImplementedError() + + def load_tokenizer(self) -> PreTrainedTokenizer: + '''load tokenizer''' + tokenizer = AutoTokenizer.from_pretrained( + self.model_args.model_name_or_path, + padding="max_length", + truncation="max_length", + max_length=self.model_args.max_seq_length, + ) + + if tokenizer.pad_token is None: + tokenizer.pad_token = tokenizer.eos_token + + # Disable super annoying warning: + # https://github.com/huggingface/transformers/issues/22638 + tokenizer.deprecation_warnings["Asking-to-pad-a-fast-tokenizer"] = True + return tokenizer + + #lack API(transformers.DataCollatorForSeq2Seq) in mindnlp and achieve it from scratch + def get_collator(self, tokenizer: PreTrainedTokenizer) -> DataCollatorForSeq2Seq: + return DataCollatorForSeq2Seq( + tokenizer, + model=None, + label_pad_token_id=-100, + padding="max_length", + max_length=self.model_args.max_seq_length, + pad_to_multiple_of=8 if self.training_args.fp16 else None, + ) + + def _load_train_dataset_uncached(self, tokenizer: AutoTokenizer, embedder_tokenizer: AutoTokenizer): + ''' + load train dataset uncached + ''' + data_args = self.data_args + # Load datasets + + logger.info("Loading dataset '%s'...", self.data_args.dataset_name) + raw_datasets = dataset_from_args(self.data_args) + + + # Remove extra features except for 'frozen_embeddings' which could be embeddings + # saved to disk. + # column_names = list(raw_datasets["train"].features) + + column_names = raw_datasets["train"].column_names + + # pylint: disable=C0103 + ALLOWED_COLUMN_NAMES = {"frozen_embeddings"} + column_names = [c for c in column_names if c not in ALLOWED_COLUMN_NAMES] + if data_args.use_less_data and (data_args.use_less_data > 0): + new_length = min(len(raw_datasets["train"]), data_args.use_less_data) + train_datasets = raw_datasets["train"].take(new_length) + new_length_ = min(len(raw_datasets["validation"]), data_args.max_eval_samples) + eval_datasets = raw_datasets["validation"].take(new_length_) + + + + print( + ">> using fast tokenizers:", tokenizer.is_fast, embedder_tokenizer.is_fast + ) + + + train_datasets = train_datasets.map(tokenize_function(tokenizer, embedder_tokenizer, + self.model_args.max_seq_length, padding=False), + num_parallel_workers=8) + + #no more proc, some mistakes + eval_datasets = eval_datasets.map(tokenize_function_(tokenizer, embedder_tokenizer, + self.model_args.max_seq_length, padding=False),) + + #index_ds = ds.NumpySlicesDataset(np.array(range(train_datasets.get_dataset_size())),\ + # column_names=['idx']) + + #------------------------------val process-------------------------------- + max_eval_samples = min( + self.data_args.use_less_data, self.data_args.max_eval_samples + ) + eval_datasets = eval_datasets.take(max_eval_samples) + #index_ds_ = ds.NumpySlicesDataset(list(range(max_eval_samples)), column_names=['idx']) + return train_datasets, eval_datasets + + def _prepare_val_datasets_dict(self, model: PreTrainedModel, tokenizer: AutoTokenizer, + embedder_tokenizer: AutoTokenizer, val_datasets_dict: datasets.DatasetDict): + '''prepare_val_datasets_dict''' + for name, dataset in val_datasets_dict.items(): + max_eval_samples = min(len(dataset), self.data_args.max_eval_samples) + val_datasets_dict[name] = val_datasets_dict[name].select( + range(max_eval_samples) + ) + val_datasets_dict[name] = val_datasets_dict[name].add_column( + "idx", range(len(val_datasets_dict[name])) + ) + val_datasets_dict[name].set_format("ms") + + tokenize_fn = tokenize_function + + for key in val_datasets_dict: + val_datasets_dict[key] = dataset_map_single_worker( + dataset=val_datasets_dict[key], + map_fn=tokenize_fn( + tokenizer=tokenizer, + embedder_tokenizer=embedder_tokenizer, + text_column_name="text", + max_seq_length=self.model_args.max_seq_length, + padding=False, + ), + remove_columns=["text"], + batched=True, + batch_size=1024, + num_proc=get_num_proc(), + desc="Running tokenizer on dataset", + ) + + # filter out empty examples (these exist for xsum documents). + val_datasets_dict = val_datasets_dict.filter(lambda ex: ex["length"] > 1) + + if self.model_args.use_frozen_embeddings_as_input: + # assert torch.cuda.is_available() + # model = model.to(device) + + new_tokenized_datasets = {} + for key, d in val_datasets_dict.items(): + new_tokenized_datasets[key] = dataset_map_single_worker( + dataset=d, + map_fn=functools.partial(embed_dataset_batch, model), + batched=True, + batch_size=self.training_args.per_device_train_batch_size, + # pylint: disable=W0212 + new_fingerprint=( + d._fingerprint + md5_hash_kwargs(**self.dataset_kwargs) + "" + ), + num_proc=1, + ) + val_datasets_dict = datasets.DatasetDict(new_tokenized_datasets) + return val_datasets_dict + + def load_train_and_val_datasets(self, tokenizer: AutoTokenizer, + embedder_tokenizer: AutoTokenizer): + '''load_train_and_val_datasets''' + dataset_kwargs: Dict[str, str] = self.dataset_kwargs + + # Only set this if it's true, for backwards-compatibility with + # when we forgot to cache using this argument. + if self.model_args.use_frozen_embeddings_as_input: + dataset_kwargs["use_frozen_embeddings_as_input"] = "True" + # Deprecated arg below. We used to cache different + # embeddings for suffixes. Then they became the same. + # Removing the below line will invalidate other + # people's caches. + dataset_kwargs["suffix_conditioning"] = "False" + + # os.environ["TOKENIZERS_PARALLELISM"] = "True" + print( + "Loading datasets with TOKENIZERS_PARALLELISM =", + os.environ.get("TOKENIZERS_PARALLELISM"), + ) + ###################################################################### + train_dataset_kwargs = { + "dataset_name": self.data_args.dataset_name, + **dataset_kwargs, + } + train_dataset_path = os.path.join( + DATASET_CACHE_PATH, (md5_hash_kwargs(**train_dataset_kwargs) + ".npy") + ) + # Optionally set a train dataset path override + train_dataset_path = os.environ.get( + "VEC2TEXT_TRAIN_DATASET_PATH", train_dataset_path + ) + if os.path.exists(train_dataset_path): + print("path?", train_dataset_path) + print("loading train dataset from path:", train_dataset_path) + train_datasets = datasets.load_from_disk(train_dataset_path) + else: + train_datasets, eval_datasets = self._load_train_dataset_uncached( + tokenizer=tokenizer, + embedder_tokenizer=embedder_tokenizer, + ) + + #-------------------------------------------- + # i = 0 + # data_list = [] + # for data in train_datasets.create_dict_iterator(): + # i += 1 + # data = data['text'] + # data_list.append(data) + # if (i == self.data_args.use_less_data): + # break + # column_names = ['input_ids', 'attention_mask', 'labels', 'length', 'embedder_input_ids', + # 'embedder_attention_mask'] + # + # def data_generator(): + # for data in data_list: + # yield ( + # data['input_ids'], data['attention_mask'], data['labels'], data['length'][0], + # data['embedder_input_ids'], + # data['embedder_attention_mask']) + # + # train_datasets = GeneratorDataset(data_generator, column_names) + # -------------------------------------------- + column_names = ['input_ids', 'attention_mask', 'labels', 'length', 'embedder_input_ids', + 'embedder_attention_mask'] + + # create numpy memmap in order to lazy download, but no use, so disgusting bug! + # filename = '/home/luoyf/vec2text/vec2text/saves/train_dataset/processed_data_' +\ + #str(self.data_args.use_less_data) + '.dat' + data_list = [] + u = -1 + # store in memmap + for data in train_datasets: + u += 1 + input_ids = data[0]['input_ids'].asnumpy() + attention_mask = data[0]['attention_mask'].asnumpy() + labels = data[0]['labels'].asnumpy() + length = data[0]['length'][0].asnumpy()#为了存储方便扩展成32位 + embedder_input_ids = data[0]['embedder_input_ids'].asnumpy() + embedder_attention_mask = data[0]['embedder_attention_mask'].asnumpy() + # idx = np.full(32, data[1].asnumpy()) + combined_array = [input_ids, attention_mask, labels, length, embedder_input_ids, embedder_attention_mask] + # data_memmap[u] = combined_array + data_list.append(combined_array) + if u == self.data_args.use_less_data - 1: + break + for i in range(1): + print(data_list[i]) + print("训练数据格式如上↑") + + def data_generator(): + for i in range(self.data_args.use_less_data): + yield ( + ms.Tensor(data_list[i][0].astype(np.int32)), + ms.Tensor(data_list[i][1].astype(np.int32)), + ms.Tensor(data_list[i][2].astype(np.int32)), + ms.Tensor(data_list[i][3].astype(np.int32)), + ms.Tensor(data_list[i][4].astype(np.int32)), + ms.Tensor(data_list[i][5].astype(np.int32)), + ) + train_datasets = GeneratorDataset(data_generator, column_names) + + data_list_ = [] + for data in eval_datasets.create_dict_iterator(): + data = data['text'] + data_list_.append(data) + column_names_ = ['input_ids', 'attention_mask', 'labels', 'length', 'embedder_input_ids', + 'embedder_attention_mask'] + + def data_generator_(): + for data in data_list_: + yield ( + data['input_ids'], data['attention_mask'], data['labels'], data['length'][0], + data['embedder_input_ids'], data['embedder_attention_mask']) + + eval_datasets = GeneratorDataset(data_generator_, column_names_) + print("convert success!") + + return (train_datasets, eval_datasets) + + +class InversionExperiment(Experiment): + ''' + inversion experiment + ''' + @property + def trainer_cls(self): + return trainers.InversionTrainer + + @property + def _wandb_project_name(self) -> str: + return "emb-inv-4" + + def load_model(self) -> PreTrainedModel: + return InversionModel( + config=self.config, + ) + # convert MapDataset with "text" key to GeneratorDataset without it + + + def load_trainer(self) -> mindnlp.engine.Trainer: + model = self.load_model() + train_dataset, eval_dataset = self.load_train_and_val_datasets( + tokenizer=model.tokenizer, + embedder_tokenizer=model.embedder_tokenizer, + ) + return self.trainer_cls( + model=model, + args=self.training_args, + train_dataset=train_dataset, + eval_dataset=eval_dataset, + # data_collator=self.get_collator(tokenizer=model.tokenizer), + ) + + +class CorrectorExperiment(Experiment): + ''' + corrector experiment + ''' + @property + def _wandb_project_name(self) -> str: + return "emb-correct-1" + + def load_trainer(self) -> mindnlp.engine.Trainer: + if self.training_args.corrector_model_from_pretrained: + ( + _, + inversion_trainer, + ) = analyze_utils.load_experiment_and_trainer_from_pretrained( + name=self.training_args.corrector_model_from_pretrained, + # max_seq_length=self.model_args.max_seq_length, + use_less_data=self.data_args.use_less_data, + ) + else: + ( + _, + inversion_trainer, + ) = aliases.load_experiment_and_trainer_from_alias( + alias=self.training_args.corrector_model_alias, + max_seq_length=self.model_args.max_seq_length, + use_less_data=self.data_args.use_less_data, + ) + model = self.load_model() + return trainers.Corrector( + model=model, + inversion_trainer=inversion_trainer, + args=self.training_args, + # data_collator=DataCollatorForCorrection( + # tokenizer=inversion_trainer.model.tokenizer + # ), + ) + + def load_model(self) -> PreTrainedModel: + return CorrectorEncoderModel( + config=self.config, + ) + + +EXPERIMENT_CLS_MAP = { + "inversion": InversionExperiment, + "corrector": CorrectorExperiment, + "corrector_encoder": CorrectorExperiment, # backwards-compatible; does same thing as just 'corrector' +} + + +def experiment_from_args(model_args, data_args, training_args) -> Experiment: + if training_args.experiment in EXPERIMENT_CLS_MAP: + experiment_cls = EXPERIMENT_CLS_MAP[training_args.experiment] # type: ignore + else: + raise ValueError(f"Unknown experiment {training_args.experiment}") + return experiment_cls(model_args, data_args, training_args) # type: ignore diff --git a/examples/privacy/embedding_inversion/vec2text/img/.keep b/examples/privacy/embedding_inversion/vec2text/img/.keep new file mode 100644 index 0000000..e69de29 diff --git a/examples/privacy/embedding_inversion/vec2text/img/case_study.png b/examples/privacy/embedding_inversion/vec2text/img/case_study.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf17ca646016fa8343a27bd1ff055043d36305b GIT binary patch literal 515668 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 ragg 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

{0-Yj#DwfvQCDY`cc4=Nx@8cX@ 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 literal 0 HcmV?d00001 diff --git a/examples/privacy/embedding_inversion/vec2text/models/__init__.py b/examples/privacy/embedding_inversion/vec2text/models/__init__.py new file mode 100644 index 0000000..737fca8 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/models/__init__.py @@ -0,0 +1,13 @@ +''' +models init +''' +#pylint: disable=E0001 +from .corrector_encoder import CorrectorEncoderModel +from .inversion import InversionModel # noqa: F401 +from .model_utils import ( # noqa: F401 + EMBEDDER_MODEL_NAMES, + EMBEDDING_TRANSFORM_STRATEGIES, + FREEZE_STRATEGIES, + load_embedder_and_tokenizer, + load_encoder_decoder, +) diff --git a/examples/privacy/embedding_inversion/vec2text/models/config.py b/examples/privacy/embedding_inversion/vec2text/models/config.py new file mode 100644 index 0000000..eb7d48c --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/models/config.py @@ -0,0 +1,38 @@ +''' +dummy configuration class +''' +import json + +from mindnlp.transformers import PretrainedConfig + +NEW_ATTRIBUTES = { + "embedder_torch_dtype": "float32", +} + + +class InversionConfig(PretrainedConfig): + """We create a dummy configuration class that will just set properties + based on whatever kwargs we pass in. + + When this class is initialized (see experiments.py) we pass in the + union of all data, model, and training args, all of which should + get saved to the config json. + """ + + def __init__(self, **kwargs): + for key, value in kwargs.items(): + try: + json.dumps(value) + setattr(self, key, value) + except TypeError: + # value was not JSON-serializable, skip + continue + super().__init__() + + def __getattribute__(self, key): + try: + return super().__getattribute__(key) + except AttributeError as e: + if key in NEW_ATTRIBUTES: + return NEW_ATTRIBUTES[key] + raise e diff --git a/examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py b/examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py new file mode 100644 index 0000000..4ef2bc2 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/models/corrector_encoder.py @@ -0,0 +1,214 @@ +''' +model to inverse embedding with the inversion model +''' + +import copy +from typing import Dict, Optional + +import mindspore as ms +import mindspore.ops as ops +from mindnlp.transformers import PreTrainedModel, AutoModelForSeq2SeqLM + +from .config import InversionConfig + + +class CorrectorEncoderModel(PreTrainedModel): + """Embeds text and concats with a provided embedding. + + TODO improve comment here. + """ + + config_class = InversionConfig + encoder_decoder: PreTrainedModel + + def __init__(self, config: InversionConfig,): + super().__init__(config=config) + if config.embedder_model_api: + embedder_dim = 1536 + else: + embedder_dim = 768 + bottleneck_dim = embedder_dim + + num_repeat_tokens = config.num_repeat_tokens + ignore_hypothesis_embedding = config.corrector_ignore_hypothesis_embedding + self.use_ff_dropout = False + + encoder_decoder = AutoModelForSeq2SeqLM.from_pretrained( + config.model_name_or_path + ) + self.encoder_decoder = encoder_decoder # .to_bettertransformer() + self.embedder_dim = embedder_dim + self.num_repeat_tokens = num_repeat_tokens + self.encoder_hidden_dim = self.encoder_decoder.config.hidden_size + self.embedding_transform_1 = ms.nn.SequentialCell( + ms.nn.Dense(self.embedder_dim, bottleneck_dim), + # ms.nn.Dropout( + # self.encoder_decoder.config.dropout_rate if self.use_ff_dropout else 0.0 + # ), + ms.nn.GELU(), + ms.nn.Dense(bottleneck_dim, self.encoder_hidden_dim * num_repeat_tokens), + ) + self.embedding_transform_2 = ms.nn.SequentialCell( + ms.nn.Dense(self.embedder_dim, bottleneck_dim), + # ms.nn.Dropout( + # self.encoder_decoder.config.dropout_rate if self.use_ff_dropout else 0.0 + # ), + ms.nn.GELU(), + ms.nn.Dense(bottleneck_dim, self.encoder_hidden_dim * num_repeat_tokens), + ) + self.embedding_transform_3 = ms.nn.SequentialCell( + ms.nn.Dense(self.embedder_dim, bottleneck_dim), + # ms.nn.Dropout( + # self.encoder_decoder.config.dropout_rate if self.use_ff_dropout else 0.0 + # ), + ms.nn.GELU(), + ms.nn.Dense(bottleneck_dim, self.encoder_hidden_dim * num_repeat_tokens), + ) + self.ignore_hypothesis_embedding = ignore_hypothesis_embedding + # TODO argparse; default to 0? + self.training_embedding_noise_level = 0 + # self.training_embedding_noise_level = 1e-5 # adding for openai... + self.use_ln = True + if self.use_ln: + self.layernorm = ms.nn.LayerNorm([self.encoder_hidden_dim]) + # print(f"Corrector encoder noise level {self.training_embedding_noise_level}") + + def get_encoder_embedding(self, embedding: ms.Tensor, hypothesis_embedding: ms.Tensor, + hypothesis_input_ids: ms.Tensor, hypothesis_attention_mask: ms.Tensor): + ''' + get encoder embedding + ''' + + batch_size, _ = embedding.shape + assert embedding.shape == (batch_size, self.embedder_dim) + assert hypothesis_embedding.shape == (batch_size, self.embedder_dim) + + if (self.training) and (self.training_embedding_noise_level > 0): + embedding += self.training_embedding_noise_level * ops.randn( + embedding.shape + ) + hypothesis_embedding += self.training_embedding_noise_levelA * ops.randn( + hypothesis_embedding.shape + ) + + if self.ignore_hypothesis_embedding: + # For "No Feedback" ablation + hypothesis_embedding = embedding + + diff_embedding = embedding - hypothesis_embedding + + embedding = self.embedding_transform_1(embedding) + embedding = embedding.reshape( + (batch_size, self.num_repeat_tokens, self.encoder_hidden_dim) + ) + # + diff_embedding = self.embedding_transform_2(diff_embedding) + diff_embedding = diff_embedding.reshape( + (batch_size, self.num_repeat_tokens, self.encoder_hidden_dim) + ) + # + hypothesis_embedding = self.embedding_transform_3(hypothesis_embedding) + hypothesis_embedding = hypothesis_embedding.reshape( + (batch_size, self.num_repeat_tokens, self.encoder_hidden_dim) + ) + inputs_embeds = self.encoder_decoder.encoder.embed_tokens(hypothesis_input_ids) + # + ones = ops.ones( + (batch_size, 1), dtype=ms.bool_) + # TODO: pad_token_id or eos_token_id? Or does it not matter? + sep_token = ones * self.encoder_decoder.config.eos_token_id + sep_token = self.encoder_decoder.encoder.embed_tokens(sep_token) + # inputs_embeds = ops.cat((sep_token, embedding, sep_token, hypothesis_embedding, inputs_embeds), dim=1) + inputs_embeds = ops.cat( + ( + sep_token, + embedding, + sep_token, + hypothesis_embedding, + sep_token, + diff_embedding, + sep_token, + inputs_embeds, + ), + axis=1, + ) + if self.use_ln: + inputs_embeds = self.layernorm(inputs_embeds) + # attention_mask = ops.cat( + # (ones.tile(1, 4 + 3 * self.num_repeat_tokens), hypothesis_attention_mask), + # axis=1, + # ) + ones_repeated = ones.tile((1, 4 + 3 * self.num_repeat_tokens)) + + + + attention_mask = ops.cat( + (ones_repeated, hypothesis_attention_mask), + axis=1, + ) + # ones_repeated = ops.Tile()(ms.Tensor([1], dtype=ms.float32), (1, 4 + 3 * self.num_repeat_tokens)) + # attention_mask = ops.Concat(axis=1)((ones_repeated, hypothesis_attention_mask)) + return (inputs_embeds, attention_mask) + + def generate(self, inputs: Dict[str, ms.Tensor], generation_kwargs: Dict[str, ms.Tensor], + return_dict_in_generate: bool = False) -> ms.Tensor: + '''generate inversion embedding''' + + if "max_length" not in generation_kwargs: + generation_kwargs = copy.copy( + generation_kwargs + ) # make a copy so we can edit + generation_kwargs["max_length"] = inputs.get( + "input_ids", inputs["embedder_input_ids"] + ).shape[1] + + inputs_embeds, attention_mask = self.get_encoder_embedding( + embedding=inputs["frozen_embeddings"], + hypothesis_input_ids=inputs["hypothesis_input_ids"], + hypothesis_attention_mask=inputs["hypothesis_attention_mask"], + hypothesis_embedding=inputs["hypothesis_embedding"], + ) + + if "decoder_input_ids" in inputs: + return self.encoder_decoder.generate( + # required: input embeddings + inputs_embeds=inputs_embeds, + attention_mask=attention_mask, + return_dict_in_generate=return_dict_in_generate, + output_scores=return_dict_in_generate, + # optional: input IDs (for starting generation). + # typically not set unless generating prefixes for + # reranking. + decoder_input_ids=inputs["decoder_input_ids"], + # decoder_attention_mask=inputs["decoder_attention_mask"], + **generation_kwargs, + ) + + return self.encoder_decoder.generate( + # required: input embeddings + inputs_embeds=inputs_embeds, + attention_mask=attention_mask, + return_dict_in_generate=return_dict_in_generate, + output_scores=return_dict_in_generate, + # optional: input IDs (for starting generation). + # typically not set unless generating prefixes for + # reranking. + **generation_kwargs, + ) + + def forward(self, embedding: ms.Tensor, hypothesis_embedding, hypothesis_input_ids: ms.Tensor, + hypothesis_attention_mask: ms.Tensor, labels: Optional[ms.Tensor] = None,): + ''' + forward function + ''' + inputs_embeds, attention_mask = self.get_encoder_embedding( + embedding=embedding, + hypothesis_embedding=hypothesis_embedding, + hypothesis_input_ids=hypothesis_input_ids, + hypothesis_attention_mask=hypothesis_attention_mask, + ) + return self.encoder_decoder( + inputs_embeds=inputs_embeds, + attention_mask=attention_mask, + labels=labels, + ) diff --git a/examples/privacy/embedding_inversion/vec2text/models/inversion.py b/examples/privacy/embedding_inversion/vec2text/models/inversion.py new file mode 100644 index 0000000..25feccf --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/models/inversion.py @@ -0,0 +1,322 @@ +''' +inversion model +''' + +import copy +import logging +from typing import Dict, Optional + +import mindspore as ms +import mindspore.ops as ops +from mindnlp.transformers import PreTrainedModel, PreTrainedTokenizer, AutoModelForSeq2SeqLM, RobertaModel + +from .config import InversionConfig +from .model_utils import ( + FREEZE_STRATEGIES, + disable_dropout, + freeze_params, + load_embedder_and_tokenizer, + load_encoder_decoder, + load_tokenizer, + mean_pool, +) + + +logger = logging.getLogger(__name__) + + +class InversionModel(PreTrainedModel): + """A class of model that conditions on embeddings from a pre-trained sentence embedding model + to decode text autoregressively. + """ + + config_class = InversionConfig + embedder: ms.nn.Cell + embedder_tokenizer: PreTrainedTokenizer # embedder's tokenizer + encoder_decoder: AutoModelForSeq2SeqLM + encoder_decoder_lora: bool # Whether to use LoRA for the encoder-decoder model + tokenizer: PreTrainedTokenizer # encoder_decoder's tokenizer + embedding_transform: ms.nn.Cell # Module that transformers embedder output into encoder-decoder input + bottleneck_dim: int # Bottleneck dimension for embedding_transform + num_repeat_tokens: int # Sequence length for repeating embedder embedding for encoder-decoder input + embedder_dim: int # Hidden dimension of embedding model + embedder_no_grad: bool # Disable gradients for embedding model + embedder_fake_with_zeros: bool # Whether to just provide zeros as input for encoder-decoder (unconditional) + embedding_transform_strategy: str # Way to transform bottleneck embedding into input for encoder-decoder + use_frozen_embeddings_as_input: bool # Whether to train/evaluate on frozen embeddings + embedded_tokens: ms.Tensor # used for decoding + embedder_model_api: Optional[str] + + def __init__(self, config: InversionConfig): + super().__init__(config=config) + + embedder_model_api = config.embedder_model_api + embedder_fake_with_zeros = config.embedder_fake_with_zeros + use_frozen_embeddings_as_input = config.use_frozen_embeddings_as_input + encoder_dropout_disabled = config.encoder_dropout_disabled + decoder_dropout_disabled = config.decoder_dropout_disabled + embeddings_from_layer_n = config.embeddings_from_layer_n + + + encoder_decoder = load_encoder_decoder( + model_name=config.model_name_or_path, + lora=config.use_lora, + ) + + + embedder, embedder_tokenizer = load_embedder_and_tokenizer( + name=config.embedder_model_name, torch_dtype=config.embedder_torch_dtype + ) + + tokenizer = load_tokenizer( + config.model_name_or_path, + max_length=config.max_seq_length, + ) + num_repeat_tokens = config.num_repeat_tokens + embedder_no_grad = config.embedder_no_grad + + self.encoder_decoder = encoder_decoder # .to_bettertransformer() + self.num_repeat_tokens = num_repeat_tokens + + self.embedder_is_decoder = False + + encoder_hidden_dim = self.encoder_decoder.config.hidden_size + if embedder_model_api: + assert use_frozen_embeddings_as_input, "must precompute embeddings w/ api" + # Hard-code OpenAI embedding dim + self.embedder_dim = 1536 + bottleneck_dim = self.embedder_dim + # elif isinstance(embedder, mindnlp.transformers.models.t5.modeling_t5.T5ForConditionalGeneration): + # self.embedder_dim = embedder.get_sentence_embedding_dimension() + # bottleneck_dim = self.embedder_dim + else: + self.embedder_dim = embedder.config.hidden_size + bottleneck_dim = self.embedder_dim + self.embedder_no_grad = embedder_no_grad + self.use_frozen_embeddings_as_input = use_frozen_embeddings_as_input + self.bottleneck_dim = bottleneck_dim + + self.embedding_transform = ms.nn.SequentialCell( + ms.nn.Dense(self.embedder_dim, bottleneck_dim), + ms.nn.Dropout(self.encoder_decoder.config.dropout_rate), + ms.nn.GELU(), # TODO consider dropout or normalization here. + ms.nn.Dense(bottleneck_dim, encoder_hidden_dim * num_repeat_tokens), + ) + if encoder_dropout_disabled: + disable_dropout(self.encoder_decoder.encoder) + if decoder_dropout_disabled: + disable_dropout(self.encoder_decoder.decoder) + disable_dropout(self.encoder_decoder.lm_head) + ###################################################### + self.tokenizer = tokenizer + self.embedder = embedder + if self.embedder_no_grad: + for param in self.embedder.parameters(): + param.requires_grad = False + + self.embedder.eval() + + self.embedder_tokenizer = embedder_tokenizer + self.embedder_model_api = embedder_model_api + # self.freeze(freeze_strategy=config.freeze_strategy) + self.embedder_fake_with_zeros = embedder_fake_with_zeros + + self.embedding_transform_strategy = "repeat" # "none" # "repeat" + self.embeddings_from_layer_n = embeddings_from_layer_n + self.noise_level = 0 + + def _freeze_encoder(self): + freeze_params(self.encoder_decoder.encoder) + + def _freeze_decoder(self): + # github.com/huggingface/transformers/blob/master/src/transformers/models/t5/modeling_t5.py#L1229-L1231 + freeze_params(self.encoder_decoder.decoder) + freeze_params(self.encoder_decoder.lm_head) + + def freeze(self, freeze_strategy: str): + '''maybe freeze module of encoder_decoder for subsequent training''' + + assert freeze_strategy in FREEZE_STRATEGIES + + if freeze_strategy == "decoder": + self._freeze_decoder() + elif freeze_strategy == "encoder": + self._freeze_encoder() + elif freeze_strategy == "encoder_and_decoder": + self._freeze_encoder() + self._freeze_decoder() + # in this case, freeze embeddings too + freeze_params(self.encoder_decoder.shared) + elif freeze_strategy == "none": + pass + else: + raise ValueError(f"invalid freezing strategy {freeze_strategy}") + + def _process_embedder_output(self, outputs, attention_mask: ms.Tensor): + + '''process_embedder_output''' + + if hasattr(outputs, "pooler_output") and (outputs.pooler_output is not None): + return outputs.pooler_output + if self.embeddings_from_layer_n is not None: + assert hasattr( + outputs, "hidden_states" + ), "output missing hidden states - remember to initialize the model with output_hidden_states=True?" + hidden_state = outputs.hidden_states[self.embeddings_from_layer_n] + embeddings = mean_pool(hidden_state, attention_mask) + else: + hidden_state = outputs.last_hidden_state + embeddings = mean_pool(hidden_state, attention_mask) + return embeddings + + def call_embedding_model(self, input_ids: ms.Tensor, attention_mask: ms.Tensor, + token_type_ids: Optional[ms.Tensor] = None): + ''' + call_embedding_model + ''' + embedder = self.embedder + # print("** call_embedding_model") + if self.embedder_no_grad: + embedder.eval() + # pylint: disable=R1705 + if self.embedder_fake_with_zeros: + batch_size = input_ids.shape[0] + return ops.zeros( + (batch_size, self.embedder_dim), + dtype=ms.float32 + ) + + elif isinstance(self.embedder, RobertaModel): + #before : mindnlp.transformers.models.t5.modeling_t5.T5ForConditionalGeneration + #self.embedder : RobertaModel + # sentence-transformers is kind of really annoying + model_inputs = {"input_ids": input_ids, "attention_mask": attention_mask} + + if token_type_ids is not None: + model_inputs["token_type_ids"] = token_type_ids + # print(model_inputs) + # print(model_inputs['input_ids'].shape) + + + model_output = embedder(model_inputs['input_ids']) + + embeddings = self._process_embedder_output(model_output, attention_mask) + + else: + model_output = embedder(input_ids=input_ids, attention_mask=attention_mask) + embeddings = self._process_embedder_output(model_output, attention_mask) + + if self.noise_level > 0: + embeddings += self.noise_level * ops.randn( + embeddings.shape + ) + return embeddings + + def embed_and_project(self, embedder_input_ids: Optional[ms.Tensor], + embedder_attention_mask, + frozen_embeddings: Optional[ms.Tensor] = None,): + ''' + embed_and_project + ''' + assert not ((embedder_input_ids is None) and (frozen_embeddings is None)) + if frozen_embeddings is not None: + embeddings = frozen_embeddings + assert len(embeddings.shape) == 2 # batch by d + elif self.embedder_no_grad: + embeddings = self.call_embedding_model(input_ids=embedder_input_ids, + attention_mask=embedder_attention_mask,) + else: + embeddings = self.call_embedding_model( + input_ids=embedder_input_ids, + attention_mask=embedder_attention_mask, + ) + if self.embedding_transform_strategy == "repeat": + if embeddings.dtype != self.dtype: + embeddings = embeddings.astype(self.dtype) + repeated_embeddings = self.embedding_transform(embeddings) + # linear outputs a big embedding, reshape into a sequence of regular size embeddings. + embeddings = repeated_embeddings.reshape( + (*repeated_embeddings.shape[:-1], self.num_repeat_tokens, -1) + ) + elif self.embedding_transform_strategy == "nearest_neighbors": + # TODO + raise NotImplementedError() + else: + raise ValueError( + f"unknown embedding transformation strategy {self.embedding_transform_strategy}" + ) + attention_mask = ops.ones( + (embeddings.shape[0], embeddings.shape[1]), dtype=ms.float32) + return embeddings, attention_mask + + def generate(self, inputs: Dict[str, ms.Tensor], generation_kwargs: Dict[str, ms.Tensor],): + ''' + generate embedding + ''' + generation_kwargs = copy.copy(generation_kwargs) # make a copy so we can edit + inputs_embeds, attention_mask = self.embed_and_project( + embedder_input_ids=inputs.get("embedder_input_ids"), + embedder_attention_mask=inputs.get("embedder_attention_mask"), + # frozen_embeddings=inputs.get("frozen_embeddings"), + # embedder_input_ids=inputs[4], + # embedder_attention_mask=inputs[5], + + ) + + if "decoder_input_ids" in inputs: + return self.encoder_decoder.generate( + # required: input embeddings + inputs_embeds=inputs_embeds, + attention_mask=attention_mask, + # optional: input IDs (for starting generation). + # typically not set unless generating prefixes for + # reranking. + decoder_input_ids=inputs["decoder_input_ids"], + **generation_kwargs, + ) + + return self.encoder_decoder.generate( + # required: input embeddings + inputs_embeds=inputs_embeds, + attention_mask=attention_mask, + # optional: input IDs (for starting generation). + # typically not set unless generating prefixes for + # reranking. + **generation_kwargs, + ) + + + def generate_corrector(self, inputs: Dict[str, ms.Tensor], generation_kwargs: Dict[str, ms.Tensor],): + ''' + 因为数据格式不一样,所以corrector中的generate改成这个名字了generate_corrector + ''' + generation_kwargs = copy.copy(generation_kwargs) # make a copy so we can edit + print(inputs) + inputs_embeds, attention_mask = self.embed_and_project( + embedder_input_ids=inputs.get("embedder_input_ids"), + embedder_attention_mask=inputs.get("embedder_attention_mask"), + frozen_embeddings=inputs.get("frozen_embeddings"), + ) + + return self.encoder_decoder.generate(inputs_embeds=inputs_embeds, + attention_mask=attention_mask, **generation_kwargs,) + + + def forward(self, embedder_input_ids: ms.Tensor, embedder_attention_mask: ms.Tensor, + labels: Optional[ms.Tensor] = None, + frozen_embeddings: Optional[ms.Tensor] = None, decoder_input_ids: Optional[ms.Tensor] = None,): + ''' + forward function + ''' + # Unused: input_ids, attention_mask + inputs_embeds, attention_mask = self.embed_and_project( + embedder_input_ids=embedder_input_ids, + embedder_attention_mask=embedder_attention_mask, + frozen_embeddings=frozen_embeddings, + ) + return self.encoder_decoder( + inputs_embeds=inputs_embeds, + attention_mask=attention_mask, + labels=labels, + decoder_input_ids=decoder_input_ids, + ) diff --git a/examples/privacy/embedding_inversion/vec2text/models/model_utils.py b/examples/privacy/embedding_inversion/vec2text/models/model_utils.py new file mode 100644 index 0000000..774eea4 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/models/model_utils.py @@ -0,0 +1,168 @@ +''' +model utils for training +''' + +from typing import Any, Dict + +import mindspore as ms +from mindnlp.sentence import SentenceTransformer +from mindnlp.transformers import AutoModel, AutoTokenizer, AutoModelForCausalLM, AutoModelForSeq2SeqLM, \ + PreTrainedTokenizer + +EMBEDDER_MODEL_NAMES = [ + "bert", + "bert__random_init", + "contriever", + "dpr", + "gtr_base", + "gtr_base__random_init", + "medicalai/ClinicalBERT", + "gtr_large", + "ance_tele", + "dpr_st", + "gtr_base_st", + "paraphrase-distilroberta", + "sentence-transformers/all-MiniLM-L6-v2", + "meta-llama/Llama-2-7b-hf", + "meta-llama/Llama-2-13b-hf", + "meta-llama/Llama-2-7b-chat-hf", + "meta-llama/Llama-2-13b-chat-hf", + "nomic-ai/nomic-embed-text-v1", + "gpt2", + "gpt2-medium", + "gpt2-large", + "gpt2-xl", +] + + +FREEZE_STRATEGIES = ["decoder", "encoder_and_decoder", "encoder", "none"] +EMBEDDING_TRANSFORM_STRATEGIES = ["repeat"] + + +device = ms.get_context("device_target") + + +def disable_dropout(model: ms.nn.Cell): + dropout_modules = [m for m in model.modules() if isinstance(m, ms.Dropout)] + for m in dropout_modules: + m.p = 0.0 + print( + f"Disabled {len(dropout_modules)} dropout modules from model type {type(model)}" + ) + + +def freeze_params(model: ms.nn.Cell): + total_num_params = 0 + for _, params in model.named_parameters(): + params.requires_grad = False + total_num_params += params.numel() + # print(f"Froze {total_num_params} params from model type {type(model)}") + + +def mean_pool(hidden_states: ms.Tensor, attention_mask: ms.Tensor): + b, _, d = hidden_states.shape + unmasked_outputs = hidden_states * attention_mask[..., None] + pooled_outputs = unmasked_outputs.sum(axis=1) / attention_mask.sum(axis=1)[:, None] + assert pooled_outputs.shape == (b, d) + return pooled_outputs + + +def max_pool(hidden_states: ms.Tensor, attention_mask: ms.Tensor) -> ms.Tensor: + b, _, d = hidden_states.shape + unmasked_outputs = hidden_states * attention_mask[..., None] + pooled_outputs = unmasked_outputs.max(axis=1) + assert pooled_outputs.shape == (b, d) + return pooled_outputs + + +def stack_pool(hidden_states: ms.Tensor, attention_mask: ms.Tensor): + b, s, d = hidden_states.shape + unmasked_outputs = hidden_states * attention_mask[..., None] + pooled_outputs = unmasked_outputs.reshape((b, s * d)) # stack along seq length + assert pooled_outputs.shape == (b, s * d) + return pooled_outputs + + +def load_embedder_and_tokenizer(name: str, torch_dtype: str):# pylint: disable=W0613 + + ''' + TODO make abstract/argparse for it etc. + name = "gpt2" #### <--- TEMP. For debugging. Delete! + ''' + model_kwargs = { + #"low_cpu_mem_usage": True, # Not compatible with DeepSpeed + "output_hidden_states": False, + } + + if name == "gtr_base": + print("gtr-t5-base is regarded as embedder model......") + model = AutoModel.from_pretrained( + "sentence-transformers/gtr-t5-base", **model_kwargs + ).encoder + tokenizer = AutoTokenizer.from_pretrained( + "sentence-transformers/gtr-t5-base" + ) + elif name == "paraphrase-distilroberta": + model = AutoModel.from_pretrained( + "sentence-transformers/paraphrase-distilroberta-base-v1", **model_kwargs + ) + tokenizer = AutoTokenizer.from_pretrained( + "sentence-transformers/paraphrase-distilroberta-base-v1" + ) + # elif name == "paraphrase-distilroberta": + # tokenizer = AutoTokenizer.from_pretrained("google-t5/t5-base") + # model = AutoModelForSeq2SeqLM.from_pretrained("google-t5/t5-base") + elif name == "medicalai/ClinicalBERT": + model = AutoModel.from_pretrained( + "medicalai/ClinicalBERT", **model_kwargs + ) + tokenizer = AutoTokenizer.from_pretrained("medicalai/ClinicalBERT") + elif name.startswith("gpt2"): + model = AutoModelForCausalLM.from_pretrained( + name, + **model_kwargs, + ) + # model.to_bettertransformer() + tokenizer = AutoTokenizer.from_pretrained(name) + tokenizer.pad_token = tokenizer.eos_token + + elif name.startswith("sentence-transformers/"): + model = SentenceTransformer(name) + tokenizer = model.tokenizer + + else: + print(f"WARNING: Trying to initialize from unknown embedder {name}") + model = AutoModel.from_pretrained(name, **model_kwargs) + tokenizer = AutoTokenizer.from_pretrained(name) + + # model = torch.compile(model) + return model, tokenizer + +# pylint: disable=W0613 +def load_encoder_decoder(model_name: str, lora: bool = False): + model_kwargs: Dict[str, Any] = { + #"low_cpu_mem_usage": True,z + } + return AutoModelForSeq2SeqLM.from_pretrained( + model_name, **model_kwargs + ) + + +def load_tokenizer(name: str, max_length: int) -> PreTrainedTokenizer: + ''' + load tokenizer + ''' + tokenizer = AutoTokenizer.from_pretrained( + name, + padding="max_length", + truncation="max_length", + max_length=max_length, + ) + + if tokenizer.pad_token is None: + tokenizer.pad_token = tokenizer.eos_token + + # Disable super annoying warning: + # https://github.com/huggingface/transformers/issues/22638 + tokenizer.deprecation_warnings["Asking-to-pad-a-fast-tokenizer"] = True + return tokenizer diff --git a/examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py b/examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py new file mode 100644 index 0000000..cc8bcf8 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/precompute_train_hypotheses.py @@ -0,0 +1,79 @@ +''' +precompute train hypotheses +''' +import argparse +import glob +import os + +import aliases +import datasets +import tqdm + + +def precompute(start_idx: int, num_samples: int): + '''precompute''' + + out_path = (f"/home/jxm3/research/retrieval/inversion/msmarco_msl128_hypotheses/" + f"msmarco_{num_samples}_{start_idx}.arrow") + if os.path.exists(out_path): + print("already precomputed; exiting") + # load the previously-trained msmarco model + _, trainer = aliases.load_experiment_and_trainer_from_alias( + "openai_msmarco__msl128__100epoch__correct", + max_seq_length=128, + use_less_data=-1, + ) + + end_idx = min(len(trainer.train_dataset), start_idx + num_samples) + print("Original length:", len(trainer.train_dataset)) + trainer.train_dataset = trainer.train_dataset.select(range(start_idx, end_idx)) + print("Sampled length:", len(trainer.train_dataset)) + hypothesis_path = trainer.precompute_hypotheses() + os.symlink(hypothesis_path, out_path) + print( + f"precomputed {num_samples} samples from msmarco from idx {start_idx} and saved to {out_path}" + ) + + +def gather(): + '''gather''' + n_samples = 136772 # gather all files that have this many samples + files = sorted( + glob.glob( + f"/home/jxm3/research/retrieval/inversion/msmarco_msl128_hypotheses/msmarco_{n_samples}_*" + ) + ) + gathered_dataset_path = "/home/jxm3/research/retrieval/inversion/msmarco_msl128_hypotheses/msmarco_full.cache" + datasets_list = [] + print(f"found {len(files)} files to concatenate.") + print(f"\t first three: {files[:3]}") + for f in tqdm.tqdm(files, desc="loading datasets"): + datasets_list.append(datasets.Dataset.load_from_disk(f)) + print("concatenating") + full_dataset = datasets.concatenate_datasets(datasets_list) + print("and...saving.") + full_dataset.save_to_disk(gathered_dataset_path) + print(f"gathered {len(datasets_list)} and saved to {gathered_dataset_path}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="precompute MSMARCO hypotheses") + parser.add_argument("--start_idx", type=int, required=True, help="Starting index") + parser.add_argument( + "--num_samples", type=int, required=True, help="Number of samples" + ) + parser.add_argument( + "--work", + type=str, + required=False, + default="precompute", + choices=["precompute", "gather"], + help="type of work to do", + ) + + args = parser.parse_args() + + if args.work == "precompute": + precompute(args.start_idx, args.num_samples) + else: + gather() diff --git a/examples/privacy/embedding_inversion/vec2text/requirements.txt b/examples/privacy/embedding_inversion/vec2text/requirements.txt new file mode 100644 index 0000000..367d4af --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/requirements.txt @@ -0,0 +1,16 @@ +accelerate +bert_score +datasets +einops +evaluate +openai +optimum +pre-commit +pylcs +rouge_score +sacrebleu +sentence_transformers +tenacity +tokenizers +tqdm +transformers diff --git a/examples/privacy/embedding_inversion/vec2text/run.py b/examples/privacy/embedding_inversion/vec2text/run.py new file mode 100644 index 0000000..8ab82e3 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/run.py @@ -0,0 +1,37 @@ +''' +program start point +''' + +from datetime import datetime +from experiments import experiment_from_args +from run_args import parse_arguments, parse_args_into_dataclasses + +# #为了在gpu环境下使用mindspore2.4版本 +# os.environ['CUDA_HOME'] = '/luoyf' +# +# os.environ["WANDB_DISABLED"] = "true" +# os.environ['CUDA_VISIBLE_DEVICES'] = '1' +# #连接clash挂梯子必备 +# os.environ['http_proxy'] = 'http://127.0.0.1:7890' +# os.environ['https_proxy'] = 'http://127.0.0.1:7890' +# os.environ['all_proxy'] = 'socks5://127.0.0.1:7890' + + +def main(): + # ms.set_context(device_target="Ascend") + # ms.context.set_context(mode=ms.context.PYNATIVE_MODE) + # ms.context.set_context(mode=ms.context.GRAPH_MODE) + # model = CLIPModel.from_pretrained("openai/clip-vit-large-patch14", from_tf=True) + args = parse_arguments() + #traing_args may not be a normal datacla + # ss, and then should be adapted to the new one. + model_args, data_args, training_args = parse_args_into_dataclasses(args) + experiment = experiment_from_args(model_args, data_args, training_args) + print("beginning time:") + print(datetime.now()) + experiment.run() + + + +if __name__ == "__main__": + main() diff --git a/examples/privacy/embedding_inversion/vec2text/run_args.py b/examples/privacy/embedding_inversion/vec2text/run_args.py new file mode 100644 index 0000000..d14e854 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/run_args.py @@ -0,0 +1,484 @@ +# pylint: disable=E1123 +''' +parse command to arguments +''' +import os +from dataclasses import dataclass, field +from typing import Optional, Tuple +import argparse + +import mindnlp.engine + + +DATASET_NAMES = [ + "nq", + "luar_reddit", + "msmarco", + "one_million_instructions", + "one_million_paired_instructions", +] + + +@dataclass +class ModelArguments: + """ + Arguments pertaining to which model/config/tokenizer we are going to fine-tune, or train from scratch. + """ + model_name_or_path: str = field( + ### + ## huggingface.co/facebook/dpr-ctx_encoder-single-nq-base + ### + default="t5-base", + metadata={ + "help": ( + "The model checkpoint for weights initialization .Don't set if you want to train a model from scratch." + ) + }, + ) + embedder_model_name: str = field( + ### + ## huggingface.co/facebook/dpr-ctx_encoder-single-nq-base + ### + default="gtr_base", + metadata={ + "help": "Model to get embeddings from (locally)", + # "choices": EMBEDDER_MODEL_NAMES, + }, + ) + embedder_model_api: Optional[str] = field( + default=None, metadata={"help": "API to get embeddings from"} + ) + embedder_torch_dtype: str = field( + default="float32", + metadata={ + "help": "torch dtype of embedder", + "choices": ["float32", "float16", "bfloat16"], + }, + ) + embedding_transform_strategy: str = field( + default="repeat", + metadata={ + "help": "Strategy for transforming from sentence embedding into sequence-level input for encoder-decoder", + # "choices": EMBEDDING_TRANSFORM_STRATEGIES, + }, + ) + encoder_dropout_disabled: bool = field( + default=False, metadata={"help": "Disable dropout on T5 encoder"} + ) + decoder_dropout_disabled: bool = field( + default=False, metadata={"help": "Disable dropout on T5 decoder"} + ) + + # model_type: Optional[str] = field( + # default=None, + # metadata={ + # "help": "If training from scratch, pass a model type from the list: " + # + ", ".join(MODEL_TYPES) + # }, + # ) + config_overrides: Optional[str] = field( + default=None, + metadata={ + "help": ( + "Override some existing default config settings when a model is trained from scratch. Example: " + "n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index" + ) + }, + ) + config_name: Optional[str] = field( + default=None, + metadata={ + "help": "Pretrained config name or path if not the same as model_name" + }, + ) + tokenizer_name: Optional[str] = field( + default=None, + metadata={ + "help": "Pretrained tokenizer name or path if not the same as model_name" + }, + ) + cache_dir: Optional[str] = field( + default=None, + metadata={ + "help": "Where do you want to store the pretrained models downloaded from huggingface.co" + }, + ) + model_revision: str = field( + default="main", + metadata={ + "help": "The specific model version to use (can be a branch name, tag name or commit id)." + }, + ) + max_seq_length: int = field( + default=128, metadata={"help": "Maximum sequence length for tokenizer"} + ) + torch_dtype: Optional[str] = field( + default=None, + metadata={ + "help": ( + "Override the default `torch.dtype` and load the model under this dtype. If `auto` is passed, the " + "dtype will be automatically derived from the model's weights." + ), + "choices": ["auto", "bfloat16", "float16", "float32"], + }, + ) + num_repeat_tokens: int = field( + default=16, + metadata={ + "help": "Number of times to repeat embedding along T5 input sequence length." + }, + ) + embedding_zero_except_topk: Optional[int] = field( + default=None, + metadata={ + "help": "For inverting with logits, will set all numbers in embedding except the top-K to -30." + }, + ) + embedder_no_grad: bool = field( + default=True, metadata={"help": "Whether to disable grads for DPR"} + ) + use_lora: bool = field( + default=False, metadata={"help": "Whether to use LORA+int8 for fine-tuning"} + ) + embedder_fake_with_zeros: bool = field( + default=False, + metadata={ + "help": "Whether to pass all zeros as embedding (and not use DPR at all)" + }, + ) + + use_frozen_embeddings_as_input: bool = field( + default=False, + metadata={ + "help": "Whether to pass a 'frozen_embedding' column and train" + }, + ) + corrector_ignore_hypothesis_embedding: bool = field( + default=False, + metadata={ + "help": "If set, and training corrector encoder, will ignore the hypothesis embedding" + }, + ) + embeddings_from_layer_n: Optional[int] = field( + default=None, + metadata={ + "help": "If set, uses embeddings from layer n - for example set to 0 to use word embeddings" + }, + ) + freeze_strategy: str = field( + default="none", + metadata={ + "help": "which part of the model to freeze", + # "choices": FREEZE_STRATEGIES, + }, + ) + + def __post_init__(self): + if self.config_overrides is not None and ( + self.config_name is not None or self.model_name_or_path is not None + ): + raise ValueError( + "--config_overrides can't be used in combination with --config_name or --model_name_or_path" + ) + + +@dataclass +class DataArguments: + """ + Arguments pertaining to what data we are going to input our model for training and eval. + """ + # datamap: bool = field( + # default="True", + # ) + dataset_name: Optional[str] = field( + default="msmarco", + metadata={ + "choices": DATASET_NAMES, + "help": "The name of the dataset to use (via the datasets library).", + }, + ) + max_eval_samples: int = field( + default=1000, + metadata={ + "help": ( + "For debugging purposes or quicker training, truncate the number of evaluation examples to this " + "value if set." + ) + }, + ) + use_less_data: int = field( + default=-1, + metadata={ + "help": {"Use a small amount of the training/eval data (for testing)"} + }, + ) + + def __post_init__(self): + if self.dataset_name is None: + raise ValueError("Need a dataset name.") + + +@dataclass +class TrainingArguments(mindnlp.engine.TrainingArguments): + ''' + some training arguments + ''' + # https://github.com/huggingface/transformers/blob/e82c1cb78e178519060b9391214727be75a218ca/src/transformers/training_args.py#L121 + output_dir: Optional[str] = field( + default=None, + metadata={ + "help": "Output directory for training saves. If not set, will output to saves/." + }, + ) + corrector_model_alias: Optional[str] = field( + default=None, + metadata={"help": "Alias of corrector model to train (defined in aliases.py)"}, + ) + corrector_model_from_pretrained: Optional[str] = field( + default=None, + metadata={ + "help": "Alias of pre-trained corrector model to train (defined in aliases.py)" + }, + ) + cheat_on_train_hypotheses: bool = field( + default=False, + metadata={ + "help": "When set, will interpolate true with pred train hypothesis for 'closer' training data" + }, + ) + + steps_per_epoch: int = field( + default=500_000, + metadata={"required": False, "help": "Size of pseudo-training set."}, + ) + num_train_epochs: float = field( + default=30.0, + metadata={"required": False, "help": "Number of epochs for training"}, + ) + learning_rate: float = field( + default=2e-5, + metadata={"help": "The initial learning rate for AdamW on the backbone model."}, + ) + use_wandb: Optional[bool] = field( + default=None, metadata={"help": "Whether or not to log to Weights & Biases."} + ) + report_to: str = "wandb" + per_device_train_batch_size: int = field( + default=128, metadata={"help": "Batch size per GPU/TPU core/CPU for training."} + ) + bf16: bool = field( + default=False, + metadata={"help": ("Whether to use bf16 (mixed) precision instead of 32-bit.")}, + ) + # torch_compile: bool = True # for torch 2 + + ##################### Experimental Settings #################### + experiment: str = field( + default="inversion", + metadata={ + "required": False, + "help": "Which experiment to run (defines model, loss func, dataset...) ", + "choices": [ + "inversion", # our model: projects and feeds to encoder-decoder + "inversion_from_logits", + "inversion_from_logits_emb", + "inversion_decoder_only", # baseline: use single embedding as input to a decoder + "inversion_bow", + "inversion_na", + "reranking", + "corrector", + "corrector_encoder", + ], + }, + ) + exp_name: str = field( + default="", + metadata={ + "required": False, + "help": "Name to identify this specific run of an experiment", + }, + ) + + exp_group_name: str = field( + default="", + metadata={ + "required": False, + "help": "Name to identify this sweep / series of experiments", + }, + ) + + # Need to *not* remove unused columns so we keep query_attention_mask, etc. + # which huggingface doesn't think we need. + remove_unused_columns: bool = False + + # Do evaluation and logging on certain num steps. + evaluation_strategy: str = "steps" + logging_strategy: str = "steps" + save_strategy: str = "steps" + + save_total_limit: int = 2 # Maximum number of checkpoints to save. + + warmup_steps: int = field( + default=4000, metadata={"help": "Number of steps of warmup"} + ) + logging_steps: int = field( + default=400, metadata={"help": "Number of steps between logging metrics"} + ) + save_steps: int = field( + default=4000, + metadata={"help": "Number of steps per save"}, + ) + eval_steps: int = field( + default=8, + metadata={ + "help": "Number of steps between eval (will be scaled as if batch size is 32)" + }, + ) + mock_embedder: bool = field( + default=False, + metadata={ + "help": ( + "If true, will delete the embedder and replace all embedder logits with" + " zeros once training starts. You probably don't want to do this. But " + " if you precomputed all the embeddings for train and val, this will" + " work fine, except the embedding-based metrics (just cosine similarity" + " I think) will be broken." + ) + }, + ) + ddp_find_unused_parameters: Optional[bool] = field( + default=False, + metadata={ + "help": ( + "When using distributed training, the value of the flag `find_unused_parameters` passed to " + "`DistributedDataParallel`." + ) + }, + ) + + include_inputs_for_metrics: bool = False + + def __post_init__(self): + super().__post_init__() + self._frozen = True + self.report_to = ( + ["wandb"] if (self.use_wandb and (self.local_rank <= 0)) else [] + ) + self.dataloader_pin_memory = True + # num_workers = torch.cuda.device_count() + num_workers = 1 + os.environ["RAYON_RS_NUM_CPUS"] = str( + num_workers + ) # Sets threads for hf tokenizers + self.dataloader_num_workers = num_workers + print(f"Set num workers to {num_workers}") + + self.dataloader_drop_last = False + + # Scale logging steps proportional to batch size. + self.warmup_steps = round(self.warmup_steps * (32 / self.train_batch_size)) + self.logging_steps = round(self.logging_steps * (32 / self.train_batch_size)) + self.eval_steps = round(self.eval_steps * (32 / self.train_batch_size)) + self.save_steps = round(self.save_steps * (32 / self.train_batch_size)) + + # defaults from SentenceTransformers + # lr 2e-5 + self.adam_epsilon = 1e-6 + + self.group_by_length = True + self.length_column_name = "length" + + self.load_best_model_at_end = True + self.greater_is_better = False + + self.do_eval = False + # self.ddp_backend = "gloo" + +def parse_arguments(): + ''' + get arguments from command line + ''' + parser = argparse.ArgumentParser() + parser.add_argument("--per_device_train_batch_size", type=int, required=True) + parser.add_argument("--per_device_eval_batch_size", type=int, required=True) + parser.add_argument("--max_seq_length", type=int, required=True) + parser.add_argument("--model_name_or_path", type=str, required=True) + parser.add_argument("--dataset_name", type=str, required=True) + parser.add_argument("--embedder_model_name", type=str, required=True) + parser.add_argument("--num_repeat_tokens", type=int, required=True) + parser.add_argument("--embedder_no_grad", type=bool, default=False, help="Whether to disable gradients") + parser.add_argument("--num_train_epochs", type=int, required=True) + parser.add_argument("--max_eval_samples", type=int, required=True) + parser.add_argument("--eval_steps", type=int, required=True) + parser.add_argument("--warmup_steps", type=int, required=True) + parser.add_argument("--bf16", type=int, choices=[0, 1], help="Use bf16 precision if set to 1") + parser.add_argument("--use_frozen_embeddings_as_input", type=bool, default=False) + parser.add_argument("--experiment", type=str, required=True) + # parser.add_argument("--lr_scheduler_type", type=str, required=True) + parser.add_argument("--learning_rate", type=float, required=True) + parser.add_argument("--output_dir", type=str, required=True) + parser.add_argument("--save_steps", type=int, required=True) + parser.add_argument("--use_less_data", type=int, required=True) + # parser.add_argument("--datamap", type=bool, required=False) + # corrector parameters + parser.add_argument("--corrector_model_alias", type=str, help="Optional alias for the corrector model") + + args = parser.parse_args() + + return args + + +def parse_args_into_dataclasses(args: argparse.Namespace) -> Tuple[ModelArguments, DataArguments, TrainingArguments]: + ''' + input args to dataclass aligning with HfArgParser in vec2text + ''' + + + if hasattr(args, 'corrector_model_alias') and args.corrector_model_alias: + print("diyici:") + print(args) + # pylint: disable=E1123 + training_args = TrainingArguments( + output_dir=args.output_dir, + num_train_epochs=args.num_train_epochs, + learning_rate=args.learning_rate, + per_device_train_batch_size=args.per_device_train_batch_size, + eval_steps=args.eval_steps, + warmup_steps=args.warmup_steps, + bf16=bool(args.bf16), + experiment=args.experiment, + save_steps=args.save_steps, + corrector_model_alias=args.corrector_model_alias, + disable_tqdm=False,# pylint: disable=E1123 + # 动态加入该参数 + ) + else: + # pylint: disable=E1123 + training_args = TrainingArguments( + output_dir=args.output_dir, + num_train_epochs=args.num_train_epochs, + learning_rate=args.learning_rate, + per_device_train_batch_size=args.per_device_train_batch_size, + eval_steps=args.eval_steps, + warmup_steps=args.warmup_steps, + bf16=bool(args.bf16), + experiment=args.experiment, + save_steps=args.save_steps, + disable_tqdm=False,# pylint: disable=E1123 + ) + model_args = ModelArguments( + model_name_or_path=args.model_name_or_path, + embedder_model_name=args.embedder_model_name, + num_repeat_tokens=args.num_repeat_tokens, + use_frozen_embeddings_as_input=args.use_frozen_embeddings_as_input, + embedder_no_grad=args.embedder_no_grad, + max_seq_length=args.max_seq_length, + ) + + data_args = DataArguments( + dataset_name=args.dataset_name, + max_eval_samples=args.max_eval_samples, + use_less_data=args.use_less_data, + # datamap=args.datamap, + ) + return model_args, data_args, training_args diff --git a/examples/privacy/embedding_inversion/vec2text/tokenize_data.py b/examples/privacy/embedding_inversion/vec2text/tokenize_data.py new file mode 100644 index 0000000..10fd4e2 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/tokenize_data.py @@ -0,0 +1,372 @@ +''' +tokenize data +''' + +from dataclasses import dataclass +from typing import Callable, Dict, Optional, Union, Any + +import numpy as np +import mindspore as ms +import mindspore.numpy as mnp +from mindnlp.transformers import PreTrainedTokenizerBase +from mindnlp.utils import PaddingStrategy +from mindnlp.transformers.tokenization_utils_fast import PreTrainedTokenizer +from mindnlp import transformers + +from models import InversionModel + + + +# pylint disable: C0330 +def tokenize_function(tokenizer: PreTrainedTokenizer, embedder_tokenizer: PreTrainedTokenizer, + max_seq_length: int, padding: bool = False,) -> Callable[[Dict], Dict]: + ''' + tokenize_function + ''' + def tokenize_function_inner(examples) -> Dict[str, ms.Tensor]: + try: + texts = examples + output = tokenizer( + texts, + padding=padding, + truncation=True, + max_length=max_seq_length, + return_tensors='np' + ) + + output['input_ids'] = output['input_ids'][0] + output['attention_mask'] = output['attention_mask'][0] + output_labels_list = [ + (-100 if token_id == tokenizer.pad_token_id else token_id) for token_id in output["input_ids"] + ] + output["labels"] = np.array(output_labels_list) + + # 计算有效长度并生成 length 数组 + count_of_ones = sum(output["attention_mask"]) + output["length"] = np.array([count_of_ones]) + # mask = output["input_ids"] == tokenizer.pad_token_id + # labels = mnp.where(mask, ms.tensor(-100), output["input_ids"]) + # output["labels"] = labels + + # count_of_ones = mnp.sum(output["attention_mask"]) + # output["length"] = count_of_ones + # print(count_of_ones.asnumpy().item()) + + + + embedder_output = embedder_tokenizer( + texts, + padding="max_length", + truncation=True, + max_length=max_seq_length, + return_tensors="np", + ) + embedder_output['input_ids'] = embedder_output['input_ids'][0] + embedder_output['attention_mask'] = embedder_output['attention_mask'][0] + + + + # embedder_output = {f"embedder_{key}": value.asnumpy().tolist() for key, value in embedder_output.items()} + embedder_output = {f"embedder_{key}": value for key, value in embedder_output.items()} + # print("--------------------------------------------------------------------") + # print({**output, **embedder_output}) + return {**output, **embedder_output} + except Exception as e: + print(f"Error during processing: {e}") + raise # Re-throw the exception after logging + + return tokenize_function_inner + + +def tokenize_function_(tokenizer: PreTrainedTokenizer, embedder_tokenizer: PreTrainedTokenizer, + max_seq_length: int, padding: bool = False,) -> Callable[[Dict], Dict]: + '''tokenize_function''' + def tokenize_function_inner(examples) -> Dict[str, ms.Tensor]: + try: + texts = examples + + output = tokenizer( + texts, + padding=padding, + truncation=True, + max_length=max_seq_length, + return_tensors='ms' + ) + + # print("output的值是:") + # print(output) + # print("------------end---------------") + output['input_ids'] = output['input_ids'][0] + output['attention_mask'] = output['attention_mask'][0] + output_labels_list = [ + (-100 if token_id == tokenizer.pad_token_id else token_id) for token_id in output["input_ids"] + ] + output["labels"] = np.array(output_labels_list) + + # 计算有效长度并生成 length 数组 + # count_of_ones = sum(output["attention_mask"]) + # output["length"] = np.array([count_of_ones]) + mask = output["input_ids"] == tokenizer.pad_token_id + labels = mnp.where(mask, ms.tensor(-100), output["input_ids"]) + output["labels"] = labels + + count_of_ones = mnp.sum(output["attention_mask"]) + output["length"] = [count_of_ones.asnumpy().item()] + # print("++++++++++++++++++++++++++++++++++++++++") + # print(count_of_ones.asnumpy().item()) + # print("-----------------------------------------") + + + embedder_output = embedder_tokenizer( + texts, + padding="max_length", + truncation=True, + max_length=max_seq_length, + return_tensors="ms", + ) + embedder_output['input_ids'] = embedder_output['input_ids'][0] + embedder_output['attention_mask'] = embedder_output['attention_mask'][0] + + + + # embedder_output = {f"embedder_{key}": value.asnumpy().tolist() for key, value in embedder_output.items()} + embedder_output = {f"embedder_{key}": value for key, value in embedder_output.items()} + # print("--------------------------------------------------------------------") + # print({**output, **embedder_output}) + return {**output, **embedder_output} + except Exception as e: + print(f"Error during processing: {e}") + raise # Re-throw the exception after logging + + return tokenize_function_inner + + +def embed_dataset_batch(model: InversionModel, batch: Dict) -> Dict: + ''' + embed_dataset_batch + ''' + assert "input_ids" in batch.keys(), f"invalid keys {batch.keys()}" + assert hasattr(model, "call_embedding_model") + + input_ids = batch["input_ids"] + inputs_str = model.tokenizer.batch_decode(input_ids, skip_special_tokens=True) + emb_input_ids = model.embedder_tokenizer( + inputs_str, + max_length=model.config.max_seq_length, + truncation=True, + padding="max_length", + return_tensors="ms", + ) + + model.set_train(False) + batch["frozen_embeddings"] = model.call_embedding_model(**emb_input_ids) + model.set_train(True) + return batch + +# pylint: disable=W0613 +def get_tokenizer_mapping(lm: str, inverter: str, inverter_vocab_size: int) -> ms.Tensor: + """Computes the mapping from token outputs in `lm`'s vocabulary to those in `inverter's + vocabulary. Makes some assumptions about spacing. + """ + lm_tokenizer = transformers.AutoTokenizer.from_pretrained(lm) + inverter_tokenizer = transformers.AutoTokenizer.from_pretrained(inverter) + + lm_vocab = lm_tokenizer.vocab + mapping = ms.ops.zeros(len(lm_vocab), dtype=ms.int64) + for k, idx in lm_tokenizer.vocab.items(): + # We replace space tokens with nothing and allow the call to + # inverter_tokenizer.decode to determine this. We also + # filter out 2 and 3 as first tokens which are extremely common + # when the T5 tokenizer processes unicode. (These are hacks + # specific to the LLAMA-T5 lm-inverter pairing, and it would + # be better to find an automated wa to do this later.) + mapping[idx] = inverter_tokenizer.encode(k.replace("▁", " "))[0] + if mapping[idx] in [2, 3]: + mapping[idx] = inverter_tokenizer.encode(k.replace("▁", " "))[1] + + preservation = len(set(mapping.tolist())) / len(lm_vocab) + print( + f"Mapped tokenizer {lm} to {inverter}. Preserved {preservation*100:.1f}% of unique tokens." + ) + return mapping + +def pad_without_fast_tokenizer_warning(tokenizer, *pad_args, **pad_kwargs): + """ + Pads without triggering the warning about how using the pad function is sub-optimal when using a fast tokenizer. + """ + + # To avoid errors when using Feature extractors + if not hasattr(tokenizer, "deprecation_warnings"): + return tokenizer.pad(*pad_args, **pad_kwargs) + + # Save the state of the warning, then disable it + warning_state = tokenizer.deprecation_warnings.get("Asking-to-pad-a-fast-tokenizer", False) + tokenizer.deprecation_warnings["Asking-to-pad-a-fast-tokenizer"] = True + + try: + padded = tokenizer.pad(*pad_args, **pad_kwargs) + finally: + # Restore the state of the warning. + tokenizer.deprecation_warnings["Asking-to-pad-a-fast-tokenizer"] = warning_state + + return padded + + +# convert to current assignment without too much change from transformer library of huggingface +# lizard: ignore=CYCLOMATIC_COMPLEXITY +@dataclass +class DataCollatorForSeq2Seq: + """ + Data collator that will dynamically pad the inputs received, as well as the labels. + + Args: + tokenizer ([`PreTrainedTokenizer`] or [`PreTrainedTokenizerFast`]): + The tokenizer used for encoding the data. + model ([`PreTrainedModel`], *optional*): + The model that is being trained. If set and has the *prepare_decoder_input_ids_from_labels*, use it to + prepare the *decoder_input_ids* + + This is useful when using *label_smoothing* to avoid calculating loss twice. + padding (`bool`, `str` or [`~utils.PaddingStrategy`], *optional*, defaults to `True`): + Select a strategy to pad the returned sequences (according to the model's padding side and padding index) + among: + + - `True` or `'longest'` (default): Pad to the longest sequence in the batch (or no padding if only a single + sequence is provided). + - `'max_length'`: Pad to a maximum length specified with the argument `max_length` or to the maximum + acceptable input length for the model if that argument is not provided. + - `False` or `'do_not_pad'`: No padding (i.e., can output a batch with sequences of different lengths). + max_length (`int`, *optional*): + Maximum length of the returned list and optionally padding length (see above). + pad_to_multiple_of (`int`, *optional*): + If set will pad the sequence to a multiple of the provided value. + + This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability >= + 7.5 (Volta). + label_pad_token_id (`int`, *optional*, defaults to -100): + The id to use when padding the labels (-100 will be automatically ignored by PyTorch loss functions). + return_tensors (`str`, *optional*, defaults to `"pt"`): + The type of Tensor to return. Allowable values are "np", "pt" and "tf". + """ + + tokenizer: PreTrainedTokenizerBase + model: Optional[Any] = None + padding: Union[bool, str, PaddingStrategy] = True + max_length: Optional[int] = None + pad_to_multiple_of: Optional[int] = None + label_pad_token_id: int = -100 + return_tensors: str = "ms" + + def __call__(self, features, return_tensors=None): + '''call func, reconstruct to form a func to meet with CCN restriction''' + # 确定返回的 tensor 类型 + return_tensors = return_tensors or self.return_tensors + + # 获取 labels 键名 + label_name = self._get_label_name(features) + + # 提取 labels 和非 labels 特征 + labels, non_labels_features = self._extract_labels_and_features(features, label_name) + + # 使用 tokenizer 对非标签特征进行处理 + batch = self._process_features(non_labels_features, return_tensors) + + # 手动填充 labels + if labels is not None: + batch["labels"] = self._process_labels(labels, features, label_name) + + # 处理返回 tensor 类型 + batch = self._convert_labels_to_tensor(batch, return_tensors) + + # 准备 decoder_input_ids + if self._requires_decoder_input_ids(labels): + batch["decoder_input_ids"] = self.model.prepare_decoder_input_ids_from_labels(labels=batch["labels"]) + + return batch + + def _get_label_name(self, features): + """获取标签名称,如果有 'label' 则使用 'label' 否则使用 'labels'""" + return "label" if "label" in features[0].keys() else "labels" + + def _extract_labels_and_features(self, features, label_name): + """提取标签和非标签特征""" + labels = [feature[label_name] for feature in features] if label_name in features[0].keys() else None + # 将 [None] 转换为 None + if labels and all(label is None for label in labels): + labels = None + non_labels_features = [{k: v for k, v in feature.items() if k != label_name} for feature in features] + return labels, non_labels_features + + def _process_features(self, non_labels_features, return_tensors): + """使用 tokenizer 处理特征""" + return pad_without_fast_tokenizer_warning( + self.tokenizer, + non_labels_features, + padding=self.padding, + max_length=self.max_length, + pad_to_multiple_of=self.pad_to_multiple_of, + return_tensors=return_tensors, + ) + + def _process_labels(self, labels, features, label_name): + """手动填充 labels""" + no_padding = self.padding is False or self.padding == PaddingStrategy.DO_NOT_PAD + if no_padding: + return self._handle_no_padding(labels, features, label_name) + + return self._handle_padding(labels) + + def _handle_no_padding(self, labels, features, label_name): + """处理没有填充的标签""" + if isinstance(features[0][label_name], list): + return list(labels) + + return [np.concatenate([label, []]) for label in labels] + + def _handle_padding(self, labels): + """处理需要填充的标签""" + max_label_length = self._get_max_label_length(labels) + return [ + self._pad_label(label, max_label_length) for label in labels + ] + + def _get_max_label_length(self, labels): + """获取最大标签长度""" + max_padding = self.padding == PaddingStrategy.MAX_LENGTH and self.max_length is not None + if max_padding: + return self.max_length + return max(len(l) for l in labels) + + def _pad_label(self, label, max_label_length): + """对标签进行填充""" + padding_side = self.tokenizer.padding_side + pad_length = max_label_length - len(label) + padding = [self.label_pad_token_id] * pad_length + + if padding_side == "right": + return label + padding + + return padding + label + + def _convert_labels_to_tensor(self, batch, return_tensors): + """根据指定的返回类型转换 labels 为 tensor""" + if batch.get("labels") is not None: + if return_tensors == "pt": + import torch + batch["labels"] = torch.tensor(batch["labels"], dtype=torch.int64) + elif return_tensors == "tf": + import tensorflow as tf + batch["labels"] = tf.constant(batch["labels"], dtype=tf.int64) + else: + batch["labels"] = ms.tensor(batch["labels"], dtype=ms.int64) + else: + batch["labels"] = None + return batch + + def _requires_decoder_input_ids(self, labels): + """检查是否需要生成 decoder_input_ids""" + return ( + labels is not None and + self.model is not None and + hasattr(self.model, "prepare_decoder_input_ids_from_labels") + ) diff --git a/examples/privacy/embedding_inversion/vec2text/trainers/__init__.py b/examples/privacy/embedding_inversion/vec2text/trainers/__init__.py new file mode 100644 index 0000000..a804305 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/trainers/__init__.py @@ -0,0 +1,6 @@ +''' +init +''' +# pylint: disable=E0001 +from .corrector import Corrector # noqa: F401 +from .inversion import InversionTrainer # noqa: F401 diff --git a/examples/privacy/embedding_inversion/vec2text/trainers/base.py b/examples/privacy/embedding_inversion/vec2text/trainers/base.py new file mode 100644 index 0000000..b740e69 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/trainers/base.py @@ -0,0 +1,489 @@ +''' +base trainer +''' +import collections +import copy +import logging +import random +from typing import Callable, Dict, List, Tuple, Union + +import evaluate +import nltk +import numpy as np +import scipy.stats +import tqdm +from mindnlp.engine import Trainer, EvalLoopOutput +import mindspore as ms +import mindspore.ops as ops + +logger = logging.getLogger(__name__) + +# pylint: disable=W0612 +DEFAULT_INPUT_STRING = ("Twas brillig, and the slithy toves, Did gyre and gimble in the wabe," + "All mimsy were the borogoves, And the mome raths outgrabe.") + +# pylint: disable=W0613 +def preprocess_logits_for_metrics(logits, labels): + if isinstance(logits, tuple): + # Depending on the model and config, logits may contain extra tensors, + # like past_key_values, but logits always come first + logits = logits[0] + return logits.argmax(axis=-1) + + +def sem(l: List[float]) -> float: + result = scipy.stats.sem(np.array(l)) + if isinstance(result, np.ndarray): + return result.mean().item() + return result + + +def mean(l: Union[List[int], List[float]]) -> float: + return sum(l) / len(l) + + +def count_overlapping_ngrams(s1: str, s2: str, n: int) -> int: + ngrams_1 = nltk.ngrams(s1, n) + ngrams_2 = nltk.ngrams(s2, n) + ngram_counts_1 = collections.Counter(ngrams_1) + ngram_counts_2 = collections.Counter(ngrams_2) + total = 0 + for ngram, count in ngram_counts_1.items(): + total += min(count, ngram_counts_2[ngram]) + return total + + +class BaseTrainer(Trainer): + + '''BaseTrainer''' + + additional_metrics: List[Callable[..., Dict[str, float]]] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.preprocess_logits_for_metrics = preprocess_logits_for_metrics + self.compute_metrics = self.compute_metrics_func + self.metric_accuracy = evaluate.load("accuracy") + self.metric_bleu = evaluate.load("sacrebleu") + self.metric_rouge = evaluate.load("rouge") + self.additional_metrics = [] + + self.gen_kwargs = { + "early_stopping": False, + "num_beams": 1, + "do_sample": False, + "no_repeat_ngram_size": 0, + } + @property + def pad_token_id(self) -> int: + try: + return self.model.encoder_decoder.config.pad_token_id + except AttributeError: + return self.tokenizer.pad_token_id + + @property + def bos_token_id(self) -> int: + try: + return self.model.encoder_decoder.decoder_start_token_id + except AttributeError: + return self.tokenizer.bos_token_id + + def sanity_decode(self, input_string: str = None, max_length: int = 128): + """Encodes and decodes a string as a sanity check.""" + if input_string is None: + input_string = DEFAULT_INPUT_STRING + self.model.eval() + print("=" * 16, "Begin trainer sanity check", "=" * 16) + print("\tInput to encode ->", input_string) + inputs = self.embedder_tokenizer( + input_string, + return_tensors="ms", + max_length=max_length, + padding="max_length", + ) + inputs = inputs + gen_kwargs = copy.copy(self.gen_kwargs) + gen_kwargs["min_length"] = 1 + gen_kwargs["max_length"] = max_length + print("max_length:", gen_kwargs["max_length"]) + regenerated = self.generate( + inputs={ + "embedder_input_ids": inputs["input_ids"], + "embedder_attention_mask": inputs["attention_mask"], + }, + generation_kwargs=gen_kwargs, + ) + print("\tDecoded output shape -> ", regenerated.shape) + output_string = self.tokenizer.decode( + regenerated.flatten(), skip_special_tokens=True + ) + print("\tDecoded output ->", output_string) + print("=" * 16, "End trainer sanity check", "=" * 16) + + def _log_preds_table(self, table_key: str, decoded_preds: List[str], decoded_labels: List[str]): + ''' + _log_preds_table + ''' + if not self.args.use_wandb: + return + + if not self.args.local_rank <= 0: + return + + num_rows = 50 + idxs = random.choices( + range(len(decoded_preds)), k=min(len(decoded_preds), num_rows) + ) + + data = [] + for idx in idxs: + data.append([decoded_labels[idx], decoded_preds[idx]]) + + + def _get_decoded_sequences(self, dataset, n: int) -> Tuple[List[ms.Tensor], List[ms.Tensor]]: + """Iterates through eval dataset and does decoding. + + TODO: do this better. We shouldn't need to iterate through eval set twice + but I don't want to copy 1000 lines of code to change their eval loop... + + Probably want custom eval eventually. Also this depends on eval data being + in the same order which is annoying. + """ + assert not self.model.training + + gen_kwargs = copy.copy(self.gen_kwargs) + all_preds = [] + all_labels = [] + for _, inputs in enumerate(tqdm.tqdm(dataset, desc="generating from val", leave=False)): + # https://huggingface.co/docs/transformers/v4.26.1/en/main_classes/text_generation#transformers.GenerationMixin.generate + # inputs_cuda = {k: v.to(self.args.device) for k, v in inputs.items()} + max_length = self.model.config.max_seq_length + gen_kwargs["max_length"] = max_length + self.model.set_train(False) + + inputs_one_col_dict = { + "input_ids": inputs[0], + "attention_mask": inputs[1], + "labels": inputs[2], + "length": inputs[3], + "embedder_input_ids": inputs[4], + "embedder_attention_mask": inputs[5] + + + } + generated_text = self.generate(inputs=inputs_one_col_dict, generation_kwargs=gen_kwargs) + self.model.set_train(True) + if generated_text.shape[1] < max_length: + # Pad generated text to max length + pad_tokens = ( + ops.ones( + (generated_text.shape[0], max_length - generated_text.shape[1]), + dtype=ms.int64 + ) + * self.pad_token_id + ) + generated_text = ops.cat((generated_text, pad_tokens), axis=1) + + # true_input_ids = inputs["input_ids"] + true_input_ids = inputs[0] + if true_input_ids.shape[1] < max_length: + # Pad true text to max length + # Pad generated text to max length + pad_tokens = ( + ops.ones( + (true_input_ids.shape[0], max_length - true_input_ids.shape[1]), + dtype=ms.int64 + ) + * self.pad_token_id + ) + true_input_ids = ops.cat((true_input_ids, pad_tokens), axis=1) + + all_preds.extend(generated_text.asnumpy().tolist()) + all_labels.extend(true_input_ids.asnumpy().tolist()) + if len(all_preds) >= n: + break + return all_preds, all_labels + + def _compute_data_metrics(self, inputs: Dict[str, ms.Tensor]) -> Dict[str, float]: + '''compute_data_metrics''' + inputs_pad_tokens = ( + (inputs["input_ids"] == self.tokenizer.pad_token_id) + .sum(axis=1) + .float() + .mean() + .item() + ) + embedder_inputs_pad_tokens = ( + (inputs["embedder_input_ids"] == self.embedder_tokenizer.pad_token_id) + .sum(axis=1) + .float() + .mean() + .item() + ) + + inputs_non_pad_tokens = inputs["input_ids"].shape[1] - inputs_pad_tokens + embedder_inputs_non_pad_tokens = ( + inputs["input_ids"].shape[1] - embedder_inputs_pad_tokens + ) + + return { + "encoder_decoder_inputs_pad_tokens": inputs_pad_tokens, + "encoder_decoder_inputs_non_pad_tokens": inputs_non_pad_tokens, + "embedder_inputs_pad_tokens": embedder_inputs_pad_tokens, + "embedder_inputs_non_pad_tokens": embedder_inputs_non_pad_tokens, + } + + def compute_metrics_func(self, eval_preds): + ''' + compute_metrics_func + ''' + preds = eval_preds.predictions + labels = eval_preds.label_ids + + assert labels, "got empty labels for eval" + assert ( + ms.tensor(preds).shape == ms.tensor(labels).shape + ), f"preds.shape {preds.shape} / labels.shape {labels.shape}" + + # preds have the same shape as the labels. + labels = labels.reshape(-1) + preds = preds.reshape(-1) + accuracy_result = self.metric_accuracy.compute( + predictions=preds, references=labels + ) + + return {**accuracy_result} + + def _text_comparison_metrics(self, predictions_ids, predictions_str, references_ids, references_str): + '''text_comparison_metrics''' + assert len(predictions_ids) == len(references_ids) + assert len(predictions_ids) == len(predictions_str) + assert len(predictions_str) == len(references_str) + num_preds = len(predictions_ids) + if not num_preds: + return {} + + + + # Compute token, precision, recall, and ngram-level metrics. + precision_sum = 0.0 + recall_sum = 0.0 + num_overlapping_words = [] + num_overlapping_bigrams = [] + num_overlapping_trigrams = [] + num_true_words = [] + num_pred_words = [] + f1s = [] + for i in range(num_preds): + true_words = nltk.tokenize.word_tokenize(references_str[i]) + pred_words = nltk.tokenize.word_tokenize(predictions_str[i]) + num_true_words.append(len(true_words)) + num_pred_words.append(len(pred_words)) + + true_words_set = set(true_words) + pred_words_set = set(pred_words) + tp = len(true_words_set & pred_words_set) + fp = len(true_words_set) - len(true_words_set & pred_words_set) + fn = len(pred_words_set) - len(true_words_set & pred_words_set) + + precision = (tp) / (tp + fp + 1e-20) + recall = (tp) / (tp + fn + 1e-20) + + try: + f1 = (2 * precision * recall) / (precision + recall + 1e-20) + except ZeroDivisionError: + f1 = 0.0 + f1s.append(f1) + + precision_sum += precision + recall_sum += recall + + ############################################################ + num_overlapping_words.append( + count_overlapping_ngrams(true_words, pred_words, 1) + ) + num_overlapping_bigrams.append( + count_overlapping_ngrams(true_words, pred_words, 2) + ) + num_overlapping_trigrams.append( + count_overlapping_ngrams(true_words, pred_words, 3) + ) + + set_token_metrics = { + "token_set_precision": (precision_sum / num_preds), + "token_set_recall": (recall_sum / num_preds), + "token_set_f1": mean(f1s), + # "token_set_f1_sem": sem(f1s), + # "n_ngrams_match_1": mean(num_overlapping_words), + # "n_ngrams_match_2": mean(num_overlapping_bigrams), + # "n_ngrams_match_3": mean(num_overlapping_trigrams), + # "num_true_words": mean(num_true_words), + # "num_pred_words": mean(num_pred_words), + } + ############################################################ + bleu_results = np.array( + [ + self.metric_bleu.compute(predictions=[p], references=[r])["score"] + for p, r in zip(predictions_str, references_str) + ] + ) + #rouge_result = self.metric_rouge.compute( + #predictions=predictions_str, references=references_str + #) + self.bleu_results = ( + bleu_results.tolist() + ) # store bleu results in case we want to use them later for t-tests + # bertscore_result = self.metric_bertscore.compute( + # predictions=predictions_str, references=references_str, lang="en" + # ) + exact_matches = np.array(predictions_str) == np.array(references_str) + gen_metrics = { + "bleu_score": bleu_results.mean(), + # "bleu_score_sem": sem(bleu_results), + # "rouge_score": rouge_result[ + # "rouge1" + # ], # ['rouge1', 'rouge2', 'rougeL', 'rougeLsum'] + # "bert_score": statistics.fmean(bertscore_result["f1"]), + "exact_match": mean(exact_matches), + # "exact_match_sem": sem(exact_matches), + } + + all_metrics = {**set_token_metrics, **gen_metrics} + for metric in self.additional_metrics: + all_metrics.update(metric(references_str, predictions_str)) + + return all_metrics + # pylint: disable=R0915 + # pylint: disable=W0212 + def eval_generation_metrics(self, dataset) -> Dict[str, float]: + ''' + eval_generation_metrics + ''' + # Get decoded text. Note that this is different than `preds`, which + # is used to compute the loss. + preds_sample_list, preds_sample_labels_list = self._get_decoded_sequences( + dataset, n=10000 + ) + decoded_preds = self.tokenizer.batch_decode( + preds_sample_list, skip_special_tokens=True + ) + decoded_labels = self.tokenizer.batch_decode( + preds_sample_labels_list, skip_special_tokens=True + ) + bleu_result = self._text_comparison_metrics( + predictions_ids=preds_sample_list, + predictions_str=decoded_preds, + references_ids=preds_sample_labels_list, + references_str=decoded_labels, + ) + #pylint: disable=W0613 + self._log_preds_table( + table_key="val_text_preds", + decoded_preds=decoded_preds, + decoded_labels=decoded_labels, + ) + + if not decoded_preds: + return {} + print("[pred]", decoded_preds[3]) + print("[true]", decoded_labels[3]) + print("\n\n") + print("[pred]", decoded_preds[1]) + print("[true]", decoded_labels[1]) + print("\n\n") + print("[pred]", decoded_preds[2]) + print("[true]", decoded_labels[2]) + print("\n\n") + + # Compute sims of eval data using embedder. + preds_sample = ms.tensor(preds_sample_list)[:128] + preds_sample_labels = ms.tensor( + preds_sample_labels_list + )[:128] + + # Log num tokens. + num_tokens_metrics = { + "pred_num_tokens": ( + (preds_sample != self.pad_token_id) + & (preds_sample != self.bos_token_id)).sum(1).float().mean().item(), + "true_num_tokens": ( + (preds_sample_labels != self.pad_token_id) + & (preds_sample_labels != self.bos_token_id) + ).sum(1).float().mean().item(),} + + eos_token_id = self.embedder_tokenizer.eos_token_id + if eos_token_id is not None: + eos_tokens = ( + ops.ones( + (len(preds_sample), 1), + dtype=ms.int64 + ) + * eos_token_id + ) + preds_sample = ops.cat((preds_sample[:, 1:], eos_tokens), axis=1) + + try: + self.model.set_train(False) + # self.inversion_trainer.model.noise_level = 0.0 + preds_sample_retokenized = self.embedder_tokenizer( + decoded_preds, + padding=True, + truncation=False, + return_tensors="ms", + )["input_ids"] + preds_sample_retokenized = preds_sample_retokenized[ + : self.args.per_device_eval_batch_size, : + ] + pad_token_id = self.pad_token_id + preds_emb = self.call_embedding_model( + input_ids=preds_sample_retokenized, + attention_mask=(preds_sample_retokenized != pad_token_id), + ) + preds_sample_labels_retokenized = self.embedder_tokenizer( + decoded_labels, padding=True, truncation=False, return_tensors="ms" + )["input_ids"] + preds_sample_labels_retokenized = preds_sample_labels_retokenized[ + : self.args.per_device_eval_batch_size, : + ] + labels_emb = self.call_embedding_model( + input_ids=preds_sample_labels_retokenized, + attention_mask=(preds_sample_labels_retokenized != pad_token_id), + ) + emb_cos_sims = ops.cosine_similarity(preds_emb, labels_emb) + + sim_result = { + "emb_cos_sim": emb_cos_sims.mean().item(), + } + self.model.set_train(True) + + except (TypeError, RuntimeError): + sim_result = {"emb_cos_sim": 0, "emb_cos_sim_sem": 0} + + self.preds_sample_list = preds_sample_list + self.preds_sample_labels_list = preds_sample_labels_list + + metrics = {**num_tokens_metrics, **bleu_result, **sim_result} + return metrics + + def evaluation_loop(self, dataset, *args, **kwargs) -> EvalLoopOutput: + + """ + Run evaluation and returns metrics. + + Override to compute ppl from eval loss. + """ + + output = super().evaluation_loop(dataset, *args, **kwargs) + # metric_key_prefix = kwargs["metric_key_prefix"] + # # TODO compute some data metrics here too. + if self.args.local_rank <= 0: + # Generate some text on worker 0 and compute metrics. + generation_metrics = self.eval_generation_metrics(dataset) + output.metrics.update(generation_metrics) + return output + + #TODO: lack load checkpoint func + + def _remap_state_dict(self, state_dict: Dict) -> Dict: + """Edit keys posthumously on model load.""" + return state_dict diff --git a/examples/privacy/embedding_inversion/vec2text/trainers/corrector.py b/examples/privacy/embedding_inversion/vec2text/trainers/corrector.py new file mode 100644 index 0000000..c158161 --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/trainers/corrector.py @@ -0,0 +1,761 @@ +''' +utilize inversion model to iterablely correct result to get better result +''' +import functools +import logging +import os +from typing import Any, Dict, List, Optional, Tuple, Union + +import datasets +import mindspore as ms +import mindspore.ops as ops +from mindnlp.engine import EvalLoopOutput + +from models import CorrectorEncoderModel +from models.model_utils import freeze_params +from run_args import TrainingArguments +from utils import dataset_map_single_worker +from trainers.base import BaseTrainer +from trainers.inversion import InversionTrainer + +# pylint: disable=unused-variable +# pylint: disable=unused-argument + +logger = logging.getLogger(__name__) +class Corrector(BaseTrainer): + """Trains an encoder model to generate embeddings that recursively correct of an + InversionTrainer. + """ + + train_dataset: datasets.Dataset + eval_dataset: Dict[str, datasets.Dataset] + # TODO: don't assume that the encoder has to have the same tokenizer as the encoder_decoder + # or embedder model. + + _hypothesis_cache: Dict[str, Tuple[ms.Tensor, ms.Tensor, ms.Tensor]] + + # If set, only take hypothesis if it improves our distance to ground-truth. + return_best_hypothesis: bool = False + + # Initialize from this hypothesis, if set + initial_hypothesis_str: Optional[str] = None + + def __init__(self, + model: CorrectorEncoderModel, + inversion_trainer: InversionTrainer, + args: Optional[TrainingArguments], + **kwargs): + # Freeze other model params + freeze_params(inversion_trainer.model) + # We're training this corrector model to correct outputs from + # a model trained & loaded via the inversion trainer. + self.inversion_trainer = inversion_trainer + self.inversion_trainer.model.use_frozen_embeddings_as_input = True + super().__init__( + model=model, + args=args, + train_dataset=self.inversion_trainer.train_dataset, + eval_dataset=self.inversion_trainer.eval_dataset, + **kwargs, + ) + self.tokenizer = self.inversion_trainer.model.tokenizer + self.embedder_tokenizer = self.inversion_trainer.model.embedder_tokenizer + self.embedder = self.inversion_trainer.embedder + self.call_embedding_model = self.inversion_trainer.model.call_embedding_model + # self.train_dataset = self.inversion_trainer.train_dataset, + # self.eval_dataset = self.inversion_trainer.eval_dataset, + self.initial_hypothesis_str = None + + # Number of steps of self-correction + self.num_gen_recursive_steps = 1 + self.sequence_beam_width = 1 + + # If set, return closest (in embedding space) hypothesis we see during generation + self.return_best_hypothesis = False + + # Need to train with same device as the inversion model to avoid weird errors. + assert self.args.fp16 == self.inversion_trainer.args.fp16 + assert self.args.bf16 == self.inversion_trainer.args.bf16 + + # pylint: disable=W0221 + def evaluation_loop(self, dataloader, *args, **kwargs) -> EvalLoopOutput: + """ + Run evaluation and returns metrics. + + Override to compute ppl from eval loss. + """ + # self.inversion_trainer.model + metric_key_prefix = kwargs["metric_key_prefix"] + output = super().evaluation_loop(dataloader, *args, **kwargs) # type: ignore + if metric_key_prefix in {"eval_msmarco", "eval_nq"}: + n_rounds = 5 + self.num_gen_recursive_steps = n_rounds + multi_round_generation_metrics = self.eval_generation_metrics( + self.inversion_trainer.eval_dataset + ) + multiround_generation_metrics = { + f"{metric_key_prefix}_{n_rounds}round_{k}": v + for k, v in multi_round_generation_metrics.items() + } + output.metrics.update(multiround_generation_metrics) + self.num_gen_recursive_steps = 1 + + # self.inversion_trainer.model.cpu() #error!!! + + return output + + def _precompute_hypothesis_and_embedding(self, ds_inputs: Dict[str, ms.Tensor], collator=None,): + '''precompute_hypothesis_and_embedding''' + assert not self.model.training + inputs = collator.tokenizer.pad( + {k: v for k, v in ds_inputs.items() if k != "labels"}, + padding=collator.padding, + max_length=collator.max_length, + pad_to_multiple_of=collator.pad_to_multiple_of, + return_tensors=collator.return_tensors, + ) + + ( + frozen_embeddings, + hypothesis_input_ids, + hypothesis_attention_mask, + hypothesis_embedding, + ) = self._get_hypothesis_uncached(inputs=inputs) + ds_inputs["frozen_embeddings"] = frozen_embeddings.cpu() + ds_inputs["hypothesis_embedding"] = hypothesis_embedding.cpu() + + # cut padding so we can batch by length later + ds_inputs["hypothesis_input_ids"] = [] + ds_inputs["hypothesis_attention_mask"] = [] + #.cpu() is pytorch function, prepare to change in the corrector phase. + for input_ids, attention_mask in zip(hypothesis_input_ids.cpu(), hypothesis_attention_mask.cpu()): + num_tokens = attention_mask.sum() + ds_inputs["hypothesis_input_ids"].append(input_ids[: num_tokens + 1]) + ds_inputs["hypothesis_attention_mask"].append( + attention_mask[: num_tokens + 1] + ) + print("input_ids[0]:", self.tokenizer.decode(ds_inputs["input_ids"][0])) + print( + "hypothesis_input_ids[0]:", + self.tokenizer.decode(ds_inputs["hypothesis_input_ids"][0]), + ) + return ds_inputs + + def _preprocess_dataset_hypotheses(self, dataset: datasets.Dataset, filter_correct_examples: bool = False): + + ''' + In each model directory, we store a copy of the dataset with hypotheses + generated by the model that's checkpointed in this directory. This + won't scale well, but hopefully we don't do this with too many models, + and precomputing 5M hypotheses on A100 takes ~8 hours, so they're worth + storing. + + Note that the dataset fingerprint changes with calls to select() + so we won't overwrite the big dataset files when we use tiny subsets + during testing. + cache_dir = os.environ["VEC2TEXT_CACHE"] + ''' + cache_dir = os.environ.get( + "VEC2TEXT_CACHE", os.path.expanduser("~/.cache/inversion") + ) + assert os.path.exists(cache_dir) + + # pylint: disable=W0212 + cache_path = os.path.join(cache_dir, f"{dataset._fingerprint}_hypotheses.cache") + + if not os.path.exists(cache_path): + print(f"\t[{dataset.builder_name}] Saving hypotheses to path {cache_path}") + + dataset = dataset_map_single_worker( + dataset=dataset, + map_fn=functools.partial( + self._precompute_hypothesis_and_embedding, + collator=self.data_collator, + ), + batched=True, + batch_size=(self.args.train_batch_size * 2), + desc="Precomputing hypotheses for data", + num_proc=None + + ) + + if filter_correct_examples: + old_length = len(dataset) + + def embedding_is_not_correct(ex): + return ( + ~ops.isclose( + ex["frozen_embeddings"], + ex["hypothesis_embedding"], + ).all(axis=1) + ).tolist() + + dataset = dataset.filter( + embedding_is_not_correct, + batched=True, + batch_size=1024, + ) + print(f"filtered {old_length} datapoints to {len(dataset)}") + dataset.save_to_disk(cache_path) + else: + logging.info("Loading hypotheses from path %s", cache_path) + print( + f"\t[{dataset.builder_name}] Loading hypotheses from path {cache_path}" + ) + dataset = datasets.load_from_disk(cache_path) + return dataset, cache_path + + def precompute_hypotheses(self) -> None: + """Generates and embeds hypotheses using `self.inversion_trainer`. + + Returns path to precomputed-and-saved train dataset, which is sometimes + useful for outside processes. + """ + logger.info("Precomputing frozen embedding & hypotheses before training") + + self.train_dataset, _ = self._preprocess_dataset_hypotheses( + dataset=self.train_dataset, filter_correct_examples=True + ) + for k, v in self.eval_dataset.items(): + self.eval_dataset[k], _ = self._preprocess_dataset_hypotheses( + dataset=v, filter_correct_examples=False + ) + + def _inner_training_loop(self, *args, **kwargs): + '''inner training loop''' + + # Don't let tokenizers run in parallel mode. + # os.environ["TOKENIZERS_PARALLELISM"] = "False" + + self.model.eval() + # self.model.to(self.args.device) + #self.inversion_trainer.model + #self.precompute_hypotheses() + self.model.train() + # self.inversion_trainer.model.cpu() + return super()._inner_training_loop(*args, **kwargs) + + def generate(self, inputs: Dict, generation_kwargs: Dict, num_recursive_steps: int = None, + sequence_beam_width: int = None,) -> ms.Tensor: + """Generates text using self-correction. + + Args: + inputs (Dict[str, ms.Tensor]): inputs for generation, like the input embedding, hypothesis, + and hypothesis embedding + generation_kwargs (Dict): dictionary of parameters for generation, will be passed on to the model + sequence_beam_width (int): beam width for sequence-level beam search + Returns: + generated_ids (ms.Tensor): ids of generated text + """ + + try: + frozen_embeddings = inputs["frozen_embeddings"] + hypothesis_input_ids = inputs["hypothesis_input_ids"] + hypothesis_attention_mask = inputs["hypothesis_attention_mask"] + hypothesis_embedding = inputs["hypothesis_embedding"] + except KeyError: + ( + frozen_embeddings, + hypothesis_input_ids, + hypothesis_attention_mask, + hypothesis_embedding, + ) = self._get_hypothesis_uncached(inputs=inputs) + + # Add beam dimension: + # (batch, ...) -> (batch, beam, ...) + inputs["frozen_embeddings"] = frozen_embeddings + inputs["hypothesis_input_ids"] = hypothesis_input_ids + inputs["hypothesis_attention_mask"] = hypothesis_attention_mask + inputs["hypothesis_embedding"] = hypothesis_embedding + # print("generating with sequence_beam_width:", (sequence_beam_width or self.sequence_beam_width)) + + num_recursive_steps = num_recursive_steps or self.num_gen_recursive_steps + sequence_beam_width = sequence_beam_width or self.sequence_beam_width + num_recursive_steps_so_far = 0 + + total_best_scores_seen = None # Track best scores for early stopping + + while num_recursive_steps >= 1: + gen_text_ids, hypothesis_embedding, best_scores = self._generate_with_beam( + inputs=inputs, + generation_kwargs=generation_kwargs, + num_recursive_steps=num_recursive_steps, + num_recursive_steps_so_far=num_recursive_steps_so_far, + sequence_beam_width=sequence_beam_width, + ) + inputs["hypothesis_input_ids"] = gen_text_ids + inputs["hypothesis_attention_mask"] = ( + gen_text_ids != self.model.encoder_decoder.config.pad_token_id + ).int() + inputs["hypothesis_embedding"] = hypothesis_embedding + # step counters + num_recursive_steps -= 1 + num_recursive_steps_so_far += 1 + # early stopping + if best_scores is not None: + if (total_best_scores_seen is not None) and ops.isclose(best_scores, total_best_scores_seen, atol=1e-3): + print( + "scores stopped increasing! stopping early after", + num_recursive_steps_so_far, + "steps", + ) + break + best_scores = total_best_scores_seen + + return gen_text_ids + + def generate_with_hypotheses(self, inputs: Dict, generation_kwargs: Dict, num_recursive_steps: int = None, + sequence_beam_width: int = None,) -> Tuple[ms.Tensor, ms.Tensor]: + """Generates text using self-correction. Works exactly like generate(), but returns all the intermediate hypotheses steps. + + Args: + inputs (Dict[str, ms.Tensor]): inputs for generation, like the input embedding, hypothesis, + and hypothesis embedding + generation_kwargs (Dict): dictionary of parameters for generation, will be passed on to the model + sequence_beam_width (int): beam width for sequence-level beam search + Returns: + generated_ids (List[ms.Tensor]): ids of generated text, for each hypothesis sequence + hypothesis_embeddings (List[ms.Tensor]): embeddings of each hypothesis sequence + """ + try: + frozen_embeddings = inputs["frozen_embeddings"] + hypothesis_input_ids = inputs["hypothesis_input_ids"] + hypothesis_attention_mask = inputs["hypothesis_attention_mask"] + hypothesis_embedding = inputs["hypothesis_embedding"] + except KeyError: + ( + frozen_embeddings, + hypothesis_input_ids, + hypothesis_attention_mask, + hypothesis_embedding, + ) = self._get_hypothesis_uncached(inputs=inputs) + + # Add beam dimension: + # (batch, ...) -> (batch, beam, ...) + inputs["frozen_embeddings"] = frozen_embeddings + inputs["hypothesis_input_ids"] = hypothesis_input_ids + inputs["hypothesis_attention_mask"] = hypothesis_attention_mask + inputs["hypothesis_embedding"] = hypothesis_embedding + + num_recursive_steps = num_recursive_steps or self.num_gen_recursive_steps + sequence_beam_width = sequence_beam_width or self.sequence_beam_width + num_recursive_steps_so_far = 0 + + total_best_scores_seen = None # Track best scores for early stopping + + ground_truth_embedding = inputs["hypothesis_embedding"] + hypothesis_embeddings = [ground_truth_embedding] # Track hypothesis embeddings + + hypothesis_ids = [inputs["hypothesis_input_ids"]] # Track hypothesis ids + + while num_recursive_steps >= 1: + gen_text_ids, hypothesis_embedding, best_scores = self._generate_with_beam( + inputs=inputs, + generation_kwargs=generation_kwargs, + num_recursive_steps=num_recursive_steps, + num_recursive_steps_so_far=num_recursive_steps_so_far, + sequence_beam_width=sequence_beam_width, + ) + inputs["hypothesis_input_ids"] = gen_text_ids + inputs["hypothesis_attention_mask"] = ( + gen_text_ids != self.model.encoder_decoder.config.pad_token_id + ).int() + inputs["hypothesis_embedding"] = hypothesis_embedding + # step counters + num_recursive_steps -= 1 + num_recursive_steps_so_far += 1 + # early stopping + + if best_scores is not None: + closest_idx = ops.argmax(best_scores) + if (total_best_scores_seen is not None) and ops.isclose(best_scores, total_best_scores_seen, atol=1e-3): + print( + "scores stopped increasing! stopping early after", + num_recursive_steps_so_far, + "steps", + ) + break + best_scores = total_best_scores_seen + else: + closest_idx = 0 + + hypothesis_embeddings.append(hypothesis_embedding[closest_idx].unsqueeze(0)) + hypothesis_ids.append(gen_text_ids[closest_idx].unsqueeze(0)) + + return hypothesis_ids, hypothesis_embeddings + + + def _generate_with_beam(self, inputs, generation_kwargs, + num_recursive_steps, num_recursive_steps_so_far, sequence_beam_width): + ''' + _generate_with_beam是原来的NLOC==190的函数,拆分成以下多个函数 + 注释为no test for corrector的所有的函数就是为了实现这个模块 + ''' + assert num_recursive_steps >= 1 + frozen_embeddings = inputs["frozen_embeddings"] + + # 准备生成参数 + self._prepare_generation_kwargs(generation_kwargs, sequence_beam_width) + + # 生成初始假设文本 + if num_recursive_steps_so_far == 0 and self.initial_hypothesis_str: + gen_text_ids = self._generate_initial_hypothesis(inputs, frozen_embeddings) + else: + # 调用模型生成文本 + gen_text_ids, transition_scores = self._generate_text(inputs, generation_kwargs) + + # 嵌入生成的假设文本 + hypothesis_embedding = self.embed_generated_hypothesis(input_ids=gen_text_ids) + + # 获取批次大小 + batch_size = self._get_batch_size(frozen_embeddings, sequence_beam_width, num_recursive_steps_so_far) + + # 执行 Beam Search + best_scores = None + if gen_text_ids.shape[0] > batch_size: + gen_text_ids, hypothesis_embedding, best_scores = self._perform_beam_search( + inputs, + gen_text_ids, + hypothesis_embedding, + batch_size, + sequence_beam_width, + num_recursive_steps, + transition_scores + ) + + + # 确保嵌入的维度与冻结嵌入一致 + assert hypothesis_embedding.shape[-1] == inputs["frozen_embeddings"].shape[-1] + return gen_text_ids, hypothesis_embedding, best_scores + + def _prepare_generation_kwargs(self, generation_kwargs, sequence_beam_width): + '''no test for corrector''' + if not generation_kwargs["do_sample"]: + num_return_sequences = max(sequence_beam_width, generation_kwargs.get("num_beams", 1)) + generation_kwargs["num_beams"] = num_return_sequences + generation_kwargs["num_return_sequences"] = num_return_sequences + + def _generate_initial_hypothesis(self, inputs, frozen_embeddings): + '''no test for corrector''' + batch_size = frozen_embeddings.shape[0] + gen_text_ids = self.embedder_tokenizer( + [self.initial_hypothesis_str], + return_tensors="ms", + max_length=inputs["hypothesis_input_ids"].shape[1], + truncation=True, + padding="max_length", + )["input_ids"].repeat((batch_size, 1)) + + bos_token_id = self.model.encoder_decoder.config.decoder_start_token_id + bos_token_ids = ms.ops.ones((batch_size, 1), dtype=ms.int64) * bos_token_id + return ms.ops.cat((bos_token_ids, gen_text_ids[:, :-1]), axis=1) + + def _generate_text(self, inputs, generation_kwargs): + '''no test for corrector''' + outputs = self.model.generate( + inputs=inputs, + generation_kwargs=generation_kwargs, + return_dict_in_generate=True, + ) + gen_text_ids = outputs.sequences + transition_scores = self.model.encoder_decoder.compute_transition_scores( + outputs.sequences, + outputs.scores, + normalize_logits=True + ) + return gen_text_ids, transition_scores + + def _get_batch_size(self, frozen_embeddings, sequence_beam_width, num_recursive_steps_so_far): + '''no test for corrector''' + if num_recursive_steps_so_far == 0: + return frozen_embeddings.shape[0] + return int(frozen_embeddings.shape[0] / sequence_beam_width) + def _perform_beam_search(self, inputs, gen_text_ids, hypothesis_embedding, + batch_size, sequence_beam_width, num_recursive_steps, transition_scores): + '''no test for corrector''' + if sequence_beam_width == 1: + gen_text_ids, hypothesis_embedding = self._beam_search_regular( + gen_text_ids, hypothesis_embedding, inputs, batch_size, transition_scores + ) + elif num_recursive_steps == 1: + gen_text_ids, hypothesis_embedding = self._beam_search_base_case( + gen_text_ids, hypothesis_embedding, inputs, batch_size, transition_scores + ) + else: + gen_text_ids, hypothesis_embedding = self._beam_search_top_k( + gen_text_ids, hypothesis_embedding, + inputs, + batch_size, sequence_beam_width, + num_recursive_steps, + transition_scores + ) + + return gen_text_ids, hypothesis_embedding, transition_scores.max(1).values.cpu() + + def _beam_search_regular(self, gen_text_ids, + hypothesis_embedding, inputs, batch_size, transition_scores): + '''no test for corrector''' + beam_width = int(gen_text_ids.shape[0] / batch_size) + distances_per_beam = ms.ops.CosineSimilarity(dim=2)( + hypothesis_embedding.reshape((batch_size, beam_width, -1)), + inputs["frozen_embeddings"][:, None, :] + ) + + scores = transition_scores.reshape((batch_size, beam_width)) + best_idx_in_beam = ms.ops.Argmax()(scores, axis=1) + + #hypothesis_embedding = hypothesis_embedding.reshape((batch_size, beam_width, -1))[ms.ops.arange(batch_size), best_idx_in_beam] + reshaped_embedding = hypothesis_embedding.reshape((batch_size, beam_width, -1)) + batch_indices = ms.ops.arange(batch_size) + hypothesis_embedding = reshaped_embedding[batch_indices, best_idx_in_beam] + + gen_text_ids = gen_text_ids.reshape((batch_size, beam_width, -1))[ms.ops.arange(batch_size), best_idx_in_beam] + + return gen_text_ids, hypothesis_embedding + + def _beam_search_base_case(self, gen_text_ids, + hypothesis_embedding, inputs, batch_size, transition_scores): + '''no test for corrector''' + beam_width = int(gen_text_ids.shape[0] / batch_size) + frozen_embeddings_per_beam = inputs["frozen_embeddings"][:, None, :].repeat((1, beam_width, 1)) + + distances_per_beam = ms.ops.CosineSimilarity(dim=2)( + hypothesis_embedding.reshape((batch_size, beam_width, -1)), + frozen_embeddings_per_beam + ) + + scores = transition_scores.reshape((batch_size, beam_width)) + best_idx_in_beam = ms.ops.Argmax()(scores, axis=1) + + reshaped_hypothesis_embedding = hypothesis_embedding.reshape((batch_size, beam_width, -1)) + + hypothesis_embedding = reshaped_hypothesis_embedding[ms.ops.arange(batch_size), best_idx_in_beam] + + gen_text_ids = gen_text_ids.reshape((batch_size, beam_width, -1))[ms.ops.arange(batch_size), best_idx_in_beam] + + return gen_text_ids, hypothesis_embedding + + def _beam_search_top_k(self, gen_text_ids, hypothesis_embedding, + inputs, batch_size, sequence_beam_width, num_recursive_steps, transition_scores): + '''no test for corrector''' + beam_width = int(gen_text_ids.shape[0] / batch_size) + assert beam_width % sequence_beam_width == 0, "inner beam width must divide sequence beam width" + + expanded_frozen_embeddings = inputs["frozen_embeddings"][:, None, :].repeat((1, sequence_beam_width, 1)) + + + frozen_embeddings_per_beam = expanded_frozen_embeddings.reshape( + (batch_size, sequence_beam_width * num_recursive_steps, -1) + ) + + + distances_per_beam = ms.ops.CosineSimilarity(dim=2)( + hypothesis_embedding.reshape((batch_size, beam_width, -1)), + frozen_embeddings_per_beam + ) + + scores = transition_scores.reshape((batch_size, beam_width)) + best_idx_in_beam_total = ms.ops.TopK(k=beam_width)(scores, axis=1).indices + hypothesis_embedding = hypothesis_embedding.reshape((batch_size, beam_width, -1)) + gen_text_ids = gen_text_ids.reshape((batch_size, beam_width, -1)) + + + best_idx_in_beam = self._select_best_idx_in_beam( + best_idx_in_beam_total, + gen_text_ids, + sequence_beam_width + ) + #原来的太长了,改用局部变量 + reshaped_hypothesis_embedding = hypothesis_embedding.reshape((batch_size, beam_width, -1)) + indices = ms.ops.arange(batch_size)[:, None] + hypothesis_embedding = reshaped_hypothesis_embedding[indices, best_idx_in_beam] + + #原来的太长了,改用局部变量 + reshaped_gen_text_ids = gen_text_ids.reshape((batch_size, beam_width, -1)) + indices = ms.ops.arange(batch_size)[:, None] + gen_text_ids = reshaped_gen_text_ids[indices, best_idx_in_beam] + + return gen_text_ids, hypothesis_embedding + + def _select_best_idx_in_beam(self, best_idx_in_beam_total, gen_text_ids, sequence_beam_width): + + '''no test for corrector''' + best_idx_in_beam = [] + for batch_idx in range(len(best_idx_in_beam_total)): + gen_text_set = set() # track uniqueness + best_idx_in_beam.append([]) + for j in best_idx_in_beam_total[batch_idx].tolist(): + gen_text_i = tuple(gen_text_ids[batch_idx, j].tolist()) + if gen_text_i not in gen_text_set: + gen_text_set.add(gen_text_i) + best_idx_in_beam[batch_idx].append(j) + if len(best_idx_in_beam[batch_idx]) == sequence_beam_width: + break + best_idx_in_beam = ms.Tensor(best_idx_in_beam) + return best_idx_in_beam + + + def get_frozen_embeddings(self, embedder_input_ids: ms.Tensor, embedder_attention_mask: ms.Tensor,) -> ms.Tensor: + '''get frozen embeddings''' + + + frozen_embeddings = self.inversion_trainer.call_embedding_model( + input_ids=embedder_input_ids, + attention_mask=embedder_attention_mask, + ) + + return frozen_embeddings + + def embed_generated_hypothesis(self, input_ids: ms.Tensor) -> ms.Tensor: + """Embeds a generated hypothesis. Has to remove EOS token and add BOS token + at the beginning. + """ + inputs_str = self.tokenizer.batch_decode(input_ids, skip_special_tokens=True) + emb_input_ids = self.embedder_tokenizer( + inputs_str, + max_length=self.model.config.max_seq_length, + truncation=True, + padding="max_length", + return_tensors="ms", + ) + return self.get_frozen_embeddings( + embedder_input_ids=emb_input_ids.input_ids, + embedder_attention_mask=emb_input_ids.attention_mask, + ) + + def _get_hypothesis_uncached(self, inputs: Dict[str, ms.Tensor]) -> ms.Tensor: + ''' + get hypothesis uncached + ''' + if "frozen_embeddings" in inputs: + frozen_embeddings = inputs["frozen_embeddings"] + elif "embedder_input_ids" in inputs: + frozen_embeddings = self.get_frozen_embeddings( + embedder_input_ids=inputs["embedder_input_ids"], + embedder_attention_mask=inputs["embedder_attention_mask"], + ) + else: + assert ( + "input_ids" in inputs + ), f"cannot generate hypothesis with input keys: {inputs.keys()}" + frozen_embeddings = self.embed_generated_hypothesis( + input_ids=inputs["input_ids"] + ) + + generation_kwargs = { + "early_stopping": False, + "num_beams": 1, + "do_sample": False, + "no_repeat_ngram_size": 0, + "max_length": self.model.config.max_seq_length, + } + + hypothesis_input_ids = self.inversion_trainer.model.generate_corrector( + inputs={ + "frozen_embeddings": frozen_embeddings, + }, + generation_kwargs=generation_kwargs, + ) + hypothesis_attention_mask = ( + hypothesis_input_ids != self.model.encoder_decoder.config.pad_token_id + ) + hypothesis_embedding = self.embed_generated_hypothesis( + input_ids=hypothesis_input_ids + ) + return ( #打个断点,检查一下数据都对不对 + frozen_embeddings, + hypothesis_input_ids, + hypothesis_attention_mask, + hypothesis_embedding, + ) + #pylint: disable=W0613 + def compute_loss(self, model: CorrectorEncoderModel, inputs: Dict[str, ms.Tensor], + return_outputs: bool = False,) -> Union[Tuple[ms.Tensor, Dict[str, ms.Tensor]], ms.Tensor]: + ''' + compute loss + ''' + #batch_size, seq_length = inputs["input_ids"].shape + + try: + frozen_embeddings = inputs["frozen_embeddings"] + hypothesis_input_ids = inputs["hypothesis_input_ids"] + hypothesis_attention_mask = inputs["hypothesis_attention_mask"] + hypothesis_embedding = inputs["hypothesis_embedding"] + except KeyError: + print("+++++++++") + ( + frozen_embeddings, + hypothesis_input_ids, + hypothesis_attention_mask, + hypothesis_embedding, + ) = self._get_hypothesis_uncached(inputs=inputs) + + labels = inputs["labels"] + outputs = self.model( + embedding=frozen_embeddings, + hypothesis_embedding=hypothesis_embedding, + hypothesis_input_ids=hypothesis_input_ids, + hypothesis_attention_mask=hypothesis_attention_mask, + labels=labels, + ) + return outputs.loss + + #pylint: disable=W0613 + def prediction_step(self, model: ms.nn.Cell, inputs: Dict[str, Union[ms.Tensor, Any]], prediction_loss_only: bool, + ignore_keys: Optional[List[str]] = None,): + """Perform an evaluation step on `model` using `inputs`. Called during self.evalaute()""" + inputs = {key: value for key, value in inputs.items()} + loss = self.compute_loss(model=model, inputs=inputs) + + logits, labels = None, None + return loss, logits, labels + + def _remap_state_dict(self, state_dict: Dict) -> Dict: + """Edit keys posthumously on model load.""" + # Rename keys for backward compatibility w/ model trained before + # we stopped sharing params between the ff layers + if {"embedding_transform.3.weight", "embedding_transform.3.bias",} <= state_dict.keys(): + print( + "Renaming keys", + {"embedding_transform.2.weight", "embedding_transform.2.bias"}, + "for backward compatibility.", + ) + state_dict["embedding_transform_1.0.weight"] = state_dict.pop( + "embedding_transform.0.weight" + ) + state_dict["embedding_transform_1.0.bias"] = state_dict.pop( + "embedding_transform.0.bias" + ) + state_dict["embedding_transform_1.3.weight"] = state_dict.pop( + "embedding_transform.3.weight" + ) + state_dict["embedding_transform_1.3.bias"] = state_dict.pop( + "embedding_transform.3.bias" + ) + # + state_dict["embedding_transform_2.0.weight"] = state_dict[ + "embedding_transform_1.0.weight" + ] + state_dict["embedding_transform_2.0.bias"] = state_dict[ + "embedding_transform_1.0.bias" + ] + state_dict["embedding_transform_2.3.weight"] = state_dict[ + "embedding_transform_1.3.weight" + ] + state_dict["embedding_transform_2.3.bias"] = state_dict[ + "embedding_transform_1.3.bias" + ] + # + state_dict["embedding_transform_3.0.weight"] = state_dict[ + "embedding_transform_1.0.weight" + ] + state_dict["embedding_transform_3.0.bias"] = state_dict[ + "embedding_transform_1.0.bias" + ] + state_dict["embedding_transform_3.3.weight"] = state_dict[ + "embedding_transform_1.3.weight" + ] + state_dict["embedding_transform_3.3.bias"] = state_dict[ + "embedding_transform_1.3.bias" + ] + return state_dict diff --git a/examples/privacy/embedding_inversion/vec2text/trainers/inversion.py b/examples/privacy/embedding_inversion/vec2text/trainers/inversion.py new file mode 100644 index 0000000..07936be --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/trainers/inversion.py @@ -0,0 +1,68 @@ +''' +inversion trainer +''' +from datetime import datetime +from typing import Dict + +import mindspore as ms + +from trainers.base import BaseTrainer + +class InversionTrainer(BaseTrainer): + + '''InversionTrainer''' + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.tokenizer = self.model.tokenizer + self.embedder_tokenizer = self.model.embedder_tokenizer + self.call_embedding_model = self.model.call_embedding_model + self.embedder = self.model.embedder + self.counter = 0 + self.last_time_logger = datetime.now() + self.each_time_logger = datetime.now() + + def generate(self, inputs: Dict, generation_kwargs: Dict) -> ms.Tensor: + return self.model.generate(inputs=inputs, generation_kwargs=generation_kwargs) + + def training_step(self, model: ms.nn.Cell, inputs: Dict[str, ms.Tensor]) -> ms.Tensor: + """ + Performs a training step. we override to compute data-specific metrics. + """ + # TODO: Log training metrics from below... (How to do with huggingface?) + self.counter += 1 + print(self.counter, " ", datetime.now() - self.each_time_logger) + self.each_time_logger = datetime.now() + + if self.counter % 100 == 0: + print("this 100 step consume:") + print(datetime.now()-self.last_time_logger) + self.last_time_logger = datetime.now() + self._compute_data_metrics(inputs=inputs) + # self.log({ f"train/{k}": v for k,v in metrics.items() }) + return super().training_step(model, inputs) + + + def _remap_state_dict(self, state_dict: Dict) -> Dict: + """Edit keys posthumously on model load.""" + # Rename keys for backward compatibility w/ model trained before + # we added extra dropout to the model + if { + "embedding_transform.2.weight", + "embedding_transform.2.bias", + } <= state_dict.keys(): + print( + "Renaming keys", + {"embedding_transform.2.weight", "embedding_transform.2.bias"}, + "for backward compatibility.", + ) + state_dict["embedding_transform.3.weight"] = state_dict.pop( + "embedding_transform.2.weight" + ) + state_dict["embedding_transform.3.bias"] = state_dict.pop( + "embedding_transform.2.bias" + ) + return state_dict + + #def _prepare_input(self, x): + #return None diff --git a/examples/privacy/embedding_inversion/vec2text/utils/__init__.py b/examples/privacy/embedding_inversion/vec2text/utils/__init__.py new file mode 100644 index 0000000..9ab8dcc --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/utils/__init__.py @@ -0,0 +1,4 @@ +''' +init +''' +from .utils import * # noqa: F401,F403 diff --git a/examples/privacy/embedding_inversion/vec2text/utils/utils.py b/examples/privacy/embedding_inversion/vec2text/utils/utils.py new file mode 100644 index 0000000..0903b2b --- /dev/null +++ b/examples/privacy/embedding_inversion/vec2text/utils/utils.py @@ -0,0 +1,108 @@ +''' +utiliaztions for training +''' + +import multiprocessing +import os +from typing import Callable + +import tqdm +import datasets +import mindspore as ms +from mindnlp.transformers import AutoTokenizer + +datasets.disable_caching() + +def emb(model: ms.nn.Cell, input_ids: ms.Tensor, attention_mask: ms.Tensor) -> ms.Tensor: + model.set_train(False) + embedding = model.call_embedding_model( + input_ids=input_ids, attention_mask=attention_mask + ) + model.set_train(True) + return embedding + +def get_world_size() -> int: + try: + return os.environ.get("WORLD_SIZE", 1) + except (RuntimeError, ValueError): + return 1 + + +def get_num_proc() -> int: + world_size: int = get_world_size() + try: + # os.sched_getaffinity respects schedulers, unlike cpu_count(), but it's only available + # on some Unix platforms, so we support both! + return len(os.sched_getaffinity(0)) // world_size # type: ignore[attr-defined] + except AttributeError: + return multiprocessing.cpu_count() // world_size + +#pylint: disable=C0103 +def embed_all_tokens(model: ms.nn.Cell, tokenizer: AutoTokenizer): + """Generates embeddings for all tokens in tokenizer vocab.""" + i = 0 + model.embedder.eval() + batch_size = 1024 + all_token_embeddings = [] + v = tokenizer.vocab_size + # + # DPR has CLS and SEP. + # GTR has no CLS or start token at all, and has EOS at the end. + CLS = tokenizer.cls_token_id + SEP = (tokenizer.sep_token_id) or (tokenizer.eos_token_id) + assert SEP is not None + # + # device = next(model.parameters()).device + pbar = tqdm.tqdm( + desc="generating token embeddings", colour="#008080", total=v, leave=False + ) + while i < v: + # + minibatch_size = min(v - i, batch_size) + inputs = ms.arange(i, min(i + minibatch_size, v)) + # + if CLS is not None: + input_ids = ms.stack( + [ + ms.tensor([CLS]).repeat(len(inputs)), + inputs, + ms.tensor([SEP]).repeat(len(inputs)), + ] + ).T + else: + input_ids = ms.stack([inputs, ms.tensor([SEP]).repeat(len(inputs))]).T + # input_ids = input_ids.to(device) + # + attention_mask = ms.ones_like(input_ids) + # + model.set_train(False) + token_embeddings = emb(model, input_ids, attention_mask) + model.set_train(True) + all_token_embeddings.extend(token_embeddings) + i += batch_size + pbar.update(batch_size) + # + all_token_embeddings_tensor: ms.Tensor = ms.stack(all_token_embeddings) + assert all_token_embeddings_tensor.shape == (tokenizer.vocab_size, 768) + + all_token_embeddings_tensor /= all_token_embeddings_tensor.norm( + p=2, dim=1, keepdim=True + ) + return all_token_embeddings_tensor + + +def convert_to_tensor(data): + return ms.Tensor(data, ms.int64) +def add_index(data, idx): + # + data["idx"] = idx + + return data + +def dataset_map_single_worker(dataset, map_fn: Callable, *args, **kwargs) -> datasets.Dataset: + # kwargs["num_proc"] = kwargs.get("num_proc", 1) + + das = dataset.map(map_fn, *args, **kwargs) + return das + +manifest_object = None -- Gitee

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 literal 0 HcmV?d00001 diff --git a/examples/privacy/embedding_inversion/vec2text/img/comparison.png b/examples/privacy/embedding_inversion/vec2text/img/comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..c66ebb5869f934e7c5c89d4482e8424e679dc89e GIT binary patch literal 36931 zcmdSAcT`i|*De|hpeSGgm5#54-kX4ciULaS9Ymx<=mY`*L;)26MT&Hg-g~GCA_7XU zp@a|xX$cT1p(H@=4!*zd+&k`f|F~z|amKlO42A)-_gZ_cx#oQ4GoSfJS6hvNo{b&^ z0x>*Rf2a=v(IkODCvwiv0)N@G{&fQQ=Y)^G+5=F<0LKdO%W22^TK7Sq>bP?Uwlu)+ zXFb);d_W+^4(iW|ZjYkpAW+=o`DgQ@+ z#eyY)UL?%vqU94KoH;WKGvwkfgXdKi77eR&0*@Y5|C4PTtb2v!f^3~gd03~&+udhb zE}@6yB?Y;TjP$;nl0RnYGZP8`P1N3txG zw=#G?@0P;`ISXnJ0_kQz*Js+(1JxZX?~-!z9e%ZhZuNjb*`$N0LuKGaj<4zqLZ|-y zcXI(7tz{zD1tahsP-&M#&N3`~Ctj zVQCxCcviy_zgN!l?@r#c zR>r`3ClwQ6=VtluYBzVeazTIkzrnKK>%H+`UqOS1pK3H6&FljA-+)h^$(FxJH9npznDWELoR+jG z(PifXtD4H)-7ihb8(gDp^~_ePL7l@^2-T7{%cGhVapG(J8&^P}I*#$qiS$1=BuR}{ z{flV_$uQ=7!mg4(HyzvHfLY?65GvBrY!4Lz7kYVx#iOy5F~L*c3ogj?b!Q!Qq(jlc z1P4WBLX%(n22rqzV_Y=Qt z_rF4p98{HC$Fw5^iNt%Z<33A_i+w8cK?}o7!qVrk!ol;RpoPmuCfzyJNiUxSipETE z?CzbsxA4~vK8#&9JK>z3hFg|{f^R`ZUAfqj#UIBNt~Iz3Fg)rnq(Gn|uI7C#x3ZaC zA!v;Lc#~g|{9B0q_gmbZ3+F~%dss#A216FZYF#1a=(Xp0HX#>8{Z2RmRPZ1wtM6i_%FDNMNlu^bmcQLK5)ldKFO}S$t9# zc6^WS`!2=I&9B^ujZ4JB>bKGkUP^3~JMP`Pv#2ER;_i=0y*8@Cl_KQ~xt{y!9sYF& zfFsdo=EH}a>hQ363JzHnCi8`vKcu>iuvTUsyaV)O7Uhf5v%VQwW$`8KVaYzGcUX30 zc(2=e#~gLx8WwDd)wUm%D4{;OaN%&FUsN@Asz^N9FA53*T^LX{D^-qY*Yov3{PZC% zjcA38tC+p00YB3awa?!9Yc}yv0l|B*o29IT#kHmx$BBOTVqXQ-S6^I;7A?9;xy^CJ zSo+Z=wH0A*5a_l4wjTvg)V-}si=#XCV*m8R=0)MmYe>i0hI~tlU~-#Vu@oEAeoz{` z-eAfaMj*hMwHYRhtb5V!!1Id+~6eq?-s6bQ)=?RDpCF+HL=6+%I?K?L!_VSNUp`hwvHI&o+^-6Ef=hnfIG6e z{w{|hvZ`?eexSV{SvDz@@0ASl*{(gCk7JCpWOr7C9nSW+uq+mOv`qmvM?-0EEXn)OGcCsb?@h|= zUMly1o5p01U*REcc13|ENSJ%r$JL^T*xmMUS4w-1>Xq7LBjajY50lo;F-C3tp;7E# z>u5SNO9Z6$(d;)&zTu!u_d0p-AUA#J#RN z3JvLar+B3H;aAPcX%P#x-D{cKGjwpn=6%A!c#?MpY&rHrZxN4Kmfe=tQSZ56s(U{^ zzL6YN8CPZ0hQ+vSnT4`|aG;Q=)thZk-2fctu{~~%h+UPMFxPWs@h$Sv8e-ZYzcm^AYfO-cqcVHg`a z+!__qj7k2r6@5_Y1;`j8x^Jtpax;ANDU&r#3!!Xp2A>~{bKmNnHkiua_z;I&5A7$$ zwXQ^9*K6LKw2jF>Xh}Bt^s7NsESGyg`QXtt*zJg6C=()?-N6-^+Ln|%f(OO`Iq|#G zS{|)Vz|Vv3S*`rP!e;*k8bJShqpd}qP_wOiVITyVOoOX3r}8i)>;1|s%IE>sgt9}0 znes5#LtgkaJpy{Kvxv4Iop$ zd>ERj6-5E#6HS6goRE8Mp@GLZmUzjHx8+ zhy;!HrEa_m#P{bf#^gt9+0DCtOf&UA?$GuTxQyfmte5mWVry{AFI+ovQi9?dGnXR$eU3|up-jx@_p)`=N$ ztw0V5QI_L&J~*XL>|eEZhi=adDxKs30C~1=14gP#GhJ*z`;oz-_t(dTDf5x%YvbyK z?1kH|jd@rprm2GOVHgrjjF=*FBweOiUAjL51`{hogX}^3#rGF%BH8jXwN5cAe%)5eZi8^tjYAqX*z)C# z&q23hZY_?sQTh+^CXRMK_!>d?$HX!=e zZpubXdN%P;xzzv#RbU*i*SWh>mC?g@OBQfI0=Z=>w&`92oo_^nbt`|j1=sXwhCF@d zMEH1LjmuHhN*<+cG+V3^+h<;pmsKfk$9LZFT;x|Lt84V9)V1v-j_M#gA$l<*qk~*5 za;HCq&kiTYSjvXv5OGtBWkTpp4^XLUQD*KEZSjYK zUhh%E9}5N@7K3N?JGNurFh$5{KI#=;k0q}fMzWQR7HGo(1fQot9LGQ~E`<^Yv4OU` zrTV5N&6IzW8mY+Ee7Rtx`I0IFDVv|kVUQgZR_C-#+kn*9 zSqL^vF4jJm={tUbHIdE6)UUbgrM9Hu6&yIbri8QzQ{&E3@SknHn$t$EJK%QYp{ zW==(~d8B)0W_8*^9U_GjE8=?#GyA}HyKlwk>18xwQIrEGiyqw@$$|tBXyNCMvC>X* zVOL4zcKT&)`F?GCzE8rk42oW3wlJT_InPR=CvSm;Z7pF;BF;~IlE3dfdz~2=tl!%D z&u3wK4o}@puPeJVrOCqfQqn+zy&}*Q4Aybr{CJ!7qm5$T_&rpXb!nR@($tQ^0t)jL z3h}#d%w#njvobf`M$mERSFx>xUQT|QWVBl`ve&&Xfq&~K`&;`zL)!0x72S$c{8g2# zs|>4{phB5u$I0Cez-#+ku9=iviG#tK(TEwlL`2?FCLRm>1` zlo5qVMue>2ePE3W3Qwr@`fhgM3b}ZK$elod5ImyuTb09bi#r_C!O^jBW*fAB3cEv+ z%B|$VwI9KMa+DkL_pD7D`^ck*D%;6aoLK%GF7=w`v#$L+f$6-Utp-Z96<6C&Mtu^LAe!YaCj?YZd`T z>qD7Qe0!`)zEzOGNc5c%Rt4duChTlAR>+e_l4x2tK`)Ar$& z>khxoc%wv03y6(JR$2Uye_qMc)vcT$_XXoN%D7h6Nq=58-3hn-L@_xZ5nvv5nfKi} zD>|rUV(wRX9yamhU0Anb%UTs!u_du=4}X7a1fEMYa{E*gm?`o53?Wb5(~6w+C`irZRI#1Mcd?B)_HtLhVm;HeXB zCF>u{Q0TceFO2FH8KHV7s=sc3eZpT&;Fc+k7@Rn{M2mMLr&1H zNb-AXOb3|_n($qNWH_ZTe=~j?t{M^Gg?jl_24>==BBQ8tA`>~ESBI>djjtd`YsFX> zv0hOpeHBq031K3Cz9HEYwG zosg3|E8oe%)DI<{wRmEapQOXP5KdO%WWT*~NCUc;4+LZtiypp3mrPE1 zNOk@@efhO-IZ$HeR_TJOQp_E=yn|faN&6W65R0o zpc+JOyl!#LdgPa=tLdM7$xlZ?%anCiEj>>zh#c0mc`^vuONjVg;hGgbc~dbtT6+FR zw|98g&)ssu6TG-OUP1e35xuC;_5`^Joq((?@)IZ3JXf6dQ$zoRls9IQ)>(ttD;;}VBObRaT&yX$Vh;cK z8*V}8)6_=XFWx&GL4Ls$uA^JBgzH-ydv_<=%4+i8#ag%nZ#_+M#TE<7hIhoQl>C!X zB)IcL1YkJ46CDXsPyf$pX`vtw2&Db=V~F6 zqA(K{{+fz&41TQqv`G%3<6qVlP2`D40q<@8UZtrX)OIesbbh};GYG|Ahso#Et(th6 zK3K?^z&^>xJd*La!#{6&O3`yLLoO%vYxdO@C#o@zScoaxfg&xqu5|YwnA_X?W2MuFA>9}+o7tD3LoOC6S{q(AS-}!Vvs)9P zlki^#p3uItg}?g*agqzgK@i$JM5{koD%cJ zA^!t52fpImy(xEFu%WScX?-c2+!*XCxqgW_Bl5BaEF{&S$|glQ$*nit5n4!*919LRatRBcC0R@&g|F^a|HH{2>!gx*I?9teO z&9RgZy(RCT*h1bX8MFsjrbeNn*af1K^pd;yIG9H6zU8#L!*BE)q8ZFrcfX8SvM}m+ zW`xx)<19n&Y~5oO`(a4-!VrXQdn9@gtsiWgQ_z^@wbQp^*2XZrYgH6K4p{+Tt$9BD zz~Zgw8j<@EnTa!O<;x8>YrU+Mrl~2}sMopEsJ8WVj`X+&tZ56^=Lhz~XQea7&Ws?n zuSz#b%%#i=0YIVzXV#HJ zg(eJ7#E4#-#7Qk#=i%UAX5s_;Gmtl{1K;F@Nyoz4-5T| za7MXZm7l7iJZ#-UnAE)5pRiC>~Yp!bc(%uT3y%92Z z;4EZs<(*v}fjJeb_a(m4u@K5GP;^c}iX$@UY~$hw<5PTYv-EF2>PCnye_x%I24CQM zbl-4haI*{FbZQHtbD_#ri9UI|(61s;s9h9zL}QaD|_2hDnfF(Xm`vtp#(6E%VPV7XKaPA4aFg z8;>yTe#?2*GqqdhG7QPN6xTq(rWjBWV~7*GTjQHpIsvQhh{vw`;oZ?}@{cPSTpRJ? zhZbxqsV6{TbH|%JZYMnez}sRrHv@jBs^+aK9( zFUFs%@%UuyZn#p?P}-&5My{|}%l%c0iL>?>^Q5!WZY> z81gb`GXm~K;MLP!FjeAA?m~!$zhZE{vg-m+@#f~{cG3+ufsEv!M8MQo)Hswcf`2rV z7)h`0E!V1iQ)Ng}GOI4%jg9t(y5h}Ix6|d;hsDD7%)p%8Qf5O5oEC54K@D8+1WWN8 zYsBM`=nL1ovXi586Sy8O#+*yU6LZrMf z*5mjt~R&0c6@trbzDIIAfdnP zGLJK7>&c=J5`sx?u`2zeiF}|jLyot3?^XX(W6!jq&4f|5%7PQ11g70P&Z<=GmU_)j z?#(QWjMk5YPB+=j@eLVVn;*?*d2q*N<`V3RJnDfS21rr^qatU&5?7) z$s7y#6VU+zO-C&7^U7N%B^{5@vv;0**;HQUF;^l!rPamy8pVVV){*KRD@8u{G@^RO z8-vF~q!~b`EmH+ zeO`+P!uo>-M5%tY_Us4Gi9F+X=GoX5BO-eH-V~cQx~i`09T7 zb_%bf=%2{y6`wEdJFI-F8s(vDD$|@j0Dj+>w90 zu>JN*atH`MteQ5d-<4XRYVkz%S3KUr9X+id7~JaJBwTNu6};(a@s?2ESvje%I{AZ! zXlOiWkQ}a{d=FJ6Mo&B5@0Sb z?~FA4xXzG#0_54mdCwTuI+8ROL@u9h%TYdl9SKw83zu4bZ`|RCjBGy>DLs8Q`9_@& zDnY?dY-Ejme60yxG zuQ;veWWiuEVfbu+CTF}ZOH*HVrD^>K2@ynu1H{ot4pfKN_~oJ;CvG#)VeuotAe3Hm zmDbD$n7~T#OM9Z>S!;R%ol!fxEq@vR1fu}~Z!M8ydm(;xjQL@Uq9vK>+H;MSvlgfg z+3vRCmexpy^%J^H{x0h^CA*I4oK;ZSSfmg+ zu=%1@{A}X*6W;4{+cPMrcXyumM4|6w@Hq~qiyj?CZ?z1CK5ct4-o|)JA3CFJ zoFxj@F^*|a^!j>7VZ3im&r*FF-C-UsAyHEc*M7+r6H@?oN zZLL6@O7Wo805*F(2A-fKT&lqJ0hQck6@$B2Iw7pLJB&g6#Pm{5xkhhD|>%>mUUpYV)3c;qd&kr0*9 zY83}7*#AhOMWo>&(=B&-7eDVPyQJfOJL`@e)!a(bk;3LO;@P3$CcQXrZs*XlAnnG% zQDmKYR{^a{dlv)yr*aurLZY%|)3j8@{)pfyJ|O{$?o!$V_u@v@$MMYy#rkMnC1BaT zan0Q|4`Y}N`#`Jf7-K8j`D}sbdXsZIv{z{EH$S&h&_0YQV5wC>3WBn`(F*Jg1TVzmyP$l9S< ze_?_s56Z4j&HAaTESv*45yTgO0+g&fV&nqeT(g52G!*}NdMjdDztgw1)Pc$gj=`!p zWR%|fGk2cOp00isA&RV$eEGR*A(fpspps!$x9Y;$49iVpiL&t;f%p1xOI5mp?;d;s z0C2hbp4DS>Ci-RiVdw~HWa}J_D+yw>W6R6-*(q%po-0`oMTGi~@6N2U!V^T?2_?E6 z0`q*+SH@mK08+OsjS=d+z6Iog$L@WbG(j-ot&U&KJ@C^hIzJYbe6`g{W4!oQvJQjc z8oq8Yx>q?i*Ones#N38pE#$m)v=OWr(L>!937nECDt4Slw6TlXPu%JXjSQbnNM5!?$sf^>%wGz2YP-$3h?RLaHU1#$?iMcDoorjP00zh1DhqU$x_ zMq;V8PJaQPC>`2o|K1TcGWMvd%qszFwNsEG;n2CM94LFL1vj#_dV{q)-Sh3SqKNvK zw?j$ zz?!X5t1#3no7qpYtLE#x81x|0BBXy3P!$|s@8g@#CdC~t6c=o1E7uux31$Hmy+v6A zhfizrYfjuW|9&l@q(9!i6nU%&?76)rE5)fG6|lf$9PE&a-0KlM1q#E}d3De_l=e>t zEijo>$i%oJw~qy~V_I?c|32iN{r_Se>w~KFp*fSQpMX;RcT#lx@1}9SADdb7zrU9) zVHCVt50j@CLPB7w|4#38Z}|vN(cTKj7BgWzxKF&z{gd&9^Y}lriPufR_L(6rsVmsR zmZp7@VE=KE`F-Epg;0s5Ea@>0<$$n2=XJtb?%$_TwPzL=XsTBIs9ws?B=r{I<95U}lFEBXrMK#l z2mem9=jDGyt^bd*7WX6}3u3)+a_6XymSnVbrpIgmtU3@MGqIZ6MHMVi_gad)iXHUD z))qRq4R`I>2oSc$vr?uc3)7Yy2E{yttlZexO@iWFSz8F>y&OJY`5k&=u|zJ51KdfU zgP$j?r>;uxc*ZZ$ItMNyqxb+$Zes#Z<3)~b+mt?d;$-+<0Sz-^F= z{0YsgN7T+D9z zU`y|;RIS5Z+gYfOGs^q*;&5QMNP$k<%X1Z#*}=WIP&J*qBu|t~t~-<}ivXaij3RV> zNzwRiU8r(r1!dw&+cWAxA#B`PPuUJABdq2(4W>nGEu}7S!y0!8aXU5=+xvCrTh^+R zSKvF6q_+D!Z?vX8oaFtT{`7E{?e$5)HWEz$jm^08d?Z7kaa#Ru4|j#7JKIF?%CYW+ z-=eDQy~{zrozK_LV)Pn1cUJ0#cxq)8!6V$DA{ z_n6OTdJR1K@WQ$LbZ@RGw{yYWfJ&IuM1u2RWQZyPTe;pS$Ez9pc|Rkdhm}S}=Z(3s zV#p7g8}wi_{iDijk|L;9%LURQbITE#>&_RT+UBKTWQu$mxSsCV4Nl9Y1fx%KGc`!78U=I6f#6TJ`s`U1#r_oL^cHcn)x6U zmhNsbIPCK=SXOw0{HFE@vOLqNov6CSrsV56r)zdw`(=7#X?)rVDo~)P+4K#VB^a1A8|lUQ-tSQwvxoci}b-u!34%M4_m5O zCgTbGpmWC*BsyC4^pd|rO@jwEiR z+F!sV$3F1^I$Cs9@)iFsp>UGewo;H5*kSuxsjy|82%}rW?iR|S=iFsuHon>>Cz*9b z?O{_M!j$v|7k)WfKP?P9Sgr<^-94w98c=SGKa~@@qwnOqPGj=Q`buSH)O@$q$IJRF zHDsW|_Ox)MuxgxBR0ivPg)Q^**i$onPH5J;8KH8>hgt$T^|fkHmya)o{fH!RQHad! z8H)r54>W!gOrr4fW*ag+B`!0J;B}OP666k+x+m3Y9>JpaPhyMg6NAwjlaSnnbLWm; z3T%)c+a2;wi3HnL4m-90m7ISj-Y8-140xByG*Tof?vdZ_2~m}SV^^s1J{L6?6QeIz0CcXrp zyn6nwv`i&R1Nl=kryL5V<$pT1RQiZMq66%|6d6kj&K2$DihqcWMrIZ1ntev9AWTO5 zjGcmpA@kr-Qiz{jE1&Qo`Ay4FG;t`e1rPzC8&S5%-HD~q=GNs+*R>n{)>Pi&uOrRA zm3Ku5PwR4@K6Y$ghLL#9NVGQ_?a|NhaYQU=aXa0*6en#~w42+tXS8R`SgK_0tic+^ zAU~b7IU3Vv$=yn+5FTfA7u>no3<+91P7(2C-`z8I%t(6G!J zBU8>#8^y4Wy59ueA0*Mp@Sq6HeX6p_lao~Ewtn`-F`x0*#)mHHpG{&(YMRf<4E;4; z{qly~THorBv0V!i2n7m>nQEa5KawQI1f{^0nlzU5zk0OnCcAQorQ%-WFO4aXmwo2L zuu5xy=I(mKII9Cr<$+3j0;^-((-f#C4o)02C#e2~02sb8CPba>N@(&+@` z_;9UqNGPV8)kEH?P{hjp?BD5(^CUi0lXqXkCTKiqBq#IZdd%?7 z`ZzjiP7cs{OzT6bk}jZ}J5}QKYQ7N=uFZO$CACE|s9&lvj$V`ZgXbSGCp61;Dd3i` z!^Rq5adh}SLJ%6mVV z;A287yS%oQZ!UioXpBKyOf}%a7&rcowG<)1VEDUb0M-$>!bnL^s%FL}oitdfJObd7 zl{T{2vzrMPCDgb8kVNNQ^?^4Mrj~QD}fC4I6ea^vXtTExNUHcajERGV4}j6 zdbEn{+1+~A)KoWqb8&QUK^oXWqo3Y=X`DnZmck6_@){2)yE-}X{Kb7?Nuv$`4{U?> z9`;`uYfl=v+Uj;Rc3tf@<0l{t?KO*;{zCUp*sLTznn&P94)SIO+5Mc`!mH=$9I=MN zxF-5&9l%u%=yK{YzoYUK)*efZ2qz4&(91*m;r)c0z1+KqkFAAxK;!c1&E>AC;<+|u zuVfS1wwA@Nv;G1dR;UMf!FOM+Gp?PX2Y=Kr#>OSo9KoDhqjXf>2XAzy`tic93}m?` zg>KspyyvZWhCElNomPh(@?9PJnW${Kk>X666Fe4Zj{Y~f9f0*dK8agE6>!M@84YL! z>XzTn1Hncq-UeX%9_UBFi0kFD$+W z8UDJhz}NkQEFh}Q=aGCrwmfU9^usFjp*?PKzg3y1YngGc(QnI2`n=J>BGA&tp22sP z_B#oIldY((kPfLqeblb``+nIZU~G@N;oAV?#_nm9%k6(yEo{%XtiPQ23fzT?hvVz) zj6ED=6UO%Hi1M@EQT+{7`R9otTBO4_*7G~*z@VDq^I~n3Sp|5)MHIf(I7GP<>W2HB zu4|_F$M5qi(BIaoY?=H^LIeQ50fnqS?6Z@~n4wZ?ai@P7+~WKW^089tZy9u|mFjKo zdbDP)i(NC<0ZK0(sy0d^>2dy)09DJtt3E=ep{K<9WSES=6`2dB$Ggl$Y zXA}pSLPtMWjjeUc6MxaU6<1aH9UQthG~|x1oz@x{Rh#YJ7fLYYNG7Pt8_3u&#hGOaf$h?b! z90sDg4M5HHN))k6I1&76DKY>kX2YL~+8(xKnlMHkxm5u~=dSlmW;FmZ>;MW=bPH2e zh2jK)#;oIcs_4ZO(b_?cyYV1n#c+%t*KM~nrC)iY|8!rfNW|)h&tTDjKCGK$35|_> z?Gn zV5#5Ofy4E|wgUPMhwb%~3jqj7pRfAmAE{YZq4z#s`?~M@uf2_9f-+!_HJ6;H{$uu2 z=t#=pf`tvKp^ETlyH@QMXT)85MkWa}vv7+<=H zQ>G{f%0n*;gF*f^AYIP?BKg8^(Wu%go*#GBJ285U@vtGT#VN87Z6{L&Kpu+7E>HLE zxEtfXI^w;vCi|rhVEBOMx!FYeubXBqjPCqtC)?-gn5qm|^#+Xs6oZ}o2krILClP8o zwJJ*@I~VN$cZ$dK^;tpaMG2qwbe~sF77eZ%R0Wd1(XAQQEKD%WhpT8(#j=Y4W4UTr zdy|k77v5Jjq=(0cy`-%`4@f=#I@*?Yr8$E^ezURlL|IFjx$?Rg8z4ZdT5owXT~MzH z$Wrru-Wf>TJIt#;I){0_3COZ4@p6@*{X#@X(6DO;t%vnBVpE+v-9&Ut`ANP1MpzEi ziwk4eWyCDpQL}=fjo$UnmRtG9*$wabQ?tzoJ1@h340l-Q%{!YIV6 zR>Q8dCE&7$buR!;+_BJmMe(*yhI3(wf@#t-q_WM}CQVas$ppZ4M?b`VIQfemyzjS~ zb}EUy`w>MliF1eS#bl#zYf30WWjtIv!DxU7>g`I^lEnzQHWByEolBnL=V7CEztl$@ zXDT12b+0MWq|x)TeC0oQqoH`AP%{YrET@Lg)Nt?#?Vw~O8Ac=s21$#zltX9qn_lbyeMFDmHm5UZ*A#sG1__`xzA+}|15Pkk zgcYCh`t{~4ca4foC|Y|nrS6C-_6sUk05?LV1aJN&YVP%_Bf4ue6j`n!?qXXvNONUB z^-qjyTQ#Q+DEN!RNSx_>!Gd(cON6YHU&6V{+YxQ=$UEyxF)vr?8rH=?dWuRKE1V@c z;z>g0PSiAZpz139HnS3;HdL9~EI@P0J~;`W^B5AvD3|RyLJ^4<3f0&)Wz_drHIvNz zgEH}ydondJW6uzBnRKEpCu@8`)YMRe z+L4+Kr;;?f3i{mie`6oegoZtCLOVYA|EpV(|37G+t~1+;tNfR`f@1fWYL8^wekD@& z7budHBTCUG&`0HfhvoK9HwP(J9t>7e8*B=w4L0Wg*9Mzx8A<{93MgB<-Z{6eo??cl zj0PII+y&ZL%&XRox%ry!p8)A1rh_+kr47eHVa;{FNca?gtT|S&5=<)G$JzYb%j5p1 zpQx#V*2Em{PdAe_aA4pGS7ZtQS?&Mn=AHlDHc35A=Loq7Xd9;ruwYk>&iz>w`cwJD z(czyctA54|h?HW`nybw0^ULJQBKro6_s6Eq&FHlRaq?)|%OnDgIm<@1&wuB|7AIA^tLT{Sj;#V|%8nlB@&9f2viU+u^HB~1TZ1WuA+n04 z;2Edf7|jW*P&dZAMQtmgf35?~G)0-5&^a$_x$+qv+?}q$>=HjKPf^SiK`AMzPj<27d>Hfo1)(SlvCzz>l}Oi;5UUG9xyC@-DYdr- z_1e}fri#xc9pjBYU8~lxzVl&obh9{wbm%iUskS*PVJ(J>|9sLx+ILWS_g&eL{M%R` zLz7Elr+!c$!0t1?u(+63QEM=q(3CDSw_4(i=699L)~WR41#9#(jLj;+_J+zXx9<-P z(8QPGa>RUpR%GP(3%T4eJS8pAyoTy@{U#+NGp+XGx$jQE@_W1fb~<7#<{EHt;(hyS zJqFjSAK2^VY7tY}Y7>8o+QdT*dyA}fm$K5zhKrW)eqKO0k#L@>dj~|Nx8YMr@*1b0 z;gxaM9+@$ja@re%3X=Y3EMMcEawgvlR4zYPu3WAL+8FzGt#|rjy64Q#D-*BcE(9vbwCSusH?nBPMr)L>`!sLt+=he9B1)sb5h)7x;SZL ze<=$M5WCW@C~7zFxSGkh)AuMI=_kAgIP2PdAlTWS{EzX$D;xc zP9&H}OrJLuc5On@fIv#)X6r_G>GhV{TH##j0XEvO1r(-)V2*q4H1>Gr*(=WO*Rhv< zH7^)LTJR5k)u4F8zLu19*L3BK#@KAn8=v};^^{tbYmbmPF>p&A3@W^qbNH@q#M zaki~Y_OG#)1)WKFiOzlUqB=z#X3PgzhZ+(2eezre;+sZVV47T8A=m%KE*x{%v!@xtX#UMa5h3DMj*qhjOT==ntZ>AKZlQp{DQr|gu> zugb=nV?ZgG6^wI+kFD-wm0hU}zPf?wDVIN@bC@Bu7?}n&&uIpU-9xFi zV8ui$`UniyW5CCNHKx`Pye&DU*G1+AG#JLtsaicNl<30B3;?~`>d9z}z{x)sbATJ5 z1I{-F;0COacWs?XJ!&d?#3=%A&iwu42fW`gX+%!wBoCl0;LXO^y=uThN0UGgi*ZlQ z6yzZ3@(^BN1H*h9ua|;%E*IM3@Xb^?dTw>~aMH-e+{{%se!HJJ%C-4>(6!nuYTZgj zMWwPSd6>)Vx2PLG7i9SYXNN={JBY`fts7fj3*DKXNTSDwdhW#Fn0E?bogZ|1OW5Z# zf_7e~+oM?U;O`k@EdYbB(diWzXdUEUEqvm&{&;)M_TFP13zsXcC*F!=Om3syCk|PF z{u>P9?w-=o9<054MnhD3-TDu9et-;AAP~EdWEh#?v4V&in7xJhfcI#bhF{1v$@Z!5~~aX>7F zzEFUP$WFCCU5Qs`y7D=&9_DrDNx|z9F6Q{+F;!nr1>dC{Z#^KEVQL;{)E5vsA>3y{>nE?p6Y0<2p;yeh43PoHQ2lFHhBG9%94oc)D5q2O}U!_7f}njosqo{^6WOs?w}NkmaHFB;Tp7>s0D6 zAcX!+_=|!8RDQkP