No history yet

Configuring Multidimensional Search Spaces

Defining the Field of Play

When optimizing a complex system like a RAG pipeline, you aren't just guessing. You're searching. The universe of all possible configurations—every combination of models, settings, and thresholds—is called the search space. Think of it like a vast, uncharted landscape. Your goal is to find the peak, the single point in that landscape that yields the best performance.

Each decision you can make corresponds to a dimension in this space. Choosing an embedding model is one dimension. Setting the number of retrieved documents is another. The value of a similarity cutoff is a third. The total search space is the product of all possible choices across all dimensions. Before you can explore this landscape, you need a map. That means defining its dimensions by classifying each tunable you control.

The Three Types of Levers

The parameters that define your search space typically fall into one of three categories. Understanding them is key to configuring a search that is both effective and efficient.

Parameter TypeDescriptionRAG/LLM Example
ContinuousA value within a given range, like a floating-point number.Retrieval similarity threshold (e.g., 0.7 to 0.95).
DiscreteA whole number value, often from a specific set.Number of chunks to retrieve (top-k), chunk size in tokens.
CategoricalA selection from a fixed list of options, where the options have no inherent order.Embedding model (text-embedding-ada-002, e5-large-v2).

A continuous parameter gives you a smooth spectrum of choices, like adjusting a dimmer switch. A discrete parameter is more like a knob with distinct clicks. And a categorical parameter is a switch that flips between entirely different modes of operation.

Mapping a RAG Pipeline

Let’s apply this to a standard RAG pipeline. It has multiple stages, and each stage has its own set of tunable levers that interact with the others. The optimal chunk size, for example, is often dependent on the embedding model you choose.

Even with this simplified view, we have nine different parameters. If we only test three options for each, we're looking at $3^9$ or 19,683 possible combinations. This explosive growth is known as the —as you add more parameters (dimensions), the volume of the search space grows so fast that it becomes impossible to explore exhaustively.

The key is not to test every point, but to search intelligently. A well-defined search space is the first step.

Taming Complexity with Schemas

To manage this complexity, we define the search space formally using a configuration schema. This is just a structured file, often in JSON or YAML, that tells an automated tuning tool (like one using or random search) what the boundaries are. It defines the name of each parameter, its type, and its valid range or set of choices.

A schema also lets you define constraints and dependencies. For example, you might specify that chunk_overlap must always be less than chunk_size. Or you might create a hierarchical structure where you only tune the prompt template if a specific LLM is chosen. This trims branches off the search tree before the search even begins.

# A simple search space configuration for a RAG system

search_space:
  - name: chunk_size
    type: discrete
    values: [256, 512, 1024]

  - name: top_k
    type: discrete
    values: [3, 5, 8]

  - name: similarity_threshold
    type: continuous
    bounds: [0.7, 0.9]

  - name: embedding_model
    type: categorical
    choices:
      - name: bge-large-en-v1.5
      - name: e5-large-v2

By defining your search space with a clear schema, you transform a messy, manual tuning process into a systematic, repeatable experiment. You provide the map and the boundaries, allowing powerful optimization algorithms to explore the vast landscape of possibilities efficiently.

Quiz Questions 1/6

What is the "search space" in the context of optimizing a system like a RAG pipeline?

Quiz Questions 2/6

When tuning a RAG pipeline, you are deciding between three different LLMs (e.g., 'Llama-3', 'GPT-4o', 'Gemini-1.5'). What type of parameter is this choice?

This structured approach is the foundation for moving beyond simple trial-and-error and into the world of true hyperparameter optimization.