⚗️ distilabel is a framework for synthetic data and AI feedback for AI engineers that require high-quality outputs, full data ownership, and overall efficiency.
This PR adds the MixtureOfAgents llm, an special LLM that allows combining an aggregator_llm and a list of proporsers_llms as described in this paper: https://arxiv.org/abs/2406.04692. Although LLMs in distilabel are not in charge of tweaking the input, this special LLM does as it requires to inject the Mixture-of-Agents system prompt in the system prompt of the task allowing passing the references of the proposers_llms.
⚠️ This system prompt injection should work fine with every task, although it hasn't been tested with all the tasks, only with the TextGenerationtask.
In addition and motivated by the addition of the MixtureOfAgentsLLM, this PR adds/updates the following:
The RuntimeParametersMixin has been updated to automatically handle attributes with type List[RuntimeParametersMixin]. The way to set the runtime parameters for the list of mixins is via a dict in which each key references the position of the mixin in the list to which the runtime parameters wants to be set.
The CLI has been updated to be able to render List[RuntimeParametersMixin] attributes.
Custom from_dict method of the Step has been removed as parent method is able to deserialise _Serializable attributes recursively.
Remove duplicate generate method implementation of AsyncLLMs adding a new _num_generations_param_supported flag that executes the right method to handle the num_generations parameter.
Description
This PR adds the
MixtureOfAgents
llm, an special LLM that allows combining anaggregator_llm
and a list ofproporsers_llms
as described in this paper: https://arxiv.org/abs/2406.04692. AlthoughLLM
s indistilabel
are not in charge of tweaking the input, this special LLM does as it requires to inject the Mixture-of-Agents system prompt in the system prompt of the task allowing passing the references of theproposers_llms
.In addition and motivated by the addition of the
MixtureOfAgentsLLM
, this PR adds/updates the following:RuntimeParametersMixin
has been updated to automatically handle attributes with typeList[RuntimeParametersMixin]
. The way to set the runtime parameters for the list of mixins is via adict
in which each key references the position of the mixin in the list to which the runtime parameters wants to be set.List[RuntimeParametersMixin]
attributes.from_dict
method of theStep
has been removed as parent method is able to deserialise_Serializable
attributes recursively.generate
method implementation ofAsyncLLM
s adding a new_num_generations_param_supported
flag that executes the right method to handle thenum_generations
parameter.