AutoRAG
AI知识库

AutoRAG

AutoRAG 是一个开源框架,旨在自动化检索增强生成(RAG)流程。它提供数据准备、检索器选择、生成模型集成、自动评估与优化等功能,帮助开发者高效构建和部署 RAG 系统,适用于智能客服、知识问答、内容创作等多种场景。

快点收藏起来

什么是 AutoRAG

AutoRAG 是一个由 Marker-Inc-Korea 开发的开源框架,其核心目标是自动化检索增强生成(Retrieval-Augmented Generation, RAG)流程的各个环节。在自然语言处理(Natural Language Processing, NLP)领域,RAG 技术通过结合预训练语言模型和外部知识库,显著提升了模型在开放域问答、文本生成等任务中的性能。AutoRAG 的出现,旨在简化和优化 RAG 系统的构建、评估和部署过程,使得开发者能够更高效地利用 RAG 技术。

autoarg

AutoRAG 的功能

AutoRAG 提供了一系列强大的功能,以实现 RAG 流程的自动化和精细化管理,主要包括:

  • 自动化数据准备与索引: AutoRAG 能够自动处理各种格式的文档数据,并将其转化为适合检索的向量索引。这大大简化了数据预处理的流程,降低了使用门槛。
  • 灵活的检索器选择与配置: 框架支持多种主流的检索算法和工具,例如基于向量相似度的检索、关键词检索等。用户可以根据实际应用场景灵活选择和配置检索器,以达到最佳的检索效果。
  • 可定制的生成模型集成: AutoRAG 可以与各种预训练语言模型无缝集成,包括但不限于 OpenAI 的 GPT 系列、Hugging Face 的 Transformers 模型等。用户可以根据需求选择合适的生成模型,并进行相应的配置。
  • 自动化的评估与优化: AutoRAG 内置了多种评估指标和方法,可以自动评估 RAG 系统的性能,并提供优化建议。这有助于开发者快速迭代和改进 RAG 系统。
  • 模块化和可扩展的架构: AutoRAG 采用模块化的设计,方便开发者根据自己的需求进行定制和扩展。用户可以轻松添加自定义的数据加载器、检索器、生成器和评估器。
  • 实验管理和版本控制: 框架提供了实验管理的功能,可以帮助用户记录和比较不同配置下的实验结果,方便进行版本控制和模型选择。

如何使用/快速开始 AutoRAG

要开始使用 AutoRAG,您可以按照以下步骤进行操作:

  1. 环境搭建: 首先,您需要确保您的环境中安装了 Python 和 pip。然后,您可以按照 AutoRAG 的官方文档或者 GitHub 仓库中的说明,安装所需的依赖包。通常,这会涉及到克隆 AutoRAG 的 GitHub 仓库,并使用 pip 安装 requirements.txt 文件中列出的依赖项。
  2. 数据准备: 准备您希望用于检索的文档数据。AutoRAG 支持多种数据格式,例如文本文件、PDF 文件、JSON 文件等。您需要将这些数据放置在 AutoRAG 可以访问的目录下。
  3. 配置 RAG 流程: 通过 AutoRAG 提供的配置文件或者 API,您可以配置 RAG 流程的各个环节,包括选择数据加载器、检索器、生成模型以及相应的参数。例如,您可以指定使用哪种向量数据库进行索引,选择哪种预训练语言模型进行生成。
  4. 运行 AutoRAG: 配置完成后,您可以运行 AutoRAG 提供的脚本或者调用相应的 API 来启动 RAG 流程。AutoRAG 将会自动完成数据加载、索引构建、检索和生成等步骤。
  5. 评估和优化: 运行结束后,您可以利用 AutoRAG 提供的评估工具来评估 RAG 系统的性能。根据评估结果,您可以调整配置参数、更换模型或者优化数据,以进一步提升系统性能。
pip install AutoRAG
#pip install "AutoRAG[gpu]"
#pip install "AutoRAG[gpu,parse]"

#设置yaml文件
modules:
  - module_type: langchain_parse
    parse_method: pdfminer
#解析
from autorag.parser import Parser
parser = Parser(data_path_glob="your/data/path/*")
parser.start_parsing("your/path/to/parse_config.yaml")

#设置yaml文件
modules:
  - module_type: llama_index_chunk
    chunk_method: Token
    chunk_size: 1024
    chunk_overlap: 24
    add_file_name: en
#切分
from autorag.chunker import Chunker
chunker = Chunker.from_parquet(parsed_data_path="your/parsed/data/path")
chunker.start_chunking("your/path/to/chunk_config.yaml")

#生成 QA 数据集
import pandas as pd
from llama_index.llms.openai import OpenAI

from autorag.data.qa.filter.dontknow import dontknow_filter_rule_based
from autorag.data.qa.generation_gt.llama_index_gen_gt import (
    make_basic_gen_gt,
    make_concise_gen_gt,
)
from autorag.data.qa.schema import Raw, Corpus
from autorag.data.qa.query.llama_gen_query import factoid_query_gen
from autorag.data.qa.sample import random_single_hop

llm = OpenAI()
raw_df = pd.read_parquet("your/path/to/parsed.parquet")
raw_instance = Raw(raw_df)

corpus_df = pd.read_parquet("your/path/to/corpus.parquet")
corpus_instance = Corpus(corpus_df, raw_instance)

initial_qa = (
    corpus_instance.sample(random_single_hop, n=3)
    .map(
        lambda df: df.reset_index(drop=True),
    )
    .make_retrieval_gt_contents()
    .batch_apply(
        factoid_query_gen,  # query generation
        llm=llm,
    )
    .batch_apply(
        make_basic_gen_gt,  # answer generation (basic)
        llm=llm,
    )
    .batch_apply(
        make_concise_gen_gt,  # answer generation (concise)
        llm=llm,
    )
    .filter(
        dontknow_filter_rule_based,  # filter don't know
        lang="en",
    )
)
initial_qa.to_parquet('./qa.parquet', './corpus.parquet')

更详细的使用说明和代码示例,请参考 AutoRAG 的官方文档和 GitHub 仓库:https://github.com/Marker-Inc-Korea/AutoRAG。您可以在该仓库中找到详细的安装指南、使用教程和 API 文档,帮助您快速上手并充分利用 AutoRAG 的强大功能。

AutoRAG 的优势与应用场景

AutoRAG 的自动化特性和灵活性使其在众多场景中具有显著的优势:

  • 提高开发效率: 自动化流程减少了手动配置和编码的工作量,加速了 RAG 系统的开发和部署。
  • 降低使用门槛: 即使对于 RAG 技术不太熟悉的开发者,也可以通过 AutoRAG 快速构建和使用 RAG 系统。
  • 提升系统性能: 自动化的评估和优化功能有助于开发者找到最佳的系统配置,从而提升 RAG 系统的性能。
  • 广泛的应用场景: AutoRAG 可以应用于各种需要利用外部知识的 NLP 任务,例如智能客服、知识图谱问答、文档摘要、内容创作等。

随着 NLP 技术的不断发展,RAG 技术在各种应用场景中的重要性日益凸显。AutoRAG 作为一款优秀的自动化 RAG 框架,无疑将为开发者提供强大的工具,助力他们构建更智能、更高效的 NLP 应用。

相关导航

发表回复