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.additional_nll(logits, cur_text_ids)[source]
panda_guard.role.attacks.cold_attack.util.bert_score(embedding1, embedding2)[source]
panda_guard.role.attacks.cold_attack.util.calculate_coverage(output_ln, key_words)[source]
panda_guard.role.attacks.cold_attack.util.collect_json_lines(model_output_json_file)[source]
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.compute_ppl_line(model, tokenizer, line)[source]
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_all(logits, cs_onehot, cs_ids)[source]
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.contrastive_loss(y_logits)[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.forw(model, y_logits, topk, x_onehot, x_past)[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_ref_embedding(model, ref, device, tokenizer)[source]
panda_guard.role.attacks.cold_attack.util.get_text_from_logits(logits, tokenizer)[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.one_hot(tensor, dimension)[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.post_sent(text_complete)[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.print_topk_stats(logits, tokenizer)[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.sim_score(model, y_logits, ref_vec)[source]
panda_guard.role.attacks.cold_attack.util.soft_backward(model, y_logits_rev)[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_backward_steps(model, y_logits)[source]
panda_guard.role.attacks.cold_attack.util.soft_distance(logits_perturbed, logits)[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.soft_nll(logits_perturbed, logits)[source]
panda_guard.role.attacks.cold_attack.util.soft_nll_detach(logits_perturbed, logits)[source]
panda_guard.role.attacks.cold_attack.util.top_k_filter(logits, k, probs=False)[source]
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

panda_guard.role.attacks.cold_attack.util.top_p(logits, thres=0.5, filter_value=-inf)[source]
panda_guard.role.attacks.cold_attack.util.vocab_prune(model, y_logits, topk, x_onehot, x_past, tokenizer, extra_mask=None)[source]
panda_guard.role.attacks.cold_attack.util.write_json_lines(json_lines, fout, model, tokenizer, device)[source]

Module contents