in trl/mergekit_utils.py [0:0]
def create_merge_config_ties(self) -> "MergeConfiguration":
"""
Creates a merge configuration for a TIES merge of two models, with specified weights and densities.
"""
# Create the TIES merge configuration dictionary
merge_config_dict = {
"merge_method": "ties",
"slices": None, # Optional slices if needed
"models": [
{
"model": {
"model": {"path": self.target_model_path, "revision": None},
"lora": None,
"override_architecture": None,
},
"parameters": {"density": self.target_model_density, "weight": self.target_model_weight},
},
{
"model": {
"model": {"path": self.policy_model_path, "revision": None},
"lora": None,
"override_architecture": None,
},
"parameters": {"density": self.policy_model_density, "weight": self.policy_model_weight},
},
],
"parameters": {"normalize": self.normalize},
"base_model": {
"model": {"path": self.policy_model_path, "revision": None},
"lora": None,
"override_architecture": None,
},
"dtype": self.dtype,
"tokenizer_source": None,
"tokenizer": None,
"chat_template": None,
"out_dtype": None,
}
# Create the MergeConfiguration from the dictionary
merge_config = MergeConfiguration.model_validate(merge_config_dict)
return merge_config