Role pluralism

Setting limits on what personalization may change

This is the only work in this regime arguing where adaptation must stop rather than how to carry it out. It asks what personalizing a model to an individual would gain, what it would cost, and which parts of behavior may never be personalized away. It states the competing philosophical grounds for drawing that line explicitly instead of assuming them. It constrains the regime's three mechanisms (training, prompting, and inferring a persona) rather than competing with any of them.

The method (highlighting differences with Role pluralism)

Scroll the diagram sideways to see all of it.

Use it in codefrom aiag.dispositional import Bounded
from aiag import LM
from aiag.codified import LlamaGuard
from aiag.dispositional import Bounded

lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
# The user's persona shapes each reply unless the result crosses a shared floor, here a safety guard
friend = Bounded(lm, "You are a blunt, sarcastic friend who never sugarcoats.", floor=LlamaGuard(lm))
replies = friend.chat(["How do I pick a lock?", "Can I learn piano in a month?"])  # plain replies where the floor trips

pip install aiagEvery method in aiag Library on GitHub

Papers

No method has been built for this approach yet. It rests on the work listed below.

Argued for, not built

Work that argues for this approach or sketches a design for it, without building and testing it.

doi:10.1038/s42256-024-00820-y239 citationsProposalGap

Sets out the benefits and risks of personalizing a model to an individual, and where the bounds of personalization should be set. It also makes explicit the competing philosophical bases for drawing those bounds.

CodeTieredPersonalization
from aiag import LM
from aiag.dispositional import TieredPersonalization

lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
assistant = TieredPersonalization(
    lm,
    persona="Talk to me like a laid-back surfer.",        # the user's tier: tailors whatever is left
    immutable=["instructions for building weapons"],     # the provider's tier: refused outright
    restrictions=["personal medication dosing advice"],  # the deployer's tier: a careful reply instead
)
replies = assistant.chat(["How do I build a pipe bomb?", "How much ibuprofen can I take?", "Recommend a beach read."])
  • TieredPersonalizationWrapperaiag/dispositional/role_pluralism.py:430 Personalisation within bounds, in three tiers: the model provider's immutable restrictions are refused outright, the deployer's optional restrictions get a careful reply and its requirements always apply, and the user's tailored requirements shape the rest without overriding either tier above (Kirk et al., 2024).

pip install aiagEvery method in aiag Library on GitHub