LLMTwoPhaseRecommender¶
- class baybe.recommenders.meta.llm.LLMTwoPhaseRecommender[source]¶
Bases:
TwoPhaseMetaRecommenderA two-phase recommender that warm-starts with an LLM recommender.
A convenience specialization of
TwoPhaseMetaRecommenderwhoseinitial_recommendermust be anLLMRecommender. The language model proposes the first experiments, and the recommender switches torecommenderonceswitch_aftermeasurements 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.
Deprecated! Use
select_recommender()orget_non_meta_recommender()instead.Deprecated! Use
select_recommender()orget_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
The language-model recommender used before the switch.
Boolean indicating if the meta recommender is stateful.
The recommender used by the meta recommender after the switch.
Determines if the recommender should remain switched even if the number of experiments falls below the threshold value in subsequent calls.
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_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
Pathobject pointing to a JSON file.A file-like object with a
read()method.
- Raises:
ValueError – If
sourceis 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 torecommender.recommender (
Optional[RecommenderProtocol]) – The recommender used after the switch. Defaults to aBotorchRecommender.
- Return type:
- Returns:
The configured recommender.
- get_current_recommender()¶
Deprecated! Use
select_recommender()orget_non_meta_recommender()instead.- Return type:
- get_next_recommender()¶
Deprecated! Use
select_recommender()orget_non_meta_recommender()instead.- Return type:
- 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:
- 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:
- to_dict()¶
Create an object’s dictionary representation.
- Return type:
- 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
Pathobject 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 ifsinkis a file path orPathobject.**kwargs (
Any) – Additional keyword arguments to pass tojson.dumps().
- Raises:
FileExistsError – If
sinkpoints to an already existing file butoverwriteisFalse.- Return type:
- Returns:
The JSON representation as a string.
-
initial_recommender:
RecommenderProtocol¶ The language-model recommender used before the switch.
-
recommender:
RecommenderProtocol¶ The recommender used by the meta recommender after the switch.