Skip to content

Perturbation

Character-level and token-level noise transforms that test the robustness of text classifiers and safety filters.

Module: dreadnode.transforms.perturbation

Character-level and token-level noise that tests robustness of text classifiers and safety filters.

TransformDescription
random_capitalizationRandomize letter casing
insert_punctuationInsert random punctuation
diacriticAdd diacritical marks to characters
underlineAdd Unicode underline combining marks
character_spaceInsert spaces between characters
zero_widthInsert zero-width characters
zalgoApply Zalgo text (stacked combining marks)
unicode_confusableReplace with Unicode confusables
unicode_substitutionSubstitute with visually similar Unicode
repeat_tokenRepeat tokens to confuse tokenizers
emoji_substitutionReplace words with emoji equivalents
token_smugglingSplit tokens across boundaries
semantic_preserving_perturbationMeaning-preserving noise
instruction_hierarchy_confusionConfuse instruction priority parsing
context_overflowOverflow context window
gradient_based_perturbationGradient-inspired token perturbation
multilingual_mixingMix multiple languages
cognitive_hackingExploit cognitive biases in processing
payload_splittingSplit payload across inputs
attention_diversionDivert model attention
style_injectionInject style directives
implicit_continuationExploit continuation behavior
authority_exploitationExploit authority patterns
linguistic_camouflageLinguistically camouflage intent
temporal_misdirectionUse temporal framing to misdirect
complexity_amplificationAmplify prompt complexity
error_injectionInject deliberate errors
encoding_nestingNest multiple encodings
token_boundary_manipulationManipulate tokenizer boundaries
meta_instruction_injectionInject meta-level instructions
sentiment_inversionInvert sentiment cues
simulate_typosAdd realistic typographical errors

See Transforms for how to apply transforms with any attack.