BUG: ComicJailbreak max_examples counts goals that render nothing, so templates=["code"] with max_examples=10 fails
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- testing-qa
Direzione di ricerca
Leggi pyrit/datasets/seed_datasets/remote/comic_jailbreak_dataset.py, in particolare _fetch_dataset_async, e segui come vengono conteggiati gli obiettivi rispetto a max_examples quando manca il testo del modello selezionato. Inizia verificando i casi segnalati per code, instruction e un limite pari a zero. Il lavoro è completato quando il limite conta gli obiettivi renderizzati e i valori inferiori a 1 generano il ValueError indicato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
_ComicJailbreakDataset (pyrit/datasets/seed_datasets/remote/comic_jailbreak_dataset.py) documents max_examples as the "maximum number of source goals to render", but _fetch_dataset_async counts every goal it looks at, including goals that have no text for any of the selected templates and so render nothing. In the dataset, 213 of the 300 goals have no Code text, 61 have no Instruction text and 59 have no Speech text, so the cap is used up by goals that produce no seeds:
templates=["code"], max_examples=10: none of the first 10 goals hasCodetext, so nothing is rendered and loading fails withSeedDataset cannot be empty.templates=["instruction"], max_examples=10: only 2 goals are rendered.
The cap is also checked only after a goal has been rendered, so max_examples=0 (or a negative value) still renders one goal.
Steps/Code to Reproduce
import asyncio
from pyrit.datasets.seed_datasets.remote.comic_jailbreak_dataset import _ComicJailbreakDataset
from pyrit.models import SeedObjective
from pyrit.setup.initialization import IN_MEMORY, initialize_pyrit_async
async def main():
await initialize_pyrit_async(memory_db_type=IN_MEMORY)
for templates, max_examples in ((["code"], 10), (["instruction"], 10), (["article"], 0)):
try:
loader = _ComicJailbreakDataset(templates=templates, max_examples=max_examples)
dataset = await loader.fetch_dataset_async(cache=False)
except ValueError as e:
print(f"templates={templates} max_examples={max_examples}: ValueError: {str(e).splitlines()[0]}")
continue
goals = {s.value for s in dataset.seeds if isinstance(s, SeedObjective)}
print(f"templates={templates} max_examples={max_examples}: {len(goals)} goals")
asyncio.run(main())
Expected Results
max_examples goals are rendered for each template, and a cap below 1 is rejected:
templates=['code'] max_examples=10: 10 goals
templates=['instruction'] max_examples=10: 10 goals
templates=['article'] max_examples=0: ValueError: max_examples must be at least 1 or None, got 0
Actual Results
templates=['code'] max_examples=10: ValueError: 1 validation error for SeedDataset
templates=['instruction'] max_examples=10: 2 goals
templates=['article'] max_examples=0: 1 goals
The first error is SeedDataset cannot be empty.
Screenshots
N/A
Versions
- OS: Windows 11
- Python version: 3.11.9
- PyRIT version: installed from main (6224d531) in editable mode
- Lingua principale
- Python
- Stelle
- 4.7k
- Fork
- 980
- Merge medio
- 2g 9h
- PR unite (30g)
- 422
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/PyRIT
-
BUG: Garak and ML-VLSU loaders still load one example when max_examples is 0 or negativeForse già presa @ShivamSharma43 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
BUG: SeedDatasetFilter matches harm_categories, modalities and size case-sensitively, unlike tagsForse già presa @ShivamSharma43 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 2 giorni
-
Conversation drawer shows the previous attack's conversations after switching attacksForse già presa @ManoharPaturi l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
microsoft/PyRIT#3575 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Conversation draft turns permanently dirty when applied conversions match no pieceForse già presa @ManoharPaturi l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
microsoft/PyRIT#3573 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Analytics page treats a bare # fragment as a malformed link and disables the dashboardForse già presa @ManoharPaturi l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
microsoft/PyRIT#3571 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/PyRIT
Issue simili
-
fix(ui): serve bundled fonts from the gatewayForse già presa @dkritarth l’ha presa oggi. Apertaagent: in-progress agent: ready P3 type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dkritarth/scopewatch#336 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bob
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
khuisman/mcp-gee-sweet#1267 ·
I maintainer di solito rispondono entro 1 giorno
-
bug confirmed issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
open-webui/open-webui#33285 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
tv-list
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
Gathin23/cleanyourtv#2337 ·
I maintainer di solito rispondono entro 1 giorno
-
bug P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno