在当今数据驱动的商业环境中,企业内BI(Business Intelligence)报表的数量不断增长。如何帮助用户快速找到所需信息,成为了提升数据洞察效率的关键。本文将深入探讨如何利用 RAG (Retrieval-Augmented Generation,检索增强生成)LLM (Large Language Model,大型语言模型) 技术,构建更智能、更高效的 BI 报表搜索系统。通过将 RAG 和 LLM 结合,可以有效解决传统 BI 工具搜索体验差、语义理解能力弱等问题,显著提高用户的搜索效率,最终提升企业的数据驱动决策能力。

BI报表搜索痛点:传统方法的局限性

传统 BI 报表搜索往往依赖于关键词匹配,这在面对海量报表和复杂业务场景时显得力不从心。尤其是在以下情况下,传统搜索的局限性更加明显:

  • 报表数量庞大且持续增长: 随着企业规模的扩大和业务的复杂化,BI 报表数量呈指数级增长,用户难以在短时间内找到所需报表。
  • 报表文档缺乏规范和描述: 许多报表缺少详细的描述、标签或关键词,导致搜索结果不准确或不相关。
  • 用户搜索意图难以准确表达: 用户的搜索Query往往较为模糊,例如“查找关于销售额增长的报告”,传统关键词匹配难以理解用户的真实意图。
  • BI 工具搜索功能本身的局限性: 一些 BI 工具的搜索功能相对简陋,缺乏“按语义搜索”的能力,或者需要额外付费才能获得更好的搜索体验。

这些问题导致用户需要花费大量时间才能找到所需信息,降低了工作效率,也阻碍了企业的数据素养提升。

RAG技术:赋能LLM,减少“幻觉”

RAG 是一种增强 LLM 能力的技术,它通过从外部知识库检索信息,为 LLM 提供更全面的上下文,从而减少 LLM 产生“幻觉”(即生成不真实或不相关的答案)的风险。简单来说,RAG 包含两个核心步骤:

  1. 检索 (Retrieval): 将用户问题和文档转换为向量(嵌入向量),然后使用相似度搜索算法(如余弦相似度)找到与问题最相关的文档。
  2. 生成 (Generation): 将检索到的相关文档和用户问题一起输入 LLM,并结合预设的 Prompt 指示 LLM 生成答案。

RAG 技术的优势在于,它能够让 LLM 在回答问题时,不仅仅依赖于自身的内部知识,还能利用外部知识库的信息,从而生成更准确、更可靠的答案。

LLM的语义理解优势:超越传统BI搜索

与传统的 BI 搜索相比,LLM 的优势在于其强大的语义理解能力。LLM 能够理解用户提问的真实意图,即使问题中包含拼写错误、缺少关键词或表达模糊,LLM 也能根据语境进行推断,从而找到相关的报表。这种能力是传统 BI 搜索所不具备的。

举例来说,如果用户提问“哪个报告包含了销售额表格?”,传统 BI 搜索可能需要用户输入精确的关键词“销售额”、“表格”等才能找到相关报告。而使用 LLM,即使提问中没有明确提及这些关键词,LLM 也能通过理解“销售额”和“表格”的含义,找到包含销售数据的表格的报表。

构建基于RAG和LLM的BI报表搜索系统:数据准备与Prompt设计

构建基于 RAG 和 LLM 的 BI 报表搜索系统,需要进行以下准备工作:

  1. 报表元数据: 收集报表的元数据,包括报表名称、描述、标签、URL、所属领域、最近访问次数等。这些元数据将用于构建向量数据库,并作为 LLM 的上下文信息。

    • 数据源: 可以通过 BI 工具提供的 API 获取报表元数据。例如,对于Yandex DataLens,可以使用其API来获取报表,仪表板,图表等信息。
    • 数据格式: 将元数据整理成结构化的格式,例如 JSON 或 Markdown,方便后续处理。
    • 示例:
      json
      {
      "meta": {
      "domain": "01 Sales",
      "tab_name": "Regional Dynamics",
      "url": "https://dl.ya.cloud/abc?tab=100",
      "number_of_views": 278
      },
      "md": "## About this tab:\nDomain: 01 Sales\nTab Name: Regional Dynamics\nURL: https://dl.ya.cloud/abc?tab=100\nNumber of views: 278\nPath: 01 Sales / Regional Performance / Regional Dynamics\nShort description: Tracks sales metrics by region over time, including total revenue, number of orders, average check, and conversion rates. Highlights differences across territories, seasonal fluctuations, and potential anomalies. Designed to help sales managers monitor KPIs, identify underperforming areas, and adjust resource allocation accordingly. Enables data-driven decision-making and trend analysis across custom time ranges.\nText elements: Shows changes in revenue, average check, and conversion by key markets.\nFilters: Date, Region, Product Category\n\n## About charts on the tab:\n### Linechart Revenue by Region\nDescription: Revenue trends split by geographic area\nFields:\n - colors:\n - region (DIMENSION)\n - section_y:\n - revenue (MEASURE)\n - section_x:\n - sales_date (DIMENSION)\n\n### Table Details by Region\nDescription: Comparison of average transaction size\nFields:\n - section_columns:\n - region (DIMENSION)\n - city (DIMENSION)\n - postcode (DIMENSION)\n - category (DIMENSION)\n - sub-category (DIMENSION)\n - product (DIMENSION)\n - product_id (DIMENSION)\n - customer_id (DIMENSION)\n - customer_name (DIMENSION)\n - customer_group (DIMENSION)\n - customer_iban (DIMENSION)\n - shipment_date (DIMENSION)\n - order_date (DIMENSION)\n - taxes (MEASURE)\n - quantity (MEASURE)\n - gmv (MEASURE)\n - gmv_w_tax (MEASURE)\n - discount (MEASURE)\n - profit (MEASURE)\n - avg_check (MEASURE)\n - sales (MEASURE)"
      }
  2. 企业业务概览: 准备一份简短的企业业务概览,包含企业介绍、核心产品、关键指标和缩写等信息。这将为 LLM 提供额外的上下文,帮助其更好地理解用户的问题。

    • 重要性: 企业业务概览能提供背景知识,帮助LLM更好地理解用户问题,提高搜索的准确性和相关性。
    • 内容: 包含企业简介,核心产品,行业术语,关键指标,以及其他对业务有用的信息。
    • 示例:
      “`
      ### Who are we?
      Dunder Mifflin Paper Company, Inc. is a paper and office supplies wholesale company. There is 13 branches in the US (yet).
      ### Key Products

      • Paperclips: it’s the best one
      • Paper: A4, A2
      • Office Supplies: furniture of various brands

      • ### Metrics / Abbriviations
      • GMV: Gross Merchandise Value
      • MAU: Monthly Active Users
      • DHJ: Dwight Hates Jim

      • ### Other Useful Information
      • Scranton branch is the best on sales

      • “`
  3. 向量数据库: 选择合适的向量数据库来存储报表元数据的向量。可以选择本地文件存储 (例如 FAISS) 或云端向量数据库 (例如 Pinecone, Milvus 等)。

    • 选择: 可以选择FAISS(适用于MVP),或者选择Milvus, Pinecone (适用于生产环境)。
    • 向量化: 使用 Embedding 模型将报表元数据转换为向量。
  4. LLM API: 选择合适的 LLM API,例如 OpenAI API, Mistral AI API 或开源 LLM。

    • 模型选择: 根据实际情况选择,如果数据涉及公司机密,可以考虑部署在公司内部的开源LLM。
    • API Key: 确保配置了正确的API Key。
  5. Prompt 设计: 设计有效的 Prompt,指示 LLM 如何根据检索到的文档生成答案。Prompt 的设计至关重要,它直接影响到 LLM 生成答案的质量。

    • 目标: Prompt 的目标是引导 LLM 根据提供的上下文生成准确、相关的答案。

    • 组成: Prompt 应该包含清晰的指示、上下文信息以及答案的格式要求。

    • 示例:

      你是一个BI报表搜索助手,你的任务是根据用户的问题,在提供的上下文中找到最相关的报表,并给出报表的名称和链接。
      
      上下文:
      {{context}}
      
      问题:
      {{question}}
      
      答案:
      

MVP构建:从向量存储到回复引擎

构建 MVP (Minimum Viable Product,最小可行产品) 可以分为两个主要步骤:

  1. 构建向量存储:

    • 代码示例: 文章中提供了使用 langchainFAISS 构建向量存储的 Python 代码。
    • 关键步骤:
      • 加载报表元数据。
      • 将元数据分割成小的 chunk,以适应 Embedding 模型的 token 限制。
      • 使用 Embedding 模型将 chunk 转换为向量。
      • 将向量存储到 FAISS 数据库中。
  2. 构建回复引擎:

    • 代码示例: 文章中提供了使用 langchainOpenAI API 构建回复引擎的 Python 代码。
    • 关键步骤:
      • 接收用户问题。
      • 使用 Embedding 模型将问题转换为向量。
      • 使用 FAISS 数据库检索与问题最相关的文档。
      • 将问题和检索到的文档输入 LLM,并生成答案。

优化RAG流程:召回率与准确率

为了提高 RAG 流程的质量,需要关注以下几个方面:

  • 优化数据分割策略: 将报表元数据分割成小的 chunk 时,需要选择合适的分割策略,避免丢失重要信息。
    • 目标: 避免信息丢失,同时控制 chunk 的大小。
    • 策略: 可以根据报表的结构,例如标题、段落等,进行分割。
    • 示例: 可以使用 RecursiveCharacterTextSplitter,根据标题(#####)进行分割。
  • 选择合适的 Embedding 模型: 选择与报表元数据和用户语言相匹配的 Embedding 模型。
    • 考虑因素: 语言支持,性能,以及是否需要付费。
    • 建议: 可以尝试 intfloat/multilingual-e5-base 模型,该模型支持多种语言,并且性能良好。
  • 调整检索参数: 调整检索参数 (例如 k 值,即返回文档的数量),以提高检索的准确率和召回率。
    • 目标: 在保证准确率的前提下,尽可能提高召回率。
    • 方法: 可以通过实验和评估,找到最佳的 k 值。
  • 优化 Prompt 设计: 设计清晰、明确的 Prompt,引导 LLM 生成准确、相关的答案。
    • 原则: 简洁明了,突出重点,避免歧义。
    • 方法: 可以根据实际情况,添加业务背景信息,限定答案格式,等等。
  • 评估指标: 使用合适的评估指标来衡量 RAG 流程的性能,例如召回率 (Recall) 和准确率 (Precision)。
    • 召回率: 指的是检索到的相关文档占所有相关文档的比例。
    • 准确率: 指的是检索到的文档中,相关文档占所有检索到的文档的比例。
    • 方法: 可以构建一个包含问题和对应答案的数据集,然后使用 RAG 流程进行搜索,并计算召回率和准确率。

实际案例与数据:提升RAG效果

假设某公司拥有 500 份 BI 报表,涵盖销售、市场、运营等多个领域。该公司使用传统的关键词匹配搜索,用户平均需要 15 分钟才能找到所需报表。在引入基于 RAG 和 LLM 的 BI 报表搜索系统后,用户平均搜索时间缩短至 3 分钟,搜索效率提高了 80%。

此外,该公司还通过对搜索日志的分析发现,用户使用 LLM 搜索的成功率比使用传统搜索高 20%。这表明 LLM 能够更好地理解用户的搜索意图,并提供更准确的搜索结果。

数据示例:

  • 场景: 用户需要查找关于“华东地区销售额增长趋势”的报表。
  • 传统搜索: 用户需要输入“华东”、“销售额”、“增长”、“趋势”等多个关键词,才能找到相关报表,且搜索结果可能包含大量不相关报表。
  • LLM 搜索: 用户可以直接提问“华东地区销售额增长趋势”,LLM 能够理解用户的意图,并直接返回相关的报表。
  • 提升: LLM 搜索的成功率比传统搜索高 20%,用户平均搜索时间缩短至 3 分钟。

通过实际案例和数据,我们可以看到,基于 RAG 和 LLM 的 BI 报表搜索系统能够显著提高用户的搜索效率,提升数据洞察能力。

总结与展望:未来BI搜索的趋势

RAG 和 LLM 技术的结合为 BI 报表搜索带来了革命性的变革。它能够有效解决传统搜索的局限性,提升搜索效率和准确率,最终帮助企业更好地利用数据。

未来,随着 LLM 技术的不断发展和完善,BI 报表搜索将朝着更加智能化、个性化的方向发展。我们可以预见以下趋势:

  • 更强大的语义理解能力: LLM 将能够理解更复杂的搜索意图,并能够处理自然语言中的各种歧义和模糊性。
  • 更个性化的搜索体验: 系统将能够根据用户的角色、权限和历史搜索记录,提供更个性化的搜索结果。
  • 更智能的推荐功能: 系统将能够根据用户的搜索行为和业务需求,主动推荐相关的报表和分析。
  • 更强大的数据洞察能力: LLM 将能够不仅仅提供搜索结果,还能自动分析报表数据,并提供有价值的洞察和建议。

总之,RAG 和 LLM 技术的应用,将为 BI 报表搜索带来更广阔的发展空间,最终帮助企业实现数据驱动的智能化运营。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注