# tinker_cookbook.preference.PreferenceModel

## _class_ [**tinker_cookbook.preference.PreferenceModel**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/preference/types.py#L202)()

Abstract base class for models that score a Comparison and return a preference float.

Subclasses implement `__call__` to return a score in [-1, 1] indicating which completion is preferred.

### [**__call__**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/preference/types.py#L209)( _comparison_)

Return a preference score for the given comparison.

**Parameters:**

- [**comparison**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/preference/types.py#L209) ( _[Comparison](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/preference/comparison/)_) – The comparison to evaluate.

**Returns:** _float_ – A score in [-1, 1]. -1 means A is strongly preferred, 0 is a tie, and 1 means B is strongly preferred.

## Referenced by

- [tinker_cookbook.preference.PreferenceModelBuilder](https://tinker-docs.thinking-machines-ai/cookbook/api-reference/preference/preferencemodelbuilder/)
- [tinker_cookbook.preference.PreferenceModelBuilder.__call__](https://tinker-docs.thinking-machines-ai/cookbook/api-reference/preference/preferencemodelbuilder/#preferencemodelbuilder-call)
- [tinker_cookbook.preference.PreferenceModelBuilderFromChatRenderer.__call__](https://tinker-docs.thinking-machines-ai/cookbook/api-reference/preference/preferencemodelbuilderfromchatrenderer/#preferencemodelbuilderfromchatrenderer-call)
- [tinker_cookbook.preference.PreferenceModelFromChatRenderer](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/preference/preferencemodelfromchatrenderer/)
