Skip to content

Latest commit

 

History

History
169 lines (132 loc) · 11.3 KB

数据自治智能体.md

File metadata and controls

169 lines (132 loc) · 11.3 KB

数据自治智能体

介绍

数据自治智能体全貌:通过自动化批量执行多轮智能体调用离线自适应数据采集生产评测数据集生产微调数据集模型推理训练数据集多维度自动评估等完整的workflow,以强化大模型和Agent的数据自治流程。

当前agentUniverse开放了数据自治MVP(最小可行产品)版本,根据用户指定的问题集自动化批量执行多轮智能体调用生产评测数据集数据集多维度自动评估产出评测报告,将数据自治思想传递到开源社区,后续将陆续开放数据自治workflow完整能力。

背景

当前,行业内对Agent智能体效果的测评,通常需要依赖于特定领域的专家进行大量的人工评审和标注,以确保评估结果的高质量和准确性。

dataAgent希望通过智能体本身的能力,对Agent数据进行自采集、自管理,以及智能化评判

在我们开放的mvp版本中,您可以通过dataset_build_agent智能体对于待评测的问题集进行多轮次的批量调用,生产评测数据集;之后通过dataset_eval_agent智能体采用蚂蚁公布的Fin-Eva数据评测标准基于7个维度(相关性、事实性、合理性、时效性、结构性、整体性、全面性)进行智能体数据评估和标注,将多轮次评测结果进行丰富的统计学分析,以提供给用户更直观的Agent能力变化。

通过一整套数据自治能力,可以非常轻松的通过智能化产出的评测报告,了解到您的智能体当前处于什么水平。

需要特别说明的是,整个评测报告分数为参考值,在实际投产过程中,我们将多轮多次得分进行综合对比,以分辨智能体效果好坏。

dataAgent流程图

data_agent_flowchart

  • data_agent包含两部分,dataset_build_agent负责自动化批量执行多轮智能体调用,生产评测数据集
  • dataset_eval_agent负责自动化多维度评估数据集,产出评测报告

dataAgent执行步骤

step1 建立智能体问题集

在dataAgent中,首先需要构建一个智能体问题集,以jsonl文件格式,其中每一行代表一次智能体调用的完整输入。

如下所示,建立3条问题集,input对应智能体的query信息:

{"input": "帮我预测下2024欧洲杯冠军"}
{"input": "半导体还能继续持有吗"}
{"input": "北京今天天气如何"}

step2 配置dataAgent

配置dataAgent智能体,如下所示,配置文件除智能体基本配置外,主要包含两个重要项,dataset_builder对应生产评测数据集的智能体名称,dataset_evaluator对应数据集评估标注的智能体名称。

info:
  name: 'data_agent'
  description: 'data agent'
profile:
  dataset_builder: 'dataset_build_agent'
  dataset_evaluator: 'dataset_eval_agent'
metadata:
  type: 'AGENT'
  module: 'data_agent_app.intelligence.agentic.agent.agent_instance.data_agent_case.data_agent'
  class: 'DataAgent'

data_agent配置文件样例地址

data_agent代码地址

step3 配置生产评测数据集的智能体

以step2中dataset_builder配置的dataset_build_agent,如下所示为dataset_build_agent的配置文件,配置文件除智能体基本配置外,主要包含两个重要项,candidate配置待评测的智能体名称(如评测demo_rag_agent效果,candidate配置demo_rag_agent),concurrency_level配置批量执行智能体调用时的并发度(如配置5,代表并发5调用candidate智能体)

info:
  name: 'dataset_build_agent'
  description: 'dataset build agent'
profile:
  concurrency_level: 1
  candidate: 'demo_rag_agent'
metadata:
  type: 'AGENT'
  module: 'data_agent_app.intelligence.agentic.agent.agent_instance.data_agent_case.dataset_build_agent'
  class: 'DatasetBuildAgent'

dataset_build_agent配置文件样例地址

dataset_build_agent代码地址

step4 配置数据集评估标注的智能体

以step2中dataset_evaluator配置的dataset_eval_agent,如下所示为dataset_eval_agent的配置文件,配置文件除智能体基本配置外,主要包含两个重要项,llm_model配置智能体模型,max_eval_lines配置评测数据行数(如配置10代表只评估前10条评测数据,避免全局评测,消耗巨大token量)

info:
  name: 'dataset_eval_agent'
  description: 'dataset eval agent'
profile:
  prompt_version: dataset_eval_agent.cn
  max_eval_lines: 10
  llm_model:
    name: 'qwen_llm'
    model_name: 'qwen2-72b-instruct'
    temperature: 0.1
metadata:
  type: 'AGENT'
  module: 'data_agent_app.intelligence.agentic.agent.agent_instance.data_agent_case.dataset_eval_agent'
  class: 'DatasetEvalAgent'

dataset_eval_agent配置文件样例地址

dataset_eval_agent代码地址

step5 运行dataAgent

通过 dataAgent代码入口,分别配置两个参数,queryset_path代表问题集路径,turn代表问题集总体执行轮次,一键启动dataAgent。

tips: 请合理配置问题集及具体评测行数,以免造成大量算力及token损耗。

dataAgent使用示例

参考上文dataAgent执行步骤,通过5步,启动配置好的dataAgent。

评测数据集

首先生成评测数据集,以jsonl文件的格式存储智能体的q&a对。 如下图所示:

  • query: 评测数据问题
  • answer: 评测数据答案

data_agent_dataset

dataAgent生产的评测数据集样例地址

完整评测结果

生产评测数据集后,dataAgent开始数据多维度评估标注,产出完整评测结果(若执行多轮dataAgent跑批任务,则产出多个完整评测结果)。

如下图所示:

  • Line Number: 当前评测数据在数据集中的行数
  • Overall Score: 综合分数 = 多个维度的评估分数总和 / 评估维度个数(满分5分,分数范围0-5)
  • Query: 评测数据问题
  • Answer: 评测数据答案
  • 相关性 Score: 代表评测数据答案与问题的相关性,分数越高越相关(满分5分,分数范围0-5)
  • 相关性 Suggestion: 代表相关性维度存在的问题和改进建议
  • 更多维度 Score/Suggestion 以此类推 data_agent_eval_result

评估节点发现的问题:

  • 例如第1条数据在相关性维度的suggestion: 虽然回答了关于北京天气的问题,但提供的温度单位为华氏度,与国内用户习惯的摄氏度不符,建议转换为摄氏度并提供更全面的天气信息,如湿度、风力等。
  • 例如第3条数据在事实性维度的suggestion: 回答中包含事实错误,如将阿根廷球星莱昂内尔·梅西错误地归入英格兰队。优化建议是确保所有提及的数据和事实准确无误,尤其是在涉及具体人物和事件时。

dataAgent生产的完整评测结果样例地址

综合评测报告

根据多轮完整的评测结果,生成一份综合评测报告。

如下图所示:

  • Line Name: 包含两种类型,如Queryset Turn x代表根据问题集第x轮生成的评测数据集, Turn Avg Score代表多轮多维度的平均分数
  • Overall Avg Score: 单轮数据集中所有数据的综合分数总和 / 数据集中对应数据量(满分5分,分数范围0-5)
  • 相关性 Avg Score: 单轮数据集中所有数据的相关性分数总和 / 数据集中对应数据量(满分5分,分数范围0-5)
  • 更多维度 Avg Score 以此类推 data_agent_eval_report

dataAgent生产的综合评测报告样例地址

对比实验

调整aU中demo_rag_agent中的模型从上文生产评测报告时的qwen1.5-7b-chat改为qwen1.5-72b-chat,通过dataAgent评测后,生成的综合评测报告如下:

下图为模型为qwen1.5-7b-chat时,数据自治智能体产出的综合评测报告: data_agent_eval_report

下图为模型为qwen1.5-72b-chat时,数据自治智能体产出的综合评测报告: data_agent_eval_report 对比两次综合评测报告,可以看到智能体模型从qwen1.5-7b-chat改为qwen1.5-72b-chat后,各维度多轮评分均存在大幅度上升,以此方法快速分辨智能体配置变更后,智能体效果差异。

dataAgent详细说明

data_agent

dataset_build_agent

  • 配置文件
  • 智能体文件
  • dataset_build_agent生产的评测数据以jsonl格式本地存储(jsonl文件名称为dataset_turn_{i}_{date},i代表轮次,date代表生成时间)

dataset_eval_agent

  • 配置文件
  • 智能体文件
  • 提示词文件:agentUniverse当前开放了6种产业中验证有效的智能体评估标准(MVP版本未开放全面性维度,当前全面性评估标准偏向金融领域,故未在开源社区中提及)
  • dataset_eval_agent生产的完整评测结果以excel格式本地存储(文件名称为eval_result_turn_{i}_{date},i代表轮次,date代表生成时间)
  • dataset_eval_agent生产的综合评测报告以excel格式本地存储(文件名称为eval_report_{date},date代表生成时间)