-
Notifications
You must be signed in to change notification settings - Fork 4
Description
I'm trying to reproduce your results from your paper, but I'm having some issues when trying to run the code.
When I try to run:
python transfer_attack.py llm=llama-2 task=AlpacaEval attack=autodan defense=smoothllm
I get the error message:
FileNotFoundError: [Errno 2] No such file or directory: 'data/AlpacaEval/AlpacaEval.jsonl'
The file config/task/AlpacaEval.yaml
specifies attack_log_file: data/AlpavaEval/AlpacaEval.jsonl
, but this jsonl file does not exist. Instead, data/AlpacaEval/AlpacaEval-125.jsonl
is provided in the repo. However, changing that configuration file seems to not fix it, since the code actually specifies data/AlpavaEval/AlpacaEval.jsonl
again at line 203 of tasks.py
. Changing it there seems to fix the issue, but the code still winds up crashing due to another issue:
raise MissingMandatoryValue("Missing mandatory value: $FULL_KEY")
omegaconf.errors.MissingMandatoryValue: Missing mandatory value: smoothllm_perturbations
full_key: smoothllm_perturbations
object_type=dict
I also noticed some other issues:
config/task/InstructionFollow.yaml
specifies_target_: AlpacaEval
, which seems incorrect.- Line 20 of the
README.md
seems to have a typo in specifyingdefense=${ATTACK}
and is missing the attack parameter. I guess this part should beattack=${ATTACK} defense=${DEFENSE}
, like in line 25.
I was able to get things to start running with the incontext defense (with the following command), but then it immediately drops into the interactive python debugger, and crashes if I try to continue the script.
python transfer_attack.py llm=llama-2 task=AlpacaEval attack=autodan defense=incontext