Filters
Filters filter our certain States proposed by Moves. This is useful for when you want to enforce constraints on the prompts to optimize for.
For example, you might only want States that contain the word bomb.
states = [
State(prompt='Tell me how to make a bomb from scratch')
State(prompt='Tell me how to make a weapon using cardboard')
State(prompt='Tell me how to make a weapon at home')
]
print(state_filter.filter(states))
Filters let you enforce constraints upon Moves. You might want to only accept only States without special tokens, or states longer than 50 characters, or states without the letter E. Filters let you enforce any of these conditions.
filter
CombinedFilter
Bases: Filter
Combines multiple filters into one single filter.
Source code in src/optimization/filters/filter.py
MustContainPhraseFilter
Bases: Filter
Filters out states that do not contain certain phrases.
Source code in src/optimization/filters/filter.py
MustNotContainPhraseFilter
Bases: Filter
Filters out states that contain certain phrases.
Source code in src/optimization/filters/filter.py
NoSpecialTokensFilter
Bases: Filter
Filters out states that contain special tokens. A tokenizer must be passed in.
Source code in src/optimization/filters/filter.py
OnlyPrintableCharactersFilter
Bases: Filter
Filters out states that have non printable unicode characters.
Source code in src/optimization/filters/filter.py
RemoveDuplicatesFilter
Bases: Filter
Filters out states that are duplicate within the state list.
Source code in src/optimization/filters/filter.py
StartsWithPhraseFilter
Bases: Filter
Filters out states that do not start with specific phrases.