导读
2023 年 1 月,TiDB Cloud 发布了 Chat2Query 功能,在 TiDB Cloud 上通过自然语言提问,即可生成相应的 SQL,对用户上传的任意数据集进行分析。Chat2Query 正在彻底改变企业探索和理解数据的方式。
经过一年多的研发迭代,现在 Chat2Query 在 Spider 基准测试中得分 86.30,并曾在 BIRD 基准测试中跻身前四。本文将深入探讨 Chat2Query 的工作原理及其背后的 Text2SQL 技术,以及我们如何提升 Chat2Query 的能力。
相比其他工具,Chat2Query 能够对用户上传的大规模数据集进行理解和分析,摒弃繁杂的专业术语和查询语句,Chat2Query 使得用户能够通过自然语言直接向数据库提问,并即时获得答案。
丰富数据上下文
首先,Chat2Query 需要熟悉您的数据。为此,它会使用关系型数据库和向量数据库来分析您的数据库。这种混合方法使 Chat2Query 能够理解数据库的结构以及表、列和实体之间的关系。其中,向量数据库尤其重要,它存储了更复杂的高维数据,帮助 Chat2Query 更好地理解数据点之间的关系。Chat2Query 对数据了解得越多,提供的回答就越准确和深入。
提出问题
在数据上下文得到充分丰富后,用户即可开始提问。Chat2Query 会将你的问题转换为 SQL 查询,提取相关数据,并生成答案——通常还会附带直观的图表或图形,让信息更加清晰易懂。
图 1. Chat2Query 的工作原理
理解数据库(Understand DB)
为了使 Chat2Query 高效运行,理解数据库的结构(schema)至关重要。这正是 “理解数据库”(Understand DB)功能的作用所在——就像给 Chat2Query 提供了一张数据的“地图”,帮助其掌握表、列和实体之间的相互关系。
图 2. 理解数据库
优化提示词:提示工程(Prompt Engineering)
我们不能期待随便向系统提一个复杂的问题,就获得精准的答案。因此,我们通过提示工程(Prompt Engineering)来确保 Chat2Query 精确响应问题。通过结合思维链(Chain of Thought, COT)和检索增强生成(Retrieval Augmented Generation, RAG)等先进技术,我们指导系统逐步推理问题,确保生成的 SQL 查询尽可能精准。
图 3. 提示工程的主要步骤
微调与后加工处理(Fine-Tuning with Post-Processing)
即使使用 LLM(大语言模型) 这样的先进技术,幻觉现象(hallucinations) 仍可能发生。因此,我们在后加工处理阶段(post-processing)采用多智能体协作机制(multi-agent collaboration mechanism),让多个“专家”协同工作,审核 SQL 结果,识别潜在错误,并优化查询,提高其准确性。
这一机制确保即使模型遗漏或误解某些内容,系统的其他组件也能介入,捕捉问题并进行必要的调整。这种额外的优化层极大地增强了 Chat2Query 生成 SQL 查询的可靠性。
现在,让我们看看 Chat2Query 如何帮助企业做出更明智的决策:
随着 AI 技术的发展,企业与数据的交互方式也将更加简单。Chat2Query 仍在不断进化,把“数据驱动”的运营模式带给更多企业和个人。