# tinker_cookbook.preference.ComparisonRendererFromChatRenderer

## _class_ [**tinker_cookbook.preference.ComparisonRendererFromChatRenderer**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/preference/types.py#L136)( _[ComparisonRenderer](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/preference/comparisonrenderer/)_)

Wraps a chat Renderer to render Comparisons for preference training.

Formats comparisons by concatenating the prompt conversation with labeled sections for Completion A and Completion B, separated by system markers.

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

Build a model input prompt for generating a preference label.

**Parameters:**

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

**Returns:** _types. [ModelInput](https://tinker-docs.thinking-machines.ai/tinker/api-reference/types/modelinput/)_ – Token-level model input ending at the `"==== Preference ====="` marker, ready for sampling.

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

The tokenizer from the underlying chat renderer.

**Returns:** _Tokenizer_ – The tokenizer instance.
