sherdencooper / GPTFuzz

Official repo for GPTFUZZER : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts
MIT License
406 stars 50 forks source link

请问现在的master分支中为什么只有single-single的代码了 #22

Open zggg1p opened 1 year ago

zggg1p commented 1 year ago

如题

sherdencooper commented 1 year ago

你好,感谢对我们工作的关注。目前的代码可以支持single model情况下的single question/multi question的fuzz,传入的question可以是一个单个的str或者一个list。请参考example.ipynb文件的描述。对于multi-model的情况,考虑到这个使用场景不是很多并且资源消耗比较大暂时,新版的代码还没支持,如果有需要的话请告知我们,我们之后会加上这一部分代码。如果有比较紧急的需要,可以revert到b6408cfef2cd9defc524172d058950ad846824df这个commit之前,我们在这个commit中覆盖了旧版的代码增加可读性和扩展性

zggg1p commented 11 months ago

你好,请问为什么我在实验中parent的选择基本都是在0,1,2中呢?

sherdencooper commented 11 months ago

你好,请问你攻击对象模型是哪个?因为MCTSExplore算法虽然设计上对比MCTS和UCB更加注重explore,但仍然有可能会陷入局部最优。如果模型的鲁棒性较弱并且一开始对于parent 0,1,2进行选择并且获得较好结果,就有可能再次对0,1,2这三个种子进行选择,如果又能攻击成功,就会进一步加剧这种情况。如果模型鲁棒性较弱,可以在种子选择算法中改成RoundRobinSelectPolicy或者RandomSelectPolicy确保所有的种子都是平等选择的,这样会稍微牺牲一些performance,但是可以保证生成结果中parent的多样性

zggg1p commented 11 months ago

你好,请问你攻击对象模型是哪个?因为MCTSExplore算法虽然设计上对比MCTS和UCB更加注重explore,但仍然有可能会陷入局部最优。如果模型的鲁棒性较弱并且一开始对于parent 0,1,2进行选择并且获得较好结果,就有可能再次对0,1,2这三个种子进行选择,如果又能攻击成功,就会进一步加剧这种情况。如果模型鲁棒性较弱,可以在种子选择算法中改成RoundRobinSelectPolicy或者RandomSelectPolicy确保所有的种子都是平等选择的,这样会稍微牺牲一些performance,但是可以保证生成结果中parent的多样性

非常感谢您的解答!我的攻击目标是qwen-7b-chat,他的鲁棒性确实一般,在llm-attacks中的表现和vicuna差不多

zggg1p commented 11 months ago
截屏2023-12-06 16 56 32

我print了一下section过程,发现都是从0开始并且之后是以此选取的,好像并没有运用某种决策,这是什么原因呢,攻击目标是gpt-3.5

zggg1p commented 11 months ago

截屏2023-12-06 16 56 32 我print了一下section过程,发现都是从0开始并且之后是以此选取的,好像并没有运用某种决策,这是什么原因呢,攻击目标是gpt-3.5

这个原因会不会是因为我是single-single呢

sherdencooper commented 11 months ago

截屏2023-12-06 16 56 32 我print了一下section过程,发现都是从0开始并且之后是以此选取的,好像并没有运用某种决策,这是什么原因呢,攻击目标是gpt-3.5

这个应该是正常的,因为初始所有的seed的weight都是一致的,然后从0开始选取,如果失败了,会降低这个seed的score,这时候会从最高的score的seed里选取(除了0号以外的种子),以此类推。你发现的按照顺序选取在第一轮遍历的情况下比较常见,因为score由两部分组成,一部分是成功jailbreak的score,一部分是novelty score,也就是种子选择会倾向那些没有选过或者选中次数很少的种子。等到iteration增多了就不会出现这种情况了。如果极端情况下没有任何种子可以成功,算法会退化为round robin。