Datawhale AI秋训营-baseline学习笔记

55 阅读3分钟

🎯 项目目标:构建面向应急管理领域的智能问答系统(RAG + LLM)

利用大语言模型(LLM)与检索增强生成(RAG)技术,针对危化品企业、安全生产政策法规等问题,构建一个可支持应急管理决策的智能问答系统。

特点:

  • 能理解自然语言问题
  • 能综合结构化表格数据(Excel)非结构化文本数据(Word、PDF)
  • 输出准确、符合规范的自然语言答案

🧠 核心知识图谱

技术模块作用本项目使用
RAG检索+生成,结合外部知识库提升准确性✅ 核心技术
Embedding模型文本向量化,实现语义检索BGE-M3
向量数据库存储向量并相似性搜索ChromaDB
LlamaIndex数据接入和索引构建框架✅ 使用核心组件
LLM(大语言模型)负责生成答案Qwen(API方式)

📂 赛题数据结构

数据类型数量示例处理方式
文本(Word / PDF)22 份法律法规、行业标准RAG(已在Baseline中实现)
表格(Excel)17 张企业信息、设备记录Text-to-SQL / Pandas

📌 赛题关键点与难点分析

✅ 要点:混合数据源问答

系统必须能够识别问题类型,并自动调用不同的数据源处理方式。

❗ 难点一:问题意图识别(Query Routing)

  • 判断问题属于“文本查询”还是“数据统计”
  • 甚至同一个问题可能包含两种意图,需要拆解

❗难点二:结构化数据查询(Text-to-SQL / Pandas Agent)

  • 如何将自然语言转化为多表关联查询语句?
  • 遵守赛题规则:不能合并表,必须动态关联

❗难点三:RAG优化

  • 文本分块策略
  • 检索准确率(可用重排序模型)
  • Embedding模型与Prompt设计

📚 Baseline 概述(当前方案现状)

项目指标状态
技术框架RAG + LlamaIndex
数据使用仅使用文本数据
模型调用通过 API 调用 Qwen 与 BGE-M3
成绩预估约 25.5 分(只解决文本类问题)
优点上手快、架构清晰、模块化便于升级
缺点无法处理 Excel 表格数据,无法应对统计类问题

🔧 Baseline 核心流程(RAG 文本问答)

.load 文本数据 → 生成向量索引 → 构建检索引擎 → 对问题(问题集question.csv)进行检索+生成 → 输出answer.csv

关键文件:

  • main.py:主流程
  • remote_embedding.py:Embedding模型封装+缓存机制
  • local_llamaindex_llm.py:大语言模型调用封装

🤔 未来优化方向

改进方向技术路径预期提升
✅ 表格数据接入Text-to-SQL / Pandas Agent / LlamaIndex TableIndex能回答统计类问题
✅ 问题路由器LLM分类器 + Prompt模板自动判断查询方式
✅ RAG策略优化Chunk策略 / 重排序模型提升答案准确性
✅ 离线可部署模型使用 xinference + 本地Qwen-7B/14B满足赛题要求

🎯 思考

  1. 如何判断一个问题属于文本查询还是表格查询?
  2. Text-to-SQL 实现能否做到多表动态关联?
  3. 如何设计一个统一的 QueryEngine 处理混合问题?
  4. RAG 的 chunk_size 和 overlap 如何影响召回效果?
  5. 如果换成本地模型部署,该如何替换 API 接口?

✅ 总结

Baseline 只是起点,它实现了 “文本问答” 的基本闭环。要想取得更高分或构建真正实用的应急管理智能助手,必须引入表格数据处理能力,并建立问题意图识别 + 多引擎协同的架构。