Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Predibase Lorax Merged Adapters Type

From Leeroopedia


Knowledge Sources
Domains Parameter_Efficient_Finetuning, API_Design
Last Updated 2026-02-08 02:00 GMT

Overview

Concrete tool for specifying multi-adapter merge configurations provided by the MergedAdapters Pydantic model.

Description

The MergedAdapters class is a Pydantic BaseModel that validates multi-adapter merge requests. It enforces constraints on adapter IDs (non-empty), weights (matching length), merge strategy (one of "linear", "ties", "dare_linear", "dare_ties"), density (0.0 to 1.0), and majority sign method ("total" or "frequency").

Usage

Used when constructing a merge request via Client.generate() with the merged_adapters parameter. Cannot be combined with adapter_id (mutually exclusive).

Code Reference

Source Location

  • Repository: LoRAX
  • File: clients/python/lorax/types.py
  • Lines: 13-58

Signature

class MergedAdapters(BaseModel):
    ids: List[str]
    weights: List[float]
    merge_strategy: Optional[str] = None
    density: float
    majority_sign_method: Optional[str] = None

    @field_validator("ids")
    def validate_ids(cls, v):
        if not v:
            raise ValidationError("`ids` cannot be empty")
        return v

    @field_validator("weights")
    def validate_weights(cls, v, values):
        ids = values.data["ids"]
        if not v:
            raise ValidationError("`weights` cannot be empty")
        if len(ids) != len(v):
            raise ValidationError("`ids` and `weights` must have the same length")
        return v

    @field_validator("merge_strategy")
    def validate_merge_strategy(cls, v):
        if v is not None and v not in MERGE_STRATEGIES:
            raise ValidationError(f"`merge_strategy` must be one of {MERGE_STRATEGIES}")
        return v

    @field_validator("density")
    def validate_density(cls, v):
        if v < 0 or v > 1.0:
            raise ValidationError("`density` must be >= 0.0 and <= 1.0")
        return v

Import

from lorax.types import MergedAdapters

I/O Contract

Inputs

Name Type Required Description
ids List[str] Yes Adapter IDs to merge (cannot be empty)
weights List[float] Yes Per-adapter blending weights (must match ids length)
merge_strategy Optional[str] No One of: "linear", "ties", "dare_linear", "dare_ties"
density float Yes Pruning density [0.0, 1.0] (1.0 = no pruning)
majority_sign_method Optional[str] No One of: "total", "frequency" (for TIES/DARE_TIES)

Outputs

Name Type Description
merged_adapters MergedAdapters Validated merge configuration object

Usage Examples

Linear Merge

from lorax import Client
from lorax.types import MergedAdapters

client = Client("http://localhost:3000")

merged = MergedAdapters(
    ids=["adapter-A", "adapter-B"],
    weights=[0.7, 0.3],
    merge_strategy="linear",
    density=1.0,
)

response = client.generate(
    "Summarize this text:",
    merged_adapters=merged,
    max_new_tokens=100,
)

TIES Merge with Pruning

merged = MergedAdapters(
    ids=["domain-adapter", "style-adapter", "safety-adapter"],
    weights=[0.5, 0.3, 0.2],
    merge_strategy="ties",
    density=0.7,
    majority_sign_method="total",
)

Related Pages

Implements Principle

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment