项目介绍:RAG Experiment Accelerator
概述
RAG Experiment Accelerator 是一个多功能工具,旨在帮助用户通过 Azure AI Search 和 RAG 模式进行实验和评估。这个工具对研究人员、数据科学家和开发者都非常有用,特别是那些希望通过快速而系统的方式测试搜索查询或 OpenAI 响应质量的人群。本文将为您详细介绍这个工具的目的、特点、安装、使用方法等。
项目目的
RAG Experiment Accelerator 的主要目标是简化并加快运行搜索查询实验以及评估 OpenAI 响应质量的整个过程。具体而言,它让用户可以:
- 测试不同搜索及 OpenAI 相关超参数的性能。
- 比较各种搜索策略的有效性。
- 微调并优化参数。
- 寻找最佳超参数组合。
- 从实验结果生成详细的报告和可视化。
最新更新
截至2024年3月18日,工具新增了内容采样功能。这使数据集可以按照指定比例进行采样。通过内容聚类,并在每个聚类内进行采样,以求达到采样数据的均匀分布,确保采样结果具备代表性。
注意:由于涉及到新依赖项,如果您之前使用过这个工具,建议重新构建环境。
功能特性
RAG Experiment Accelerator 以配置驱动,支持多种丰富功能以实现其目的:
- 实验设置:用户可以通过指定搜索引擎参数、搜索类型、查询集和评估指标来定义和配置实验。
- 集成:无缝集成 Azure AI Search、Azure Machine Learning、MLFlow 和 Azure OpenAI 等产品。
- 丰富的搜索索引:根据配置文件中的超参数配置创建多个搜索索引。
- 多文件加载器:支持多种文件加载器,包括 Azure 文档智能加载器和 LangChain 基础加载器,让您在不同的提取方法之间进行比较和有效性评估。
- 自定义文档智能加载器:当选择 'prebuilt-layout' API 模型时,使用自定义加载器对数据进行格式化,以增强 LLM 的可读性,去除对于 LLM 无关的文件部分。
- 查询生成:能够根据特定实验需求生成多样化的可定制查询集合。
- 多种搜索类型:支持多种搜索类型,包括纯文本、纯向量、跨向量、多向量、混合等搜索,使得搜索能力得以全面分析。
- 子查询:该模式会分析用户查询,并在复杂度足够时,将其拆分为更小的子查询来生成相关上下文。
- 重排序:使用 LLM 对 Azure AI Search 的查询响应进行重新评估,并根据查询与上下文之间的相关性进行排序。
- 指标评估:支持终端到终端的指标比较,包括距离、余弦、语义相似性等指标,并使用 LLMs 评判检索与生成性能。
- 报告生成:自动化报告生成过程,带有可视化效果方便分析和分享实验发现。
- 多语言支持:提供单独语言以及用户定义搜索索引模式的语言分析器支持。
- 采样:当数据集庞大时,可以采用采样过程根据指定百分比创建小型但具代表性的数据样本,从而缩短实验时间并降低成本。
如何使用
使用 RAG Experiment Accelerator 您可以选择在开发容器中运行,或者直接在本地安装运行。准备好所需软件后,只需克隆项目仓库,安装依赖,配置环境变量,即可运行相关的 Python 脚本进行各类实验操作。
总结
RAG Experiment Accelerator 为用户提供了一整套工具以便更好地进行实验和评估,通过对 Hyperparameters 的细致调控,从而提升搜索及生成过程的效率和准确性。无论是对 AI 模型的研究,还是开发特定应用场景,都能从中受益。