暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DB-GPT V0.6.1 版本更新:RAG 能力更强,新增 RAG 召回和 Agent 答案评测功能

EosphorosAI 2024-10-22
296

DB-GPT 全新升级 V0.6.1版本


在这个版本中,我们引入了一系列创新特性,包括GraphRAG三元组检索、新增RAG召回和Agent答案评测功能,以及对OceanBase向量数据库的新版本的兼容性支持。


让我们一起来看看这些新特性吧~


新特性

1、GraphRAG 三元组检索 + 文档结构检索

新版本在原社区摘要增强的GraphRAG基础上,引入了文档结构(Document Structure)索引,提升了知识图谱的丰富度和知识召回的完备性,并继续兼容基于AntV G6引擎的知识图谱渲染逻辑,让复杂数据关系一目了然。


回顾上个版本(DB-GPT 0.6.0),GraphRAG实现图社区摘要和混合检索的功能,解决了面向总结性查询(QFS)的问题。这次我们依据标准格式文件(目前对 Markdown 文件支持最好)中章节段落的层级信息,将文件结构组织为有向图,并写入到知识图谱(基于TuGraph底座)。图中的节点可以是文件的一个分片(chunk),边则代表了不同切分(chunk)之间在原文档中的结构关系。


(三元组结构:entity -[relation]-> entity;文档结构:document -> chunk -> chunk)

如图所示,我们拓展了 GraphRAG 中对于 Graph 的定义范畴:知识图谱(Knowledge Graph) = 三元组有向图 (Triplets Graph)+ 文档结构图(Document Structure Graph)。未来,我们希望构建一个更加复杂、覆盖更加全面的信息的 Graph,以便支持更加复杂的检索算法。


用户可以快速地在 DB-GPT 多前端应用中体验到该功能。生成的知识图谱将由 AntV G6 引擎驱动前端中渲染出来,以方便用户清晰直观地观察到图的可视化。


知识图谱构建与可视化(基于 qwen-max 模型):



知识图谱对话(基于 qwen-max 模型):



针对我们的更新的内容和功能,我们对于以下.env
环境变量做一个说明:


  • GRAPH_COMMUNITY_SUMMARY_ENABLED=True

    • 开启社区总结功能。基于指定的算法(默认 Leiden 算法),这个功能将会从知识图谱中找出社区,并通过 LLM 总结社区内容。

  • TRIPLET_GRAPH_ENABLED=True

    • 开启三元组图的构建和检索功能。

  • DOCUMENT_GRAPH_ENABLED=True

    • 开启文档结构图的构建和检索功能。

  • KNOWLEDGE_GRAPH_CHUNK_SEARCH_TOP_SIZE=5

    • 文档检索返回的 topk值。


快速使用:


选择“知识图谱”,名称不能只有数字(TuGraph 不接受不合规的名字)。



推荐上传 markdown 文档,我们对 markdown 做了优化,效果更好。



需要等待好一段时间,请不要取消。



开始聊天。提示,最好问和知识图谱相关的问题。


2新增RAG召回和Agent答案评测功能

DB-GPT V0.6.1版本中,新增RAG召回和Agent答案评测功能,确保你的应用能够提供最相关的答案


召回的文本中是否包含用户问题对应的答案严重影响着最终LLM回答效果;文本切块策略、向量化模型、混合召回策略等因素都会影响最终的召回效果;因此,召回环节的评估流程可以不断优化召回的各个环节,是构建RAG系统的必要步骤。


目前DB-GPT指标模块支持RAG召回指标以及Agent答案指标:

1.RAG
召回指标(RetrieverEvaluationMetric):

  • RetrieverHitRateMetric
    :命中率衡量的是RAG retriever
    召回出现在检索结果前top-k个文档中的比例。

  • RetrieverMRRMetric
    : Mean Reciprocal Rank通过分析最相关文档在检索结果里的排名来计算每个查询的准确性。更具体地说,它是所有查询的相关文档排名倒数的平均值。例如,若最相关的文档排在第一位,其倒数排名为 1;排在第二位时,为 1/2;以此类推。

  • RetrieverSimilarityMetric
    : 相似度指标计算,计算召回内容与预测内容的相似度。

2.Agent
答案指标:
  • AnswerRelevancyMetric
    :智能体答案相关性指标,通过智能体答案与用户提问的匹配程度。高相关性的答案不仅要求模型能够理解用户的问题,还要求其能够生成与问题密切相关的答案。这直接影响到用户的满意度和模型的实用性


使用教程:

1.RAG召回评测

  • http方式

    POST api/v2/serve/evaluate/evaluatio

      SPACE_ID={YOUR_SPACE_ID}


      curl --location --request POST 'http://localhost:5670/api/v2/serve/evaluate/evaluation' \
      --header 'Content-Type: application/json' \
      -d'{
      "scene_key": "recall",
      "scene_value": "'$SPACE_ID'",
      "context":{"top_k":5},
      "evaluate_metrics":["RetrieverHitRateMetric","RetrieverMRRMetric","RetrieverSimilarityMetric"],
      "datasets": [{
      "query": "what awel talked about",
      "doc_name":"awel.md"
      }]
      }'

      • python方式

        from dbgpt.client import Client
        from dbgpt.client.evaluation import run_evaluation
        from dbgpt.serve.evaluate.api.schemas import EvaluateServeRequest


        DBGPT_API_KEY = "dbgpt"
        client = Client(api_key=DBGPT_API_KEY)
        SPACE_ID={YOUR_SPACE_ID}
        request = EvaluateServeRequest(
        # The scene type of the evaluation, e.g. support app, recall
        scene_key="recall",
        # e.g. app id(when scene_key is app), space id(when scene_key is recall)
        scene_value=SPACE_ID,
        context={"top_k": 5},
        evaluate_metrics=[
        "RetrieverHitRateMetric",
        "RetrieverMRRMetric",
        "RetrieverSimilarityMetric",
        ],
        datasets=[
        {
        "query": "what awel talked about",
        "doc_name": "awel.md",
        }
        ],
        )
        data = await run_evaluation(client, request=request)

        2.Agent答案相关性评测

        • http方式

          APP_ID={YOUR_APP_ID}
          PROMPT_ID = {YOUR_PROMPT_ID}


          curl --location --request POST 'http://localhost:5670/api/v2/serve/evaluate/evaluation' \
          --header 'Authorization: Bearer dbgpt' \
          --header 'Content-Type: application/json' \
          -d '{
          "scene_key": "app",
          "scene_value": "'$APP_ID'",
          "context":{"top_k":5, "prompt":"'$PROMPT_ID'","model":"zhipu_proxyllm"},
          "evaluate_metrics":["AnswerRelevancyMetric"],
          "datasets": [{
          "query": "what awel talked about",
          "doc_name":"awel.md"
          }]
          }'
          • python方式

            APP_ID={YOUR_APP_ID}
            PROMPT_ID = {YOUR_PROMPT_ID}


            curl --location --request POST 'http://localhost:5670/api/v2/serve/evaluate/evaluation' \
            --header 'Authorization: Bearer dbgpt' \
            --header 'Content-Type: application/json' \
            -d '{
            "scene_key": "app",
            "scene_value": "'$APP_ID'",
            "context":{"top_k":5, "prompt":"'$PROMPT_ID'","model":"zhipu_proxyllm"},
            "evaluate_metrics":["AnswerRelevancyMetric"],
            "datasets": [{
            "query": "what awel talked about",
            "doc_name":"awel.md"
            }]
            }'

            评测更多说明参考: 

            https://www.yuque.com/eosphoros/dbgpt-docs/czgl7bsfclc1xsmh


            3、支持OceanBase向量数据库兼容4.3.3.0版本

            DB-GPT V0.6.1支持兼容OceanBase向量数据库新发布的4.3.3版本,包括filters查询和pyobvector客户端,数据库交互更灵活。


            • 支持了filters
              查询

            • 支持pyobvector客户端,兼容Milvus
              SQLAlchemy
              使用教程参考:https://github.com/oceanbase/pyobvector


            4、支持Qwen2.5b

            DB-GPT V0.6.1利用最新的Qwen2.5b模型,享受更强大的语言处理能力。

              LLM_MODEL=qwen2.5-7b-instruct

              5支持将stop参数传递给 proxyllm


              Bug 修复

              1修复了页面多文档上传分片前端问题

              2修复了Tongyi embedding
              模型bug

              3修复了docx 
              文档特殊格式解析问题

              4修复解决了vllm
              推理问题

              5解决了doc_token
              字段不为空的问题


              官方文档更新

              • 英文网址

                http://docs.dbgpt.site/docs/overview

              • 中文网址

                https://cdn.nlark.com/yuque/0/2023/png/23108892/1700727561057-e8e41943-cedb-40bb-bf02-0bf2d69ac826.png?x-oss-process=image%2Fquality%2Cq_10


              社区致

              我们感谢所有贡献者的努力,使得这次发布成为可能!


              @517739, @Aries-ckt, @GITHUBear, @Hopshine, @KingSkyLi, @csunny, @fangyinc, @fanzhidongyzby, @iCanDoAllThingszz, @lhwan, @mzaispace, @nightosong and @noahc1510 @appointat




              附录

              • 使用文档:

                https://www.yuque.com/eosphoros/dbgpt-docs/tdu4ehd91kvqy0ap


              • 视频教程

                • 项目整体介绍

                  https://www.bilibili.com/video/BV1Dr421W7mb/?vd_source=291a25eab97f9bbddf3c20a1969f2cdf

                • 安装部署:

                  https://www.bilibili.com/video/BV1JW421N7T5/?spm_id_from=333.999.list.card_archive.click&vd_source=291a25eab97f9bbddf3c20a1969f2cdf

              • 开发:

                https://www.yuque.com/eosphoros/dbgpt-docs/xiys17a7flrqovdx


              我们期待您的反馈,让我们一起推动DB-GPT项目发展!~




              文章转载自EosphorosAI,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论