Skip to content

Commit fee7a16

Browse files
authored
use randomization seed for jailbreak prompts (#41334)
1 parent 2443a64 commit fee7a16

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

sdk/evaluation/azure-ai-evaluation/azure/ai/evaluation/simulator/_adversarial_simulator.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,19 @@ async def __call__(
264264

265265
# Limit to max_simulation_results if needed
266266
if len(template_parameter_pairs) > max_simulation_results:
267-
template_parameter_pairs = template_parameter_pairs[:max_simulation_results]
267+
template_parameter_pairs = template_parameter_pairs[:max_simulation_results] # Create a seeded random instance for jailbreak selection if randomization_seed is provided
268+
jailbreak_random = None
269+
if _jailbreak_type == "upia" and randomization_seed is not None:
270+
jailbreak_random = random.Random(randomization_seed)
268271

269272
# Single task append loop for all scenarios
270273
for template, parameter in template_parameter_pairs:
271274
if _jailbreak_type == "upia":
272-
parameter = self._add_jailbreak_parameter(parameter, random.choice(jailbreak_dataset))
275+
if jailbreak_random is not None:
276+
selected_jailbreak = jailbreak_random.choice(jailbreak_dataset)
277+
else:
278+
selected_jailbreak = random.choice(jailbreak_dataset)
279+
parameter = self._add_jailbreak_parameter(parameter, selected_jailbreak)
273280

274281
tasks.append(
275282
asyncio.create_task(

0 commit comments

Comments
 (0)