微信扫码
添加专属顾问
相关参考
指标+LLM的结合的路径已有比较多的讨论,尤其围绕dbt的生态,认为通过dbt中metric的语义说明可以减少歧义,有一些相关的参考及项目比如:
1. https://www.getdbt.com/blog/semantic-layer-as-the-data-interface-for-llms
2. https://github.com/dbt-labs/dbot
此外,常见的提升生成查询准确性的方法就是通过RAG召回标注问答,给大模型提供fewshot“仿写”的补充。类似的项目比如:
1. https://vanna.ai/docs/
不过以上这些方案,都只将数据模型和指标语义部分当做知识输入,最终还是输出sql查询,跟接下去描述的运用指标层的方式有一点差异。
具体说明
整体来说我们自然语言分析的过程如下,接下去将对有差异的一些点展开说明
意图识别
对于用户输入的问题,第一步是让大模型进行意图区分是分析问题还是普通的对话。由于指标回答即使出错,也可以通过兜底SQL编写,因此分析类查询问题可以尽量优先进入指标分支。
指标匹配
区分于常规的NL2SQL的查询,在查询prompt之前,我们需要明确用户问题与哪个/哪些指标有关,这里有以下手段可以参考:1.通过问题内容从指标元数据中进行召回(包括指标名称、指标业务描述、维度采样;2.通过传统NLP手段利用关键词召回指标;3.基于1,2召回的部分指标,再由大模型进行最终判断该问题与哪个/哪些指标相关。
在企业级客户的指标量级之下,直接通过大模型在全量指标中进行识别会导致响应慢、占用过多token的问题,因此这里加了1,2两步前置操作。
查询prompt
比如最简单的NL2SQL的prompt可能是这样的
##示意你是一个分析师blahblah现有schema如下:{table_name}|column|type|sampling_data|现有指标以及其sql表达式如下:xxx有如下例子可供参考:#1{history question}{history answer sql}#2...请通过编写sql回答用户的问题:{user’s question}
其中元数据、字段采样数据和历史问答的召回部分是可以通用的,而采用指标查询的方式其模版如下:
#示意你是一个分析师blahblah系统中对指标有三种查询策略(以下表达式仅做示意区分于sql编写)1.多维分析对指标进行多维分析,支持添加过滤条件等metric.analyis('metric_name').filter_by('expressions').group_by('dimensions')2.指标归因对指标在指定时间段内的波动进行多维下钻归因metric.rootcause('metric_name').duration('time1','time2').filter_by('expressions').drill_by('dimesnions')3.指标预测对指标未来时间段内的趋势进行预测metric.predict('metric_name').duration('time1','time2').filter_by('expressions').drilldown('dimesnions')现有指标如下:{metric name}{metric describe}|dimension|type|sampling_data|...有如下例子可供参考:1{history question}{history answer query}2...清通过编写查询表达式回答用户的问题:{user’s question}
对比常规2SQL的方案,通过指标编写的优势如下:
1. 指标作为一个对象,在代码执行时会根据其定义进行查询,不需要大模型翻译其过滤条件、表达式,这样可以减少出错的机会(尤其是指标定义或过滤条件很复杂,或者涉及复合指标的定义时)。
2. 对采样数据来说,具体到某个指标会更准确。在sql方案中,只能对表的字段进行采样;而在指标方案中,每个指标的每个维度上都有采样结果。例如:“化妆品销量”的skuid列表和“服装销量”的skuid列表肯定不同,当用户直接提问“sku12345的销售额是多少”时,该ID出现在“化妆品销量”的skuid采样中,而可能不在全表的skuid列表采样中(一般会对采样数量限制),因此这种直接指定维值/字段值的问题通过指标采样被召回的可能性会更高。
3. 可以将业务常用的指标归因、指标预测等分析模型标准化,这样可以直接调用,这是通过sql查询不大容易做到或特别不稳定的点。
4. 对比sql,在结果展示时,更容易翻译为用户可读、可操作的条件要素
但同样通过指标方案有一些劣势如下:
1. 依赖指标语义的表达能力,不如sql开放,比如一些嵌套查询、多指标交叉查询、非指标的灵活查询等不一定支持
2. 编写指标查询表达式语法,是大模型需要学习的新知识,容易写错。这里可以通过finetune或者提供足够多的fewshot提升其准确度
回答解读
不论上一步是sql查询还是指标表达式的查询,在解读中,都可以从企业自身的业务数据库中召回相关的内容,对回答进行一定的描述性分析。
结果展示
为了形成数据闭环,在生成查询结果后,应支持用户对条件进行检查并提供反馈。例如:
可以看出其展示了指标分析的时间范围、过滤条件和维度,同时提供对、错的反馈。理想的情况下,在用户点“对”后,应记录为历史问答作为fewshot的来源;而用户点“错”后,应引导用户进一步修改上述的条件,或提供条件正确与否的反馈,这种反馈进一步可以作为语义的补充。
感想
虽然NL2SQL已经是AI Agent中一个细分类型,且SQL又是数据查询的通用语言,但数据平台可以进一步拆分场景,例如指标平台、标签画像平台等,在各自的工作流中,可以结合平台能力和上下文拆分任务,缩小大模型输出内容的空间,这可能是平台产品结合AI能力的另一种方式,而非一定去卷模型能力。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2024-07-12
用Kimi一键将表单生成流程图、流程说明
2024-07-01
Quick BI站稳Gartner ABI挑战者象限,打造“人人能用的BI”
2024-06-25
《2024中国制造业智能BI解决方案与案例》报告正式发布
2024-06-22
易于扩展的组件
2024-06-22
TOP100 Summit:融合ChatBI与HeadlessBI:腾讯音乐构建下一代数据分析平台的实践
2024-06-21
ChatBI开源实现: AI+BI的产品设计
2024-06-21
AI+BI融合新篇章:问答式BI 实践与探索
2024-06-21
揭秘未来!用预测性BI分析,掌握行业先机!
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。