# pllm.profiles Python API

Public objects, practical usage, and research context for pllm.profiles.

[View canonical HTML](https://pllm.run/sdk/reference/python/pllm/profiles/)

Document ID: `pllm.docs.reference.python.pllm.profiles`  
Release: `0.1.0`

Profiles provide reviewed slot-compatible pipeline presets while retaining the exact component identities used to compile an experiment. Presence documents API availability, not complete model, security, or deployment coverage; check [implementation status](/sdk/reference/status/) before relying on a path.

## Research context

Relevant design inputs: [Slalom](/research/papers/r07-slalom/). PLLM's implementation and evidence claims remain independent.

## Python SDK example

The example performs a bounded offline task and checks an observable result. It does not download a checkpoint or contact a provider.

```python
import pllm.profiles as profiles

from pllm.sources import TinyModel

selected = profiles.MaskedLinearCpu(TinyModel("qwen2"))
assert selected.to_spec()["components"]["linear"]["component"] == "pllm/masked-linear"
```

API: [`pllm.profiles`](/sdk/reference/python/pllm/profiles/#objects-and-signatures)

## Objects and signatures

### `DirectFHEProfile`

Pipeline(model: 'Model', components: 'Mapping[str, ComponentRef]', profile: 'str | None' = None).

- Canonical object: `pllm.profiles.DirectFHEProfile`
- Kind: `class`
- Signature/type: `__init__(self, model: ModelSource, *, linear: DirectFHE=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`
- Public exports: `pllm.DirectFHEProfile`, `pllm.pipeline.DirectFHEProfile`, `pllm.profiles.DirectFHEProfile`
- Public members: `PROFILE: str`; `__init__(self, model: ModelSource, *, linear: DirectFHE=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`; `property linear: DirectFHE`; `property inference: InferenceRole`; `property kernels: KernelBackend`; `get_params(self, deep: bool=True) -> dict[str, Any]`; `with_params(self, **changes: object) -> DirectFHEProfile`

### `MaskedLinearCpu`

Pipeline(model: 'Model', components: 'Mapping[str, ComponentRef]', profile: 'str | None' = None).

- Canonical object: `pllm.profiles.MaskedLinearCpu`
- Kind: `class`
- Signature/type: `__init__(self, model: ModelSource, *, linear: ProtocolMethod=..., preparation: PreparationProvider=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`
- Public exports: `pllm.MaskedLinearCpu`, `pllm.pipeline.MaskedLinearCpu`, `pllm.profiles.MaskedLinearCpu`
- Public members: `PROFILE: str`; `__init__(self, model: ModelSource, *, linear: ProtocolMethod=..., preparation: PreparationProvider=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`; `property linear: ProtocolMethod`; `property preparation: PreparationProvider`; `property inference: InferenceRole`; `property kernels: KernelBackend`; `get_params(self, deep: bool=True) -> dict[str, Any]`; `with_params(self, **changes: object) -> MaskedLinearCpu`

### `ProprietaryBlinded`

Pipeline(model: 'Model', components: 'Mapping[str, ComponentRef]', profile: 'str | None' = None).

- Canonical object: `pllm.profiles.ProprietaryBlinded`
- Kind: `class`
- Signature/type: `__init__(self, model: ModelSource, *, linear: BlindedLinear=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`
- Public exports: `pllm.ProprietaryBlinded`, `pllm.pipeline.ProprietaryBlinded`, `pllm.profiles.ProprietaryBlinded`
- Public members: `PROFILE: str`; `__init__(self, model: ModelSource, *, linear: BlindedLinear=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`; `property linear: BlindedLinear`; `property inference: InferenceRole`; `property kernels: KernelBackend`; `get_params(self, deep: bool=True) -> dict[str, Any]`; `with_params(self, **changes: object) -> ProprietaryBlinded`

### `ProprietaryGuarded`

Pipeline(model: 'Model', components: 'Mapping[str, ComponentRef]', profile: 'str | None' = None).

- Canonical object: `pllm.profiles.ProprietaryGuarded`
- Kind: `class`
- Signature/type: `__init__(self, model: ModelSource, *, linear: GuardedLinear=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`
- Public exports: `pllm.ProprietaryGuarded`, `pllm.pipeline.ProprietaryGuarded`, `pllm.profiles.ProprietaryGuarded`
- Public members: `PROFILE: str`; `__init__(self, model: ModelSource, *, linear: GuardedLinear=..., inference: InferenceRole=..., kernels: KernelBackend=...) -> None`; `property linear: GuardedLinear`; `property inference: InferenceRole`; `property kernels: KernelBackend`; `get_params(self, deep: bool=True) -> dict[str, Any]`; `with_params(self, **changes: object) -> ProprietaryGuarded`

### `VerifiedMaskedLinearCpu`

Pipeline(model: 'Model', components: 'Mapping[str, ComponentRef]', profile: 'str | None' = None).

- Canonical object: `pllm.profiles.VerifiedMaskedLinearCpu`
- Kind: `class`
- Signature/type: `__init__(self, model: ModelSource, *, linear: ProtocolMethod=..., preparation: PreparationProvider=..., inference: InferenceRole=..., kernels: KernelBackend=..., verification: VerificationScheme=...) -> None`
- Public exports: `pllm.VerifiedMaskedLinearCpu`, `pllm.pipeline.VerifiedMaskedLinearCpu`, `pllm.profiles.VerifiedMaskedLinearCpu`
- Public members: `PROFILE: str`; `__init__(self, model: ModelSource, *, linear: ProtocolMethod=..., preparation: PreparationProvider=..., inference: InferenceRole=..., kernels: KernelBackend=..., verification: VerificationScheme=...) -> None`; `property linear: ProtocolMethod`; `property preparation: PreparationProvider`; `property inference: InferenceRole`; `property kernels: KernelBackend`; `property verification: FreivaldsVerify`; `with_params(self, **changes: object) -> VerifiedMaskedLinearCpu`
