Implementing Semantic Join Operators Efficiently
Immanuel Trummer
TL;DR
This work addresses efficient semantic theta-joins in which the join predicate is expressed in natural language and evaluated by large language models. It introduces batch-based join operators inspired by block nested loops, accompanied by a formal token-budget cost model and adaptive selectivity mechanisms. The core contributions are a tuple-based baseline, a batch-oriented block join with explicit overflow handling, an analytic optimization of batch sizes under known selectivity, and an adaptive join that converges toward near-optimal costs without prior selectivity knowledge. Experimental results with GPT-4 show dramatic cost reductions and competitive accuracy compared with baselines like LOTUS across diverse data scenarios, enabling practical semantic joins at scale.
Abstract
Semantic query processing engines often support semantic joins, enabling users to match rows that satisfy conditions specified in natural language. Such join conditions can be evaluated using large language models (LLMs) that solve novel tasks without task-specific training. Currently, many semantic query processing engines implement semantic joins via nested loops, invoking the LLM to evaluate the join condition on row pairs. Instead, this paper proposes a novel algorithm, inspired by the block nested loops join operator implementation in traditional database systems. The proposed algorithm integrates batches of rows from both input tables into a single prompt. The goal of the LLM invocation is to identify all matching row pairs in the current input. The paper introduces formulas that can be used to optimize the size of the row batches, taking into account constraints on the size of the LLM context window (limiting both input and output size). An adaptive variant of the proposed algorithm refers to cases in which the size of the output is difficult to estimate. A formal analysis of asymptotic processing costs, as well as empirical results, demonstrates that the proposed approach reduces costs significantly and performs well compared to join implementations used by recent semantic query processing engines.
