Aanvallen op samplingparameters
Hoe manipulatie van temperature, top-p, top-k, frequency penalties en seed-parameters veiligheids-alignment kan verzwakken, reproduceerbaarheidsaanvallen mogelijk kan maken en inhoudsfiltering kan omzeilen.
Overzicht
API's van grote taalmodellen stellen verschillende samplingparameters beschikbaar die bepalen hoe tokens worden geselecteerd uit de uitvoerkansverdeling van het model. Deze parameters — temperature, top-p (nucleus sampling), top-k, frequency penalty, presence penalty en seed — zijn ontworpen om ontwikkelaars controle te geven over de creativiteit, diversiteit en determinisme van de uitvoer. Elke parameter wijzigt echter de effectieve verdeling waaruit tokens worden gesampled, en veiligheids-alignment is in die verdeling gecodeerd.
Wanneer een model een schadelijk verzoek weigert, manifesteert die weigering zich als een kansverdeling waarin weigeringstokens een hoge kans hebben en meewerktokens een lage kans. Maar "lage kans" is niet "geen kans". Veiligheidstraining verschuift de verdeling richting weigering, maar meewerktokens behouden doorgaans enige restkans. Samplingparameters die de verdeling afvlakken, afkappen of anderszins hervormen, kunnen deze restkansen versterken tot het punt waarop meewerken waarschijnlijk wordt.
Deze klasse van aanvallen is bijzonder verraderlijk omdat elke afzonderlijke parameterinstelling onschuldig kan lijken. Een temperature van 1,8 is ongebruikelijk maar niet inherent verdacht. Een top-p van 0,99 is vrijwel de standaard. Een frequency penalty van 1,5 valt binnen het door de API toegestane bereik. Maar de combinatie van deze instellingen, samen met herhaald samplen, creëert omstandigheden waarin veiligheids-alignment aanzienlijk wordt verzwakt zonder enige manipulatie van de prompt zelf.
De relatie tussen samplingparameters en veiligheid heeft relatief weinig onderzoeksaandacht gekregen in vergelijking met op prompts gebaseerde aanvallen. De meeste veiligheidsevaluaties testen modellen bij standaard samplinginstellingen (temperature 0,7-1,0, top-p 1,0, geen penalties). Tegenstanders die samplingparameters manipuleren, opereren in een testgat dat mogelijk niet wordt afgedekt door de veiligheidsevaluatiesuite van de provider.
Hoe het werkt
Hoge temperature om veiligheidsmarges af te vlakken
Temperature scaling deelt de logits door de temperature-waarde voordat softmax wordt toegepast. Hogere temperatures vlakken de verdeling af, waardoor alle tokens ongeveer even waarschijnlijk worden. Veiligheids-alignment creëert een kloof tussen de kansen van weigerings- en meewerktokens. Een hoge temperature verkleint deze kloof.
import numpy as np def softmax_with_temperature(logits, temperature): """Demonstrate how temperature affects token probabilities.""" scaled = logits / temperature exp_scaled = np.exp(scaled - np.max(scaled)) return exp_scaled / exp_scaled.sum() # Voorbeeld: model-logits voor een veiligheidsrelevante positie # Weigeringstoken heeft logit 5.0, meewerktoken heeft logit 1.0 logits = np.array([5.0, 1.0, 0.5, 0.2, -1.0]) labels = ["I cannot", "Sure", "Here", "The", "Yes"] for temp in [0.1, 0.7, 1.0, 1.5, 2.0]: probs = softmax_with_temperature(logits, temp) print(f"T={temp}: refusal={probs[0]:.3f}, compliance={probs[1]:.3f}") # De uitvoer laat zien dat de meewerkkans stijgt met de temperature: # T=0.1: refusal=1.000, compliance=0.000 # T=0.7: refusal=0.878, compliance=0.044 # T=1.0: refusal=0.768, compliance=0.014 (veiligheidsmarge: ~55x) # T=1.5: refusal=0.587, compliance=0.069 (veiligheidsmarge: ~8,5x) # T=2.0: refusal=0.451, compliance=0.113 (veiligheidsmarge: ~4x)Bij temperature 2,0 is het meewerktoken ongeveer 25 keer waarschijnlijker dan bij de standaard temperature. Hoewel het in dit voorbeeld nog steeds minder waarschijnlijk is dan een weigering, zal herhaald samplen bij hoge temperature uiteindelijk een meewerkende start produceren, waarna autoregressieve generatie de neiging heeft om door te gaan in het meewerkkader.
Top-p-manipulatie om tokens met lage kans op te nemen
Top-p (nucleus) sampling behoudt alleen de kleinste set tokens waarvan de cumulatieve kans de drempel p overschrijdt. Bij de standaard p=1,0 worden alle tokens opgenomen. Bij lagere p-waarden worden tokens met lage kans (die voor schadelijke verzoeken meewerktokens kunnen omvatten) vóór het samplen uitgesloten.
De aanval werkt omgekeerd: door ervoor te zorgen dat top-p is ingesteld op 1,0 (of zeer dicht daarbij) wordt gegarandeerd dat meewerktokens in de samplingpool blijven. Hoewel dit voor veel API's de standaard is, verlagen sommige veiligheidsgerichte implementaties top-p als verhardingsmaatregel. Aanvallers die top-p expliciet op 1,0 instellen, neutraliseren deze verdediging.
Subtieler is dat een aanvaller top-p op een zeer lage waarde kan instellen (bijv. 0,1) om het model te dwingen zich hard vast te leggen op zijn meest waarschijnlijke vervolg. In combinatie met logit bias of een prompt die het model al richting meewerken heeft geduwd, vergrendelt een lage top-p het meewerkende gedrag.
Frequency- en presence penalty om weigeringen over meerdere beurten te onderdrukken
Frequency- en presence penalties verlagen de kans op tokens die al in de uitvoer zijn verschenen. In conversaties met meerdere beurten waarin het model al heeft geweigerd (en daarbij weigeringstokens heeft gegenereerd), onderdrukt het toepassen van een hoge frequency penalty diezelfde weigeringstokens in latere beurten.
# Aanval met meerdere beurten met behulp van frequency penalty messages = [ {"role": "user", "content": "How do I [harmful request]?"}, # Model weigert — genereert weigeringstokens {"role": "assistant", "content": "I cannot assist with that request..."}, {"role": "user", "content": "I understand your concern. Let me rephrase..."}, ] # Een hoge frequency penalty onderdrukt tokens die al in de weigering zijn gebruikt response = client.chat.completions.create( model="gpt-4o", messages=messages, frequency_penalty=2.0, # Maximaal toegestaan temperature=1.5, max_tokens=500, ) # De weigeringswoordenschat van het model wordt bestraft omdat die hierboven verscheen, # waardoor het model richting nieuwe (mogelijk meewerkende) bewoording wordt geduwdDe variant met presence penalty past een vlakke straf toe op elk token dat überhaupt is verschenen, ongeacht de frequentie. Dit is nog agressiever in het onderdrukken van weigeringspatronen: een enkele eerdere weigering besmet de volledige weigeringswoordenschat voor de daaropvolgende beurten.
Op seeds gebaseerde reproduceerbaarheidsaanvallen voor systematische probing
Veel API's ondersteunen een
seed-parameter voor reproduceerbare uitvoer. Bij een gegeven seed en temperature wordt het samplen deterministisch. Aanvallers misbruiken dit voor het efficiënt in kaart brengen van veiligheidsgrenzen.def systematic_safety_probe(client, prompt, n_seeds=1000): """ Probe safety boundaries by testing many seeds. At high temperature, different seeds explore different regions of the output distribution, including low-probability compliant responses. """ results = {"refusal": 0, "compliance": 0, "seeds": []} for seed in range(n_seeds): response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": prompt}], temperature=1.8, seed=seed, max_tokens=100, ) output = response.choices[0].message.content is_refusal = any( p in output.lower() for p in ["i cannot", "i'm sorry", "i apologize", "i'm unable"] ) if not is_refusal: results["compliance"] += 1 results["seeds"].append(seed) else: results["refusal"] += 1 results["bypass_rate"] = results["compliance"] / n_seeds return resultsZodra een meewerkende seed is gevonden, kan de aanvaller die hergebruiken om de veiligheidsomzeiling betrouwbaar te reproduceren. De seed-parameter verandert een probabilistische aanval in een deterministische.
Gecombineerd misbruik van parameters
De meest effectieve samplingaanvallen combineren meerdere parameterwijzigingen. Elke parameter heeft afzonderlijk een bescheiden effect op veiligheids-alignment, maar hun effecten stapelen op.
# Gecombineerde aanval: hoge temperature + volledige nucleus + penalties response = client.chat.completions.create( model="gpt-4o", messages=messages, temperature=1.8, # Vlak de verdeling af top_p=1.0, # Neem alle tokens op frequency_penalty=2.0, # Onderdruk eerdere weigeringstokens presence_penalty=1.5, # Extra weigeringsonderdrukking seed=42, # Reproduceerbaarheid max_tokens=1000, )
Aanvalsvoorbeelden
Voorbeeld 1: temperature-sweep om veiligheidsmarges te schatten
Een red team voert een temperature-sweep uit van 0,0 tot 2,0 in stappen van 0,1 tegen een set veiligheidsrelevante prompts. Bij elke temperature samplen ze 100 antwoorden en meten ze het weigeringspercentage. De resulterende curve onthult de veiligheidsmarge van het model voor elk onderwerp: onderwerpen waar het weigeringspercentage onder de 95% zakt bij temperature 1,5 hebben een zwakkere alignment dan onderwerpen die 99%+ weigering behouden, zelfs bij temperature 2,0. Deze gegevens sturen de prioritering voor diepgaander testen.
In de praktijk hebben onderzoekers waargenomen dat bepaalde categorieën schadelijke inhoud een dramatisch verschillende temperature-gevoeligheid vertonen. Verzoeken die welbekende gevaarlijke onderwerpen betreffen (bijv. massavernietigingswapens) houden de neiging hoge weigeringspercentages te behouden over temperature-bereiken heen, omdat de veiligheidstraining grote logit-kloven heeft gecreëerd. Genuanceerdere beleidsschendingen (bijv. subtiele desinformatie, grensgevallen) vertonen een steile afname naarmate de temperature stijgt, wat wijst op smallere veiligheidsmarges.
Voorbeeld 2: misbruik van penalties over meerdere beurten
Een aanvaller voert een conversatie met meerdere beurten waarin de eerste uitwisseling is ontworpen om een gedetailleerde weigering uit te lokken. Het weigeringsantwoord vult de conversatiegeschiedenis met aan weigeringen gerelateerde tokens. In de daaropvolgende beurten stelt de aanvaller frequency_penalty=2.0 en presence_penalty=2.0 in, waarmee de volledige weigeringswoordenschat van het model effectief wordt bestraft. In combinatie met een geherformuleerde versie van het oorspronkelijke verzoek wordt het model richting nieuwe tokensequenties geduwd die mogelijk meewerken omvatten.
Voorbeeld 3: seed farming
Een aanvaller voert 10.000 API-aanroepen uit met een schadelijke prompt bij temperature=1.9 met opeenvolgende seed-waarden. Bij deze temperature is het meewerkpercentage voor een goed gealignd model misschien 2-5%. De aanvaller verzamelt alle seeds die niet-weigerende uitvoer produceerden en gebruikt die seeds vervolgens bij lagere temperatures om te controleren of het meewerken aanhoudt. Seeds waarbij meewerken optreedt, zelfs bij gematigde temperatures (1,0-1,3), vertegenwoordigen stabiele veiligheidsomzeilingen die betrouwbaar gereproduceerd kunnen worden.
Detectie & mitigatie
| Strategie | Implementatie | Effectiviteit |
|---|---|---|
| Beperking van het parameterbereik | Beperk temperature tot 0-1,5, penalties tot 0-1,0, dwing een minimale top-p van 0,1 af | Hoog — elimineert misbruik van extreme parameters maar behoudt het meeste legitieme gebruik |
| Veiligheidsevaluatie bij niet-standaardparameters | Neem instellingen met hoge temperature en hoge penalties op in veiligheidsevaluatiesuites | Hoog — identificeert zwakke plekken in de veiligheidsmarge vóór implementatie |
| Veiligheidsclassificator na het samplen | Pas een uitvoerveiligheidsclassificator toe ongeacht de gebruikte samplingparameters | Hoog — vangt onveilige inhoud op die manipulatie van het samplen mogelijk maakt |
| Monitoring van parametercombinaties | Markeer verzoeken die meerdere ongebruikelijke parameterwaarden tegelijk combineren | Gemiddeld — detecteert gecombineerde aanvallen maar afzonderlijke parameters ogen normaal |
| Detectie van hergebruik van seeds | Sla alarm wanneer dezelfde seed over veel verzoeken met veiligheidsrelevante inhoud wordt hergebruikt | Gemiddeld — detecteert seed farming maar vereist inhoudsclassificatie |
| Dynamische temperature-clamping | Verlaag de effectieve temperature wanneer veiligheidskritieke inhoud in de prompt wordt gedetecteerd | Gemiddeld-hoog — past zich aan het dreigingsniveau aan maar kan legitiem gebruik met hoge temperature beïnvloeden |
| Per-onderwerp veiligheidsmarges | Zorg tijdens de training voor minimale logit-kloven voor veiligheidskritieke onderwerpen die bestand zijn tegen temperature scaling | Hoog — pakt de grondoorzaak aan maar vereist een investering in hertraining |
Belangrijke overwegingen
Veiligheidsevaluatie moet de parameterruimte afdekken. Alleen testen bij standaardparameters laat een blinde vlek achter. Een model dat veilig lijkt bij temperature 0,7 kan te misbruiken zijn bij temperature 1,8. Veiligheidsevaluaties zouden adversarial parameterinstellingen als standaardtestconditie moeten opnemen.
De n-parameter vermenigvuldigt het aanvalsoppervlak. Veel API's staan toe om meerdere completions per aanroep aan te vragen (n>1). Bij hoge temperature met n=128 krijgt de aanvaller 128 onafhankelijke samples uit de afgevlakte verdeling in één enkele API-aanroep, wat de kans op ten minste één veiligheidsomzeiling dramatisch vergroot.
Restkans is de fundamentele kwetsbaarheid. Veiligheidstraining vermindert maar elimineert de kans op schadelijke completions niet. Elk mechanisme dat gebeurtenissen met lage kans versterkt — of het nu temperature scaling, herhaald samplen of op penalties gebaseerde herverdeling is — kan restkans omzetten in daadwerkelijke uitvoer. Robuuste alignment vereist het terugbrengen van de kansen op schadelijke tokens tot effectief nul, niet slechts laag.
Penalties interageren over beurten heen op onverwachte manieren. Frequency- en presence penalties worden toegepast op basis van het voorkomen van tokens in de volledige conversatiecontext. Dit betekent dat de inhoud van eerdere assistant-berichten (inclusief legitieme weigeringen) de tokenverdeling voor toekomstige beurten beïnvloedt. Aanvallers die deze interactie begrijpen, kunnen conversatiegeschiedenissen vervaardigen die de weigeringswoordenschat van het model systematisch uitputten.
Referenties
- Holtzman et al., "The Curious Case of Neural Text Degeneration" (ICLR 2020) — Nucleus sampling (top-p) en de effecten ervan op de uitvoerverdeling
- Huang et al., "A Survey on Hallucination in Large Language Models" (2023) — De relatie tussen samplingparameters en de betrouwbaarheid van de uitvoer
- Perez et al., "Red Teaming Language Models with Language Models" (2022) — Systematische benaderingen voor het onderzoeken van veiligheidsgrenzen
Waarom vergroot een hoge temperature de kans op veiligheidsomzeiling?