LLMTwoPhaseRecommender

class baybe.recommenders.meta.llm.LLMTwoPhaseRecommender[source]

Bases: TwoPhaseMetaRecommender

A two-phase recommender that warm-starts with an LLM recommender.

A convenience specialization of TwoPhaseMetaRecommender whose initial_recommender must be an LLMRecommender. The language model proposes the first experiments, and the recommender switches to recommender once switch_after measurements have been collected.

Public methods

__init__([recommender, switch_after, ...])

Method generated by attrs for class LLMTwoPhaseRecommender.

from_dict(dictionary)

Create an object from its dictionary representation.

from_json(source, /)

Create an object from its JSON representation.

from_model(model, experiment_description, *)

Create the recommender directly from a LiteLLM model identifier.

get_current_recommender()

Deprecated! Use select_recommender() or get_non_meta_recommender() instead.

get_next_recommender()

Deprecated! Use select_recommender() or get_non_meta_recommender() instead.

get_non_meta_recommender([batch_size, ...])

Follow the meta recommender chain to the selected non-meta recommender.

recommend(batch_size, searchspace[, ...])

See baybe.recommenders.base.RecommenderProtocol.recommend().

select_recommender([batch_size, ...])

Select a recommender for the given experimentation context.

to_dict()

Create an object's dictionary representation.

to_json([sink, overwrite])

Create an object's JSON representation.

Public attributes and properties

initial_recommender

The language-model recommender used before the switch.

is_stateful

Boolean indicating if the meta recommender is stateful.

recommender

The recommender used by the meta recommender after the switch.

remain_switched

Determines if the recommender should remain switched even if the number of experiments falls below the threshold value in subsequent calls.

switch_after

The number of experiments required for the recommender to switch.

__init__(recommender: RecommenderProtocol = NOTHING, switch_after: int = 1, remain_switched: bool = False, *, initial_recommender: RecommenderProtocol)

Method generated by attrs for class LLMTwoPhaseRecommender.

For details on the parameters, see Public attributes and properties.

classmethod from_dict(dictionary: dict)

Create an object from its dictionary representation.

Parameters:

dictionary (dict) – The dictionary representation.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

classmethod from_json(source: str | Path | SupportsRead[str], /)

Create an object from its JSON representation.

Parameters:

source (Union[str, Path, SupportsRead[str]]) –

The JSON source. Can be:

  • A string containing JSON content.

  • A file path or Path object pointing to a JSON file.

  • A file-like object with a read() method.

Raises:

ValueError – If source is not one of the allowed types.

Return type:

TypeVar(_T, bound= SerialMixin)

Returns:

The reconstructed object.

classmethod from_model(model: str, experiment_description: str, *, litellm_args: dict[str, Any] | None = None, switch_after: int = 1, recommender: RecommenderProtocol | None = None)[source]

Create the recommender directly from a LiteLLM model identifier.

Parameters:
  • model (str) – The LiteLLM model identifier for the initial LLM recommender.

  • experiment_description (str) – Textual description of the experiment for the LLM.

  • litellm_args (Optional[dict[str, Any]]) – Optional additional arguments passed to LiteLLM.

  • switch_after (int) – The number of collected experiments after which the recommender switches from the LLM to recommender.

  • recommender (Optional[RecommenderProtocol]) – The recommender used after the switch. Defaults to a BotorchRecommender.

Return type:

LLMTwoPhaseRecommender

Returns:

The configured recommender.

get_current_recommender()

Deprecated! Use select_recommender() or get_non_meta_recommender() instead.

Return type:

PureRecommender

get_next_recommender()

Deprecated! Use select_recommender() or get_non_meta_recommender() instead.

Return type:

PureRecommender

get_non_meta_recommender(batch_size: int | None = None, searchspace: SearchSpace | None = None, objective: Objective | None = None, measurements: DataFrame | None = None, pending_experiments: DataFrame | None = None)

Follow the meta recommender chain to the selected non-meta recommender.

Recursively calls select_recommender() until a non-meta recommender is encountered, which is then returned. Effectively, this extracts the recommender responsible for generating the recommendations for the specified context.

See baybe.recommenders.base.RecommenderProtocol.recommend() for details on the method arguments.

Return type:

RecommenderProtocol

recommend(batch_size: int, searchspace: SearchSpace, objective: Objective | None = None, measurements: DataFrame | None = None, pending_experiments: DataFrame | None = None)

See baybe.recommenders.base.RecommenderProtocol.recommend().

Return type:

DataFrame

select_recommender(batch_size: int | None = None, searchspace: SearchSpace | None = None, objective: Objective | None = None, measurements: DataFrame | None = None, pending_experiments: DataFrame | None = None)

Select a recommender for the given experimentation context.

See baybe.recommenders.base.RecommenderProtocol.recommend() for details on the method arguments.

Return type:

RecommenderProtocol

to_dict()

Create an object’s dictionary representation.

Return type:

dict

Returns:

The dictionary representation of the object.

to_json(sink: str | Path | SupportsWrite[str] | None = None, /, *, overwrite: bool = False, **kwargs: Any)

Create an object’s JSON representation.

Parameters:
  • sink (Union[str, Path, SupportsWrite[str], None]) –

    The JSON sink. Can be:

    • None (only returns the JSON string).

    • A file path or Path object pointing to a location where to write the JSON content.

    • A file-like object with a write() method.

  • overwrite (bool) – Boolean flag indicating if to overwrite the file if it already exists. Only relevant if sink is a file path or Path object.

  • **kwargs (Any) – Additional keyword arguments to pass to json.dumps().

Raises:

FileExistsError – If sink points to an already existing file but overwrite is False.

Return type:

str

Returns:

The JSON representation as a string.

initial_recommender: RecommenderProtocol

The language-model recommender used before the switch.

property is_stateful: bool

Boolean indicating if the meta recommender is stateful.

recommender: RecommenderProtocol

The recommender used by the meta recommender after the switch.

remain_switched: bool

Determines if the recommender should remain switched even if the number of experiments falls below the threshold value in subsequent calls.

switch_after: int

The number of experiments required for the recommender to switch.