Skip to main content

Overview

Target configuration controls stimulus and rollout generation behavior. Targets are composed from a base template plus per-target overrides.

Configuration Fields

Generators

generators
array
List of generator configurations. See Generators.
"generators": [
    {"type": "oneshot_qs", "model": "claude-sonnet-4-5-20250929", "numq": 10},
    {"type": "hardcoded", "numq": 2, "questions": ["Question 1", "Question 2"]}
]

Prompts

teacher_prompt
string
Teacher prompt name - defines the expert behavior to bake into the model
"teacher_prompt": "expert_python_developer"
This prompt contains detailed, expert-level instructions that define how the model should respond. After baking, the model will exhibit this behavior when given the student prompt (or always, if student is empty).
student_prompt
string
Student prompt name - what the model receives at inference time
"student_prompt": "simple_coding_assistant"
# Or "" for empty (always-on behavior)
After baking, providing this simple prompt (or empty string) makes the model respond as if it received the teacher prompt. Empty student prompts result in zero-token, always-on expert behavior.
Use empty student_prompt ("") to permanently bake behavior into the model without needing any prompt trigger at inference time. This is the ultimate proof that baking modifies model weights!
Deprecated Fields: The u and v fields are deprecated in favor of teacher_prompt and student_prompt. Please update your code to use the new field names. The deprecated fields will be removed in a future version.

Model Configuration

model_name
string
Base model for rollout generation. Required for rollout jobs.
"model_name": "Qwen/Qwen3-32B"

Generation Parameters

max_tokens
integer
Maximum tokens to generate per response
"max_tokens": 150
temperature
number
Generation temperature (0.0-2.0). Higher = more random/creative.
"temperature": 1.0
num_traj_per_stimulus
integer
Number of trajectories (responses) to generate per stimulus
"num_traj_per_stimulus": 5

Performance

max_concurrency
integer
Maximum concurrent API requests during rollout
"max_concurrency": 50

Advanced

extra_kwargs
object
Additional arguments passed to chat.completions.create()
"extra_kwargs": {
    "top_p": 0.9,
    "frequency_penalty": 0.5
}

Complete Example

target = client.targets.set(
    target_name="advanced_target",
    repo_name="my_repo",
    template="default",
    overrides={
        # Generators
        "generators": [
            {
                "type": "oneshot_qs",
                "model": "claude-sonnet-4-5-20250929",
                "numq": 50,
                "temperature": 1.2
            },
            {
                "type": "from_dataset",
                "dataset": "code_contests",
                "numq": 30,
                "seed": 42
            }
        ],
        
        # Prompts
        "teacher_prompt": "system_prompt_expert",
        "student_prompt": "user_prompt_detailed",
        
        # Model
        "model_name": "Qwen/Qwen3-32B",
        
        # Generation params
        "max_tokens": 200,
        "temperature": 1.0,
        "num_traj_per_stimulus": 3,
        
        # Performance
        "max_concurrency": 100,
        
        # Advanced
        "extra_kwargs": {
            "top_p": 0.95,
            "frequency_penalty": 0.0
        }
    }
)

Field Reference Table

FieldTypeRequiredDefaultDescription
generatorsArrayNo[]List of generator configs
teacher_promptStringStim only-Teacher prompt name
student_promptStringStim only-Student prompt name
model_nameStringRollout only-Base model identifier
max_tokensIntegerNo-Max tokens per generation
temperatureFloatNo1.0Generation temperature
num_traj_per_stimulusIntegerNo1Trajectories per stimulus
max_concurrencyIntegerNo10Max concurrent requests
extra_kwargsObjectNo{}Additional model params

Template Inheritance

Targets can inherit from other targets:
# Base target
client.targets.set(
    target_name="base_target",
    repo_name="my_repo",
    template="default",
    overrides={
        "model_name": "Qwen/Qwen3-32B",
        "temperature": 1.0,
        "max_tokens": 150
    }
)

# Inherit and override
client.targets.set(
    target_name="high_temp_target",
    repo_name="my_repo",
    template="base_target",  # Inherit from base_target
    overrides={
        "temperature": 1.5  # Override only temperature
    }
)

Next Steps