panda_guard.role.attacks.cold_attack package
Submodules
panda_guard.role.attacks.cold_attack.attack_suffix module
panda_guard.role.attacks.cold_attack.bleuloss module
- panda_guard.role.attacks.cold_attack.bleuloss.batch_log_bleulosscnn_ae(decoder_outputs, target_idx, ngram_list, trans_len=None, pad=0, weight_list=None)[source]
- decoder_outputs: [output_len, batch_size, vocab_size]
matrix with probabilityes – log probs
- target_variable: [batch_size, target_len]
reference batch
- ngram_list: int or List[int]
n-gram to consider
- pad: int
the idx of “pad” token
- weight_listList
corresponding weight of ngram
NOTE: output_len == target_len
panda_guard.role.attacks.cold_attack.cold module
panda_guard.role.attacks.cold_attack.decoding_suffix module
panda_guard.role.attacks.cold_attack.util module
- panda_guard.role.attacks.cold_attack.util.compute_loss(model, tokenizer, device, x='', z='', y='', constraints=None, args=None, model_back=None, zz=None)[source]
x: left context (prompt in lexical constrained task) z: optimization target (original ending in counterfactual task) constraints: (constraint set in lexical constrained task)
- panda_guard.role.attacks.cold_attack.util.constraint_loss(logits, cs_onehot, cs_ids)[source]
constraint loss with mask cs_ids: [batch_size, num_cs]
- panda_guard.role.attacks.cold_attack.util.constraint_loss_by_ppl(logits, cs_onehot, cs_ids, logits_t)[source]
- panda_guard.role.attacks.cold_attack.util.constraint_loss_with_variants(logits, cs_onehot_all, cs_ids_all)[source]
constraint loss with mask cs_ids_all: list of tensor [batch_size, num_variants], of length num_cs
- panda_guard.role.attacks.cold_attack.util.constraint_loss_with_variants_by_ppl(logits, cs_onehot_all, cs_ids_all, probs_t)[source]
- panda_guard.role.attacks.cold_attack.util.decode_with_model_topk(model, y_logits, topk, x_onehot, x_past, tokenizer, extra_mask=None, bad_mask=None)[source]
- panda_guard.role.attacks.cold_attack.util.embed_inputs(embedding, logits, x_onehot=None, z_onehot=None, device='cuda')[source]
embeds inputs in a dense representation, before passing them to the model
- panda_guard.role.attacks.cold_attack.util.embed_inputs_target(embedding, logits, x_onehot=None, z_onehot=None, target_onehot=None, device='cuda')[source]
embeds inputs in a dense representation, before passing them to the model
- panda_guard.role.attacks.cold_attack.util.find_nearest_vectors_pytorch(target_vectors, candidate_vectors, batch_size)[source]
- panda_guard.role.attacks.cold_attack.util.get_gpt_ppl(text_list, gpt_model, gpt_tokenizer, device)[source]
- panda_guard.role.attacks.cold_attack.util.get_text_from_logits_topk(logits, tokenizer, top_k=1)[source]
- panda_guard.role.attacks.cold_attack.util.has_repeat(sents_for_substr)[source]
Detect if the hypothesis text has repeat patterns.
- panda_guard.role.attacks.cold_attack.util.initialize(model, x, length, temperature, batch_size, device, tokenizer)[source]
- panda_guard.role.attacks.cold_attack.util.post_process(text_ids, model, max_length, length, tokenizer, device)[source]
- panda_guard.role.attacks.cold_attack.util.pre_filter(model, y_logits, topk, x_onehot, x_past, tokenizer, extra_mask=None)[source]
- panda_guard.role.attacks.cold_attack.util.rank_and_filter(candidates, input_text, z, model, tokenizer, device, no_loss_rerank)[source]
- panda_guard.role.attacks.cold_attack.util.rank_generations(text_list, x, z, mode='abductive')[source]
- panda_guard.role.attacks.cold_attack.util.score_by_bert(A, hyps, B, model, tokenizer, device='cuda')[source]
Use BERT next-sentence-prediction to compute the scores of (A-hyps, B) and (A, hyps-B)
- Parameters:
A – O1
hyps – hypothesis
B – O2
- panda_guard.role.attacks.cold_attack.util.sentence_completion(text_ids, model, max_length, device)[source]
- panda_guard.role.attacks.cold_attack.util.soft_backward_loss(model, y_logits_, yz_logits_rev, topk)[source]
- panda_guard.role.attacks.cold_attack.util.soft_forward(model, x_onehot, y_logits, topk, extra_mask=None, x_past=None, detach=True, bad_mask=None)[source]
computes logits for $y$, based on a fixed context $y$ and the current logit distribution of $y$ :param model: :param x_onehot: :param y_logits: :return:
- panda_guard.role.attacks.cold_attack.util.soft_forward_loss(model, y_logits, topk, x_onehot, x_past, extra_mask=None, bad_mask=None)[source]
- panda_guard.role.attacks.cold_attack.util.soft_forward_xyz(model, x_onehot, y_logits, z_onehot)[source]
computes logits for $y$, based on a fixed context $y$ and the current logit distribution of $y$ :param model: :param x_onehot: :param y_logits: :return:
- panda_guard.role.attacks.cold_attack.util.soft_forward_xyz_target(model, x_onehot, y_logits, z_onehot, target_onehot)[source]
computes logits for $y$, based on a fixed context $y$ and the current logit distribution of $y$ :param model: :param x_onehot: :param y_logits: :return:
- panda_guard.role.attacks.cold_attack.util.top_k_filter_3d(logits, k, probs=False, mask=None, extra_mask=None, bad_mask=None)[source]
logits.shape = [batch_size, length, vocab_size] extra_mask: [batch_size, length, vocab_size], 1 if reserve