意图驱动的自然语言接口:混合LLM与意图分类方法


意图驱动的自然语言接口:混合LLM与意图分类方法

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

点击“蓝字”关注我们
在当今数据驱动的商业环境中,数据分析人员和营销人员经常需要与复杂的数据库交互以获取洞察。然而,并非所有人都精通SQL等结构化查询语言,这就催生了对自然语言接口的需求。本文将深入探讨一种创新的意图驱动自然语言接口,该接口结合了大型语言模型(LLM)和意图分类技术,为数据洁净室(DataCleanRooms,DCRs)等隐私敏感环境提供了安全、高效的解决方案。
当数据分析师输入“我们应该重新定位哪些队列?”这样的查询时,他们实际上是在表达一种意图,而非直接发出SQL命令。这种简单的句子可能隐含着不同的操作,如细分排名、相似匹配或队列比较。将这些模糊的提示转化为结构化、符合政策的分析,需要的不仅仅是语言建模,更需要基于业务上下文和技术约束的语义理解。
传统的文本到SQL模型在处理这类问题时往往力不从心,尤其是在隐私优先的环境中,如数据洁净室,其中只能查询经过批准的模型和自定义估计函数,无法访问客户可识别数据。在这种情况下,意图分类成为关键技术,它将模糊的人类语言映射到结构化、可预测的类别,使下游系统能够采取行动。
本文介绍的混合自然语言接口旨在将用户意图转化为安全的SQL查询,并将其应用于数据洁净室等实际场景。在这些场景中,分析师和营销人员跨品牌协作,他们拥有不同的技能组合,但通常不精通SQL,而是最了解自己的品牌业务,并且可能跨地区使用母语表达品牌意图。
我们的系统架构借鉴了现代搜索引擎的语义搜索原理,将用户意图和SQL提示模板嵌入到同一向量空间中,使用FAISS(FacebookAISimilaritySearch)等技术将用户查询高效匹配到最合适的SQL模板。这种混合架构结合了以下关键组件:
:使用OpenAI的text-embedding-3-small等模型将文本转换为高维向量。
:快速查找最近邻意图。
:考虑商店/品牌和队列元数据。
:当模板无法安全解析查询时使用。
这种架构确保了系统的准确性、快速性和合规性,特别适合数据洁净室中跨企业边界的隐私保护数据协作。生成的查询自动遵守分析师的访问规则,例如:
无行级访问(如无原始客户ID)
仅应用所需的预批准转换(如HyperLogLog草图、标准化聚合)
只读SQL(仅SELECT查询)
由策略强制执行的模式和函数约束
意图分类是该系统的基础,它将非结构化的自然语言映射到结构化类别,从而驱动下游逻辑,如SQL模板选择。一个单一的提示,例如“ComfyWearCo和SportStyleShop之间哪些队列有重叠?”,可以被提炼为核心意图:两个品牌之间的队列重叠。
意图分类的重要性体现在以下几个方面:
:帮助区分比较、查找、排名和探索性任务。
:在任意文本到SQL生成之上强制执行基于模板的SQL路径。
:实现提示的快速路由,避免调用大型模型和产生幻觉输出。
这些意图使用每类5-10+个提示示例进行训练、嵌入和索引。例如,队列推荐、相似请求、队列重叠、队列比较和自然语言到SQL查询等不同意图都有相应的示例集。
基于嵌入的意图分类的核心是将自然语言提示转换为高维向量空间中的点,使得语义相似的提示在空间中距离较近。我们使用OpenAI的text-embedding-3-small模型来生成这些嵌入,该模型能够将文本转换为1024维的向量。
在数学上,嵌入过程可以看作是一个函数f:T→V,其中T是文本提示的集合,V是d维向量空间(d=1024)。该函数保留了文本的语义相似性,即如果两个提示在语义上相似,它们的嵌入向量在V中的欧几里得距离或余弦相似度就会很近。
一旦生成了嵌入,我们就使用FAISS来构建索引,以便快速查找与新输入提示最相似的示例。FAISS使用局部敏感哈希(LSH)等技术来加速高维空间中的最近邻搜索,使得在大规模数据集上的实时检索成为可能。
在实现方面,我们使用OpenAI的text-embedding-3-small来嵌入每个意图类别的精选标注提示示例,并使用FAISS对这些嵌入进行索引。以下是一个示例提示集:
队列推荐:
建议我们可以在ComfyWearCo尝试的未测试高价值队列。
SportStyleShop中有哪些尚未使用的有前途的细分市场?
列出ComfyWearCo中尚未定位的高价值队列。
相似请求:
SportStyleShop中哪些队列与ComfyWearCo的队列4相似?
在SportStyleShop中为ComfyWearCo的队列2查找相似细分市场。
显示ComfyWearCo队列4与其他商店的最佳匹配。
队列重叠:
跨品牌的哪些队列有重叠用户?
ComfyWearCo的队列3和SportStyleShop的队列4是否重叠?
队列比较:
比较ComfyWearCo的队列1和SportStyleShop的队列2的指标。
显示每个品牌的队列1及其KPI。
自然语言到SQL查询:
列出ComfyWearCo中客户生命周期超过2. 0的队列。
按总订单数显示ComfyWearCo的顶级队列。
索引代码的大致流程如下:
准备意图示例,包括文本、预期意图和语言。
使用OpenAIAPI生成嵌入。
将嵌入转换为适合FAISS的格式。
创建FAISS索引并添加嵌入。
保存索引和元数据(意图标签和原始提示)用于运行时预测。
选择FAISS而非基于SentenceTransformer的分类器,主要是因为FAISS具有以下优势:
:通过添加更多标注示例即可轻松扩展,无需重新训练。
:意图由其最近邻支持,可以进行检查。
:部署更快,维护更简单。
:支持开放世界分类和备用行为。
在数据洁净室环境中,我们假设有多个品牌,如ComfyWearCo和SportStyleShop。基于队列的数据模型的关键组件包括:
:存储每个商店的队列级指标的表,每个表由(store_id,cohort_id)键控,包含隐私保护的HLL草图和标准化指标。
:表示跨商店队列之间的相似性分数,引用草图表中的(store_a,cohort_a)和(store_b,cohort_b)。
所有查询生成,无论是通过模板还是LLM,都遵循这个实体关系模型,只使用可用字段和安全操作进行估计,如hll_estimate或hll_merge_agg。
由于自然语言中的品牌名称(如“ComfyWearCo”)与内部表名和商店ID不同,我们使用brand_registry. json来捕获映射关系,例如:
实体提取使用正则表达式和字符串匹配来检测提示中的商店和队列提及,这也使得该系统可以扩展到支持N个商店而无需更改实现。
给定预测的意图和提取的实体,我们使用特定于意图的SQL模板。以下是队列比较的示例:
这种方法通过完全基于可用模式来避免生成幻觉SQL。
如果没有匹配的模板,我们会回退到LLM(在我们的示例中使用GPT-4),使用以下提示:
这种受模式约束的提示大大减少了生成SQL中的错误。
问题:SportStyleShop中哪些队列与ComfyWearCo的队列5最相似?
问题:建议ComfyWearCo中尚未使用的高价值队列。
我们的方法的一个关键优势是它支持高级隐私保护功能,如HyperLogLog(HLL)草图,这在数据洁净室中常用于近似用户计数而不暴露原始标识符。
禁止行级数据,因此基数估计(如用户计数)必须通过草图计算。
允许使用hll_estimate和hll_merge_agg等函数,而不允许直接使用COUNT(DISTINCTuser_id)。
跨品牌队列之间的安全重叠和相似性依赖于HLL草图的相似性。
模板编码为在选择单个队列时使用hll_estimate。
系统防止滥用,例如避免在非聚合查询中使用hll_merge_agg。
LLM备用机制使用有效的HLL函数用法和约束进行模式初始化。
为了验证我们的方法,我们对30多个自然语言输入运行了提示测试套件,每个输入映射到我们支持的五个意图之一。结果显示,在各种意图类型上都具有很高的准确性和语义覆盖范围。以下是一些代表性示例:
提示:SportStyleShop中哪些队列与ComfyWearCo的队列3最相似?预测:lookalike_request|预期:lookalike_request
提示:比较ComfyWearCo的队列4和SportStyleShop的队列1。预测:cohort_comparison|预期:cohort_comparison
提示:建议ComfyWearCo中我们尚未使用的新高价值队列。预测:cohort_recommendation|预期:cohort_recommendation
评估证实,我们的基于FAISS的分类器与特定于意图的模板相结合,为数据洁净室中的各种探索性和诊断性查询提供了准确、可解释和安全的SQL。
尽管此实现使用OpenAI的GPT-4作为备用SQL生成,但该架构设计为与LLM无关。可以轻松替换为其他模型,如Anthropic的Claude、Google的Gemini或本地LLM如LLaMA3。
重要的是,无论使用哪种LLM,基于FAISS的意图分类器都保持不变。但是,如果选择的LLM(如Claude或开源模型)不提供嵌入API,则需要在本地生成嵌入。
可以通过sentence-transformers库切换到本地嵌入模型,如all-MiniLM-L6-v2:
这保持了基于FAISS的分类逻辑,同时与OpenAI的嵌入API解耦,还支持在气隙或受监管环境中进行本地推理。
我们展示了一种混合系统,该系统将语义搜索(通过嵌入+FAISS)与为数据洁净室环境量身定制的安全SQL生成相结合。通过将SQL生成基于模式和意图模板,并仅在必要时回退到LLM,该架构在表达能力和安全性之间取得了实际平衡。
这种方法为在隐私受限的分析环境中构建智能接口提供了蓝图。未来的工作可以包括使用置信度分数对FAISS结果进行排名,进一步提高系统的准确性和可靠性。随着数据隐私要求的不断发展,这种意图驱动的自然语言接口将在促进跨品牌数据协作方面发挥越来越重要的作用。


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录