LLMAlternatingRecommender¶
- class baybe.recommenders.meta.llm.LLMAlternatingRecommender[source]¶
Bases:
SequentialMetaRecommenderA recommender alternating between an LLM recommender and another one.
A convenience specialization of
SequentialMetaRecommenderthat cycles between a language-model recommender and another recommender, advancing whenever new measurements become available. The sequence must consist of exactly two recommenders, the first of which must be anLLMRecommender.Public methods
__init__(recommenders[, mode, ...])Method generated by attrs for class LLMAlternatingRecommender.
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
Boolean indicating if the meta recommender is stateful.
Defines what shall happen when the last recommender in the sequence has been consumed but additional recommender changes are triggered:
A finite-length sequence of recommenders to be used.
- __init__(recommenders: Iterable, mode: Literal['raise', 'reuse_last', 'cyclic'] = 'raise', *, _n_last_measurements: int = 0)¶
Method generated by attrs for class LLMAlternatingRecommender.
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, recommender: RecommenderProtocol | None = None)[source]¶
Create the recommender directly from a LiteLLM model identifier.
- Parameters:
model (
str) – The LiteLLM model identifier for the 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.recommender (
Optional[RecommenderProtocol]) – The recommender alternated with the LLM. Defaults to aBotorchRecommender.
- Return type:
- Returns:
The configured recommender, cycling between the LLM and
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.
- mode: Literal['raise', 'reuse_last', 'cyclic']¶
Defines what shall happen when the last recommender in the sequence has been consumed but additional recommender changes are triggered:
"raise": An error is raised."reuse_last": The last recommender in the sequence is used indefinitely."cycle": The selection restarts from the beginning of the sequence.
- recommenders: tuple[RecommenderProtocol, ...]¶
A finite-length sequence of recommenders to be used. For infinite-length iterables, see
baybe.recommenders.meta.sequential.StreamingSequentialMetaRecommender.