# 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.thinkingmachines.ai/cookbook/api-reference/preference/comparisonrenderer/index.md)*) 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.thinkingmachines.ai/cookbook/api-reference/preference/comparison/index.md)*) – The comparison to render. **Returns:** *types.[ModelInput](https://tinker-docs.thinkingmachines.ai/tinker/api-reference/types/modelinput/index.md)* – 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.