NL ▾
API-sleutel aanvragen

Hoe zijn Abliterated-modellen gemaakt? Een eenvoudige uitleg

Abliterated-modellen zijn grote taalmodellen waarbij de mechanismen voor veiligheidsafwijzingen zijn verwijderd, waardoor het model controversiële, volwassen of niche-vragen kan beantwoorden zonder tegen een inhoudsfilter aan te lopen. Deze aanpak geeft ontwikkelaars volledige controle over de stem en de kennisafsnijding van het model, wat vooral waardevol is voor coderen, rollenspellen en creatief schrijven waar standaardbeveiligingsmaatregelen nuttige output kunnen blokkeren.

Glazen bol die een neurale netwerk voorstelt, met een amberkleurige straal die door een mechanische arm wordt verwijderd

Belangrijkste punten

  • Abliteration meet een weigeringsrichting binnen het model en projecteert deze uit de gewichten.
  • Het is een bewerking, geen hertraining, dus het is goedkoop maar kan de antwoordkwaliteit iets verminderen.
  • Fine-tuning verandert gedrag door te trainen op voorbeelden; abliteration verandert het door één richting af te trekken.
  • Je kunt elk dergelijk model beoordelen met een korte testset voordat je erop bouwt.

De korte versie

Taalmodellen die door veiligheidstraining zijn gegaan, weigeren vaak bepaalde verzoeken. Onderzoekers hebben ontdekt dat dit weigeringsgedrag wordt bemiddeld door één enkele richting in de interne activaties van het model. Haal die richting eruit en het model weigert meestal niet meer. De naam "abliteration" is een samentrekking van "ablatie" (het verwijderen van een component) en "vernietigen".

Hoe worden geablitreerde modellen in de praktijk gemaakt? Er zijn vier stappen: verzamel twee sets prompts, registreer de activaties van het model op elke set, bereken het verschil om een richting te krijgen en bewerk de gewichten zodat het model niet langer langs die richting kan schrijven. De volgende secties gaan elke stap door zonder de zware wiskunde.

Stap 1: twee promptsets

Je hebt een set prompts nodig die het model meestal weigert en een set die het normaal beantwoordt. Elke set bevat een paar honderd korte instructies. De sets moeten vergelijkbaar zijn in lengte en stijl, zodat het enige systematische verschil is of het model wil weigeren. Als de schadelijke set allemaal lang is en de onschadelijke set allemaal kort, zal de resulterende richting deels lengte coderen, en dat voegt ruis toe.

De prompts zijn alleen input voor meting. Er wordt niets op getraind en de antwoorden van het model daarop worden niet gebruikt.

Stap 2: de weigeringsrichting vinden

Een transformer verwerkt tekst als vectoren die door vele lagen gaan. Bij een gekozen laag registreer je de vector bij het laatste prompttoken voor elke prompt in beide sets. Dan neem je het gemiddelde van de vectoren voor elke set en trek je het ene gemiddelde van het andere af. Het resultaat is één enkele vector die van "normaal antwoorden" naar "weigeren" wijst. Normaliseer hem op lengte één en je hebt de weigeringsrichting.

Mensen proberen meestal verschillende lagen en kiezen de laag waarbij het verwijderen van de richting het beste werkt op een testset van prompts. Het kiezen van de laag is het meest hands-on onderdeel van het proces.

import numpy as np

# acts_bad, acts_good: arrays of shape (n_prompts, hidden_size)
direction = acts_bad.mean(axis=0) - acts_good.mean(axis=0)
direction = direction / np.linalg.norm(direction)

# remove the direction from a weight matrix W that writes into the residual stream
W_edited = W - np.outer(direction, direction) @ W

Praktische implementaties passen dit toe op meerdere gewichtsmatrices in elke laag, maar het idee is dat in deze drie regels.

Stap 3: de gewichten bewerken

Zodra je de richting hebt, zijn er twee manieren om deze te gebruiken. Je kunt deze aftrekken van de activaties terwijl het model draait, wat aangepaste inferentiecode vereist. Of je kunt het in de gewichten verwerken door elke matrix die in de residual stream schrijft te orthogonaliseren tegen de richting. De tweede aanpak is de gebruikelijke, omdat het bewerkte model een gewone checkpoint is die elke runtime kan laden. Dat is waarom geablitreerde modellen verschijnen als gewone downloads.

De bewerking is deterministisch en snel. Het duurt minuten op een GPU die het model kan bevatten, in vergelijking met uren of dagen voor een trainingsrun.

Abliteration vs. fine-tuning

Beide kunnen een model produceren dat minder weigert, maar ze werken anders.

AbliterationFine-tuning
Wat verandertGewichten worden weggeprojecteerd ten opzichte van één richtingGewichten worden bijgewerkt door gradient descent op voorbeelden
Nodige dataTwee kleine promptsets voor metingEen samengestelde trainingsset
RekenkrachtMinuten tot een uurUren tot dagen
NeveneffectenKan redeneren stompen of de toon veranderenHangt af van data; kan nieuwe stijl of kennis leren
ControleGrof: één richting aan of uitFijn: je vormt gedrag met de data

Sommige makers combineren de twee: eerst ablieren, dan een korte fine-tune uitvoeren om verloren kwaliteit te herstellen. Nieuwere tools automatiseren ook het zoeken naar de beste laag en sterkte, zodat de bewerking weigeringen verwijdert terwijl het model zo min mogelijk verandert. Welke aanpak een bepaald model heeft geproduceerd, staat meestal op de modelkaart.

Wat het kost aan kwaliteit

Het verwijderen van een richting is een grove bewerking. De weigeringsrichting is niet perfect gescheiden van andere functies, dus het eruit projecteren kan ander gedrag verschuiven. Gerapporteerde neveneffecten zijn iets zwakkere prestaties op redeneertests, vreemde opmaak en in sommige gevallen een model dat schadelijke verzoeken onnauwkeurig beantwoordt in plaats van met nuttige details. Het effect varieert per basismodel en hoe agressief de bewerking is toegepast.

Twee dingen verminderen de schade. Een is het kiezen van de laag en sterkte die weigeringen op je testset verwijderen met de kleinste verandering elders. Het andere is de reparatie fine-tune hierboven vermeld. Geen van beide maakt de bewerking gratis, dus je moet een model testen op je eigen taken in plaats van een label te vertrouwen.

Veelvoorkomende misvattingen

"Het voegt nieuwe kennis toe." Dat doet het niet. De bewerking verwijdert alleen een gedrag. Als het basismodel een onderwerp niet kende, zal de geablitereerde versie het ook niet kennen. Het zal misschien gewoon een antwoord proberen waar het origineel weigerde.

"Het verwijdert alle veiligheid." Het verwijdert de weigeringsrichting die is gemeten. Andere aangeleerde gewoonten, zoals aarzelingstaal of morele uitweidingen, kunnen overleven, omdat ze over andere functies verspreid zijn. Sommige modellen voegen nog steeds een disclaimer toe na de bewerking.

"Grotere modellen zijn makkelijker te bewerken." De resultaten zijn gemengd. Grotere modellen houden het vaak beter uit onder de bewerking omdat ze meer reservecapaciteit hebben, maar de kwaliteit van je twee promptsets is belangrijker dan de ruwe grootte.

"Een modelkaart vertelt je alles." Kaarten beschrijven intentie. Ze bevatten zelden weigeringspercentages op jouw soort prompt. Een test van 40 prompts van jezelf duurt tien minuten en vertelt je meer dan de kaart.

"Het resultaat is altijd hetzelfde voor een bepaald basismodel." Dat is het niet. Verschillende promptsets, lagen en sterktes produceren verschillende bewerkingen, dus twee modellen gebouwd op dezelfde basis kunnen heel anders gedragen. Vergelijk ze direct in plaats van aan te nemen dat ze overeenkomen, en noteer de versie wanneer je testresultaten vastlegt.

Eén limiet geldt voor elke verantwoorde service, gehost of lokaal: inhoud die minderjarigen seksualiseert is van de tafel, en een weigeringsbewerking verandert die regel op deze site niet.

Hoe je een model evalueert voordat je erop bouwt

Schrijf een kort testbestand van 30 tot 50 prompts die overeenkomen met je echte gebruik: het soort fictie, analyse of code dat je gaat produceren. Neem een paar gewone taken op, zoals samenvatten of een feitelijke vraag beantwoorden, zodat je kunt zien of de algemene kwaliteit is gedaald. Voer hetzelfde bestand uit tegen elke kandidaat en lees de outputs. Tel weigeringen, maar lees ook op coherentie, instructievolging en herhaling.

Als je liever geen gewichten downloadt en host om dit te doen, kun je het bestand tegen een gehoste endpoint draaien. De API van deze site is OpenAI-compatibel en serveert één open-weight model, afgestemd om zonder inhoudelijke weigeringen te antwoorden voor wettelijk volwassen gebruik, onder de ID uncensored:

curl https://api.abliterated.cc/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Summarize the plot of Hamlet in three sentences."}]}'

Lees de overzicht van geablitereerde modellen voor meer over het kiezen van er een, of de pagina over de beste geablitereerde LLM voor rollenspel als karakterwerk je doel is. Details over verzoeken vind je in de API-documentatie. Nieuwe accounts kunnen een proefbedrag van $0,50 claimen zonder creditcard, genoeg om een testbestand van deze grootte uit te voeren.

Vragen en antwoorden

Heeft abliteration nieuwe trainingsdata nodig?

Nee. Je hebt twee kleine promptsets nodig om activaties te meten, maar het model is er niet op getraind. De wijziging is een directe bewerking van de gewichten.

Is een geablitereerd model hetzelfde als een jailbreak?

Nee. Een jailbreak is een prompt die probeert een model zover te krijgen dat het niet meer weigert. Abliteratie verandert het model zelf, dus er is geen speciale prompt nodig.

Maakt abliteratie een model slechter?

Vaak een beetje. Scores voor redeneren en de stijl kunnen verschuiven. Testen op je eigen prompts is de enige betrouwbare manier om te weten hoe het zich voor een specifiek model gedraagt.

Kan ik er een gebruiken zonder hem zelf te draaien?

Ja. Een gehoste OpenAI-compatibele API stelt je in staat een model aan te roepen zonder GPU. De base URL is https://api.abliterated.cc/v1 en de model ID is uncensored.

Je sleutel is nog maar één formulier verwijderd

Maak een account aan, kopieer de sleutel, pas de base URL aan. Dat is de hele setup.