Many information retrieval tasks require large labeled datasets for fine-tuning. However, such datasets are often unavailable, and their utility for real-world applications can diminish quickly due to domain shifts. To address this challenge, we develop and motivate a method for using large language models (LLMs) to generate large numbers of synthetic queries cheaply. The method begins by generating a small number of synthetic queries using an expensive LLM. After that, a much less expensive one is used to create large numbers of synthetic queries, which are used to fine-tune a family of reranker models. These rerankers are then distilled into a single efficient retriever for use in the target domain. We show that this technique boosts zero-shot accuracy in long-tail domains, even where only 2K synthetic queries are used for fine-tuning, and that it achieves substantially lower latency than standard reranking methods. We make our end-to-end approach, including our synthetic datasets and replication code, publicly available on Github.
翻译:许多信息检索任务需要大量标注数据集进行微调。然而,此类数据集通常难以获取,且因域偏移问题其在真实应用场景中的效用可能迅速衰减。针对这一挑战,我们开发并论证了一种利用大语言模型(LLMs)低成本生成大量合成查询的方法。该方法首先使用昂贵的大语言模型生成少量合成查询,随后借助成本显著较低的模型生成海量合成查询,用于微调一系列重排序器模型。接着将这些重排序器蒸馏为一个适用于目标域的高效检索器。实验表明,该技术能提升长尾领域的零样本准确率——即使仅使用2000条合成查询进行微调,且其延迟显著低于标准重排序方法。我们将端到端方案(包括合成数据集与复现代码)公开发布于GitHub。