偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

圖驅(qū)動(dòng)的自然語言接口:混合LLM與意圖分類方法

人工智能
我們展示了一種混合系統(tǒng),該系統(tǒng)將語義搜索(通過嵌入+FAISS)與為數(shù)據(jù)潔凈室環(huán)境量身定制的安全SQL生成相結(jié)合。通過將SQL生成基于模式和意圖模板,并僅在必要時(shí)回退到LLM,該架構(gòu)在表達(dá)能力和安全性之間取得了實(shí)際平衡。

在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的商業(yè)環(huán)境中,數(shù)據(jù)分析人員和營銷人員經(jīng)常需要與復(fù)雜的數(shù)據(jù)庫交互以獲取洞察。然而,并非所有人都精通SQL等結(jié)構(gòu)化查詢語言,這就催生了對(duì)自然語言接口的需求。本文將深入探討一種創(chuàng)新的意圖驅(qū)動(dòng)自然語言接口,該接口結(jié)合了大型語言模型(LLM)和意圖分類技術(shù),為數(shù)據(jù)潔凈室(Data Clean Rooms, DCRs)等隱私敏感環(huán)境提供了安全、高效的解決方案。

自然語言接口的挑戰(zhàn)與機(jī)遇

當(dāng)數(shù)據(jù)分析師輸入“我們應(yīng)該重新定位哪些隊(duì)列?”這樣的查詢時(shí),他們實(shí)際上是在表達(dá)一種意圖,而非直接發(fā)出SQL命令。這種簡單的句子可能隱含著不同的操作,如細(xì)分排名、相似匹配或隊(duì)列比較。將這些模糊的提示轉(zhuǎn)化為結(jié)構(gòu)化、符合政策的分析,需要的不僅僅是語言建模,更需要基于業(yè)務(wù)上下文和技術(shù)約束的語義理解。

傳統(tǒng)的文本到SQL模型在處理這類問題時(shí)往往力不從心,尤其是在隱私優(yōu)先的環(huán)境中,如數(shù)據(jù)潔凈室,其中只能查詢經(jīng)過批準(zhǔn)的模型和自定義估計(jì)函數(shù),無法訪問客戶可識(shí)別數(shù)據(jù)。在這種情況下,意圖分類成為關(guān)鍵技術(shù),它將模糊的人類語言映射到結(jié)構(gòu)化、可預(yù)測(cè)的類別,使下游系統(tǒng)能夠采取行動(dòng)。

本文介紹的混合自然語言接口旨在將用戶意圖轉(zhuǎn)化為安全的SQL查詢,并將其應(yīng)用于數(shù)據(jù)潔凈室等實(shí)際場(chǎng)景。在這些場(chǎng)景中,分析師和營銷人員跨品牌協(xié)作,他們擁有不同的技能組合,但通常不精通SQL,而是最了解自己的品牌業(yè)務(wù),并且可能跨地區(qū)使用母語表達(dá)品牌意圖。

系統(tǒng)架構(gòu)概述

我們的系統(tǒng)架構(gòu)借鑒了現(xiàn)代搜索引擎的語義搜索原理,將用戶意圖和SQL提示模板嵌入到同一向量空間中,使用FAISS(Facebook AI Similarity Search)等技術(shù)將用戶查詢高效匹配到最合適的SQL模板。這種混合架構(gòu)結(jié)合了以下關(guān)鍵組件:

  1. 基于嵌入的意圖分類:使用OpenAI的text-embedding-3-small等模型將文本轉(zhuǎn)換為高維向量。
  2. 基于FAISS的語義檢索:快速查找最近鄰意圖。
  3. 模板驅(qū)動(dòng)的SQL生成:考慮商店/品牌和隊(duì)列元數(shù)據(jù)。
  4. 嚴(yán)格的模式引導(dǎo)LLM補(bǔ)全(作為備用):當(dāng)模板無法安全解析查詢時(shí)使用。

這種架構(gòu)確保了系統(tǒng)的準(zhǔn)確性、快速性和合規(guī)性,特別適合數(shù)據(jù)潔凈室中跨企業(yè)邊界的隱私保護(hù)數(shù)據(jù)協(xié)作。生成的查詢自動(dòng)遵守分析師的訪問規(guī)則,例如:

  • 無行級(jí)訪問(如無原始客戶ID)
  • 僅應(yīng)用所需的預(yù)批準(zhǔn)轉(zhuǎn)換(如HyperLogLog草圖、標(biāo)準(zhǔn)化聚合)
  • 只讀SQL(僅SELECT查詢)
  • 由策略強(qiáng)制執(zhí)行的模式和函數(shù)約束

意圖分類:系統(tǒng)的核心

意圖分類是該系統(tǒng)的基礎(chǔ),它將非結(jié)構(gòu)化的自然語言映射到結(jié)構(gòu)化類別,從而驅(qū)動(dòng)下游邏輯,如SQL模板選擇。一個(gè)單一的提示,例如“ComfyWearCo和SportStyleShop之間哪些隊(duì)列有重疊?”,可以被提煉為核心意圖:兩個(gè)品牌之間的隊(duì)列重疊。

意圖分類的重要性體現(xiàn)在以下幾個(gè)方面:

  1. 消歧:幫助區(qū)分比較、查找、排名和探索性任務(wù)。
  2. 安全:在任意文本到SQL生成之上強(qiáng)制執(zhí)行基于模板的SQL路徑。
  3. 速度:實(shí)現(xiàn)提示的快速路由,避免調(diào)用大型模型和產(chǎn)生幻覺輸出。

這些意圖使用每類5-10+個(gè)提示示例進(jìn)行訓(xùn)練、嵌入和索引。例如,隊(duì)列推薦、相似請(qǐng)求、隊(duì)列重疊、隊(duì)列比較和自然語言到SQL查詢等不同意圖都有相應(yīng)的示例集。

基于嵌入的意圖分類數(shù)學(xué)原理

基于嵌入的意圖分類的核心是將自然語言提示轉(zhuǎn)換為高維向量空間中的點(diǎn),使得語義相似的提示在空間中距離較近。我們使用OpenAI的text-embedding-3-small模型來生成這些嵌入,該模型能夠?qū)⑽谋巨D(zhuǎn)換為1024維的向量。

在數(shù)學(xué)上,嵌入過程可以看作是一個(gè)函數(shù)f: T→V,其中T是文本提示的集合,V是d維向量空間(d=1024)。該函數(shù)保留了文本的語義相似性,即如果兩個(gè)提示在語義上相似,它們的嵌入向量在V中的歐幾里得距離或余弦相似度就會(huì)很近。

一旦生成了嵌入,我們就使用FAISS來構(gòu)建索引,以便快速查找與新輸入提示最相似的示例。FAISS使用局部敏感哈希(LSH)等技術(shù)來加速高維空間中的最近鄰搜索,使得在大規(guī)模數(shù)據(jù)集上的實(shí)時(shí)檢索成為可能。

意圖分類器:嵌入+引導(dǎo)標(biāo)注

在實(shí)現(xiàn)方面,我們使用OpenAI的text-embedding-3-small來嵌入每個(gè)意圖類別的精選標(biāo)注提示示例,并使用FAISS對(duì)這些嵌入進(jìn)行索引。以下是一個(gè)示例提示集:

  • 隊(duì)列推薦

建議我們可以在ComfyWearCo嘗試的未測(cè)試高價(jià)值隊(duì)列。

SportStyleShop中有哪些尚未使用的有前途的細(xì)分市場(chǎng)?

列出ComfyWearCo中尚未定位的高價(jià)值隊(duì)列。

  • 相似請(qǐng)求

SportStyleShop中哪些隊(duì)列與ComfyWearCo的隊(duì)列4相似?

在SportStyleShop中為ComfyWearCo的隊(duì)列2查找相似細(xì)分市場(chǎng)。

顯示ComfyWearCo隊(duì)列4與其他商店的最佳匹配。

  • 隊(duì)列重疊

跨品牌的哪些隊(duì)列有重疊用戶?

ComfyWearCo的隊(duì)列3和SportStyleShop的隊(duì)列4是否重疊?

  • 隊(duì)列比較

比較ComfyWearCo的隊(duì)列1和SportStyleShop的隊(duì)列2的指標(biāo)。

顯示每個(gè)品牌的隊(duì)列1及其KPI。

  • 自然語言到SQL查詢

列出ComfyWearCo中客戶生命周期超過2.0的隊(duì)列。

按總訂單數(shù)顯示ComfyWearCo的頂級(jí)隊(duì)列。

索引代碼的大致流程如下:

  1. 準(zhǔn)備意圖示例,包括文本、預(yù)期意圖和語言。
  2. 使用OpenAI API生成嵌入。
  3. 將嵌入轉(zhuǎn)換為適合FAISS的格式。
  4. 創(chuàng)建FAISS索引并添加嵌入。
  5. 保存索引和元數(shù)據(jù)(意圖標(biāo)簽和原始提示)用于運(yùn)行時(shí)預(yù)測(cè)。

選擇FAISS而非基于SentenceTransformer的分類器,主要是因?yàn)镕AISS具有以下優(yōu)勢(shì):

  1. 零樣本泛化:通過添加更多標(biāo)注示例即可輕松擴(kuò)展,無需重新訓(xùn)練。
  2. 可解釋性:意圖由其最近鄰支持,可以進(jìn)行檢查。
  3. 無需模型訓(xùn)練或托管:部署更快,維護(hù)更簡單。
  4. 靈活性:支持開放世界分類和備用行為。

模式感知解析和商店映射

在數(shù)據(jù)潔凈室環(huán)境中,我們假設(shè)有多個(gè)品牌,如ComfyWearCo和SportStyleShop?;陉?duì)列的數(shù)據(jù)模型的關(guān)鍵組件包括:

  • hll_cohort_sketches_store_x1/hll_cohort_sketches_store_y1:存儲(chǔ)每個(gè)商店的隊(duì)列級(jí)指標(biāo)的表,每個(gè)表由(store_id, cohort_id)鍵控,包含隱私保護(hù)的HLL草圖和標(biāo)準(zhǔn)化指標(biāo)。
  • Cohort_Similarity:表示跨商店隊(duì)列之間的相似性分?jǐn)?shù),引用草圖表中的(store_a, cohort_a)和(store_b, cohort_b)。

所有查詢生成,無論是通過模板還是LLM,都遵循這個(gè)實(shí)體關(guān)系模型,只使用可用字段和安全操作進(jìn)行估計(jì),如hll_estimate或hll_merge_agg。

由于自然語言中的品牌名稱(如“ComfyWearCo”)與內(nèi)部表名和商店ID不同,我們使用brand_registry.json來捕獲映射關(guān)系,例如:

{
  "ComfyWearCo": {
    "store_id": "comfy_wear_store_view",
    "table": "hll_cohort_sketches_store_x1"
  },
  "SportStyleShop": {
    "store_id": "sporty_style_store_view",
    "table": "hll_cohort_sketches_store_y1"
  }
}

實(shí)體提取使用正則表達(dá)式和字符串匹配來檢測(cè)提示中的商店和隊(duì)列提及,這也使得該系統(tǒng)可以擴(kuò)展到支持N個(gè)商店而無需更改實(shí)現(xiàn)。

基于模板的SQL生成

給定預(yù)測(cè)的意圖和提取的實(shí)體,我們使用特定于意圖的SQL模板。以下是隊(duì)列比較的示例:

SELECT 'ComfyWearCo' AS store_name, cohort_id,
       hll_estimate(cohort_hll_sketch) AS estimated_users,
       avg_standardized_avg_order_value,
       avg_standardized_total_orders,
       avg_standardized_customer_lifetime,
       avg_standardized_days_since_last_purchase
FROM hll_cohort_sketches_store_x1
WHERE cohort_id = 2 AND store_id = 'comfy_wear_store_view'
UNION ALL
SELECT 'SportStyleShop' AS store_name, cohort_id,
       hll_estimate(cohort_hll_sketch) AS estimated_users,
       avg_standardized_avg_order_value,
       avg_standardized_total_orders,
       avg_standardized_customer_lifetime,
       avg_standardized_days_since_last_purchase
FROM hll_cohort_sketches_store_y1
WHERE cohort_id = 4 AND store_id = 'sporty_style_store_view';

這種方法通過完全基于可用模式來避免生成幻覺SQL。

具有模式感知提示的LLM備用機(jī)制

如果沒有匹配的模板,我們會(huì)回退到LLM(在我們的示例中使用GPT-4),使用以下提示:

你是一名在安全數(shù)據(jù)潔凈室工作的數(shù)據(jù)分析師。僅使用SELECT語句。
僅使用提供的模式和函數(shù)。不要發(fā)明任何列或函數(shù)。
選擇單個(gè)隊(duì)列時(shí)使用hll_estimate(cohort_hll_sketch)。
除非跨行聚合,否則不要使用hll_merge_agg。
模式:
<SCHEMA TEXT>
用戶問題:
ComfyWearCo中哪些隊(duì)列的總訂單數(shù)最高?

這種受模式約束的提示大大減少了生成SQL中的錯(cuò)誤。

示例查詢

意圖:相似請(qǐng)求

問題:SportStyleShop中哪些隊(duì)列與ComfyWearCo的隊(duì)列5最相似?

SELECT cohort_b, similarity_score_proxy
FROM cohort_similarity
WHERE store_a = 'comfy_wear_store_view'
  AND cohort_a = 5
  AND store_b = 'sporty_style_store_view'
ORDER BY similarity_score_proxy DESC
LIMIT 5;

意圖:隊(duì)列推薦

問題:建議ComfyWearCo中尚未使用的高價(jià)值隊(duì)列。

SELECT cohort_id, avg_standardized_avg_order_value, 
       avg_standardized_total_orders,
       avg_standardized_customer_lifetime, 
       avg_standardized_days_since_last_purchase
FROM hll_cohort_sketches_store_x1
WHERE store_id = 'comfy_wear_store_view' AND cohort_hll_sketch IS NULL
ORDER BY avg_standardized_avg_order_value DESC
LIMIT 5;

對(duì)高級(jí)數(shù)據(jù)潔凈室功能的可擴(kuò)展性

我們的方法的一個(gè)關(guān)鍵優(yōu)勢(shì)是它支持高級(jí)隱私保護(hù)功能,如HyperLogLog(HLL)草圖,這在數(shù)據(jù)潔凈室中常用于近似用戶計(jì)數(shù)而不暴露原始標(biāo)識(shí)符。

HLL在數(shù)據(jù)潔凈室中的重要性

  • 禁止行級(jí)數(shù)據(jù),因此基數(shù)估計(jì)(如用戶計(jì)數(shù))必須通過草圖計(jì)算。
  • 允許使用hll_estimate和hll_merge_agg等函數(shù),而不允許直接使用COUNT(DISTINCT user_id)。
  • 跨品牌隊(duì)列之間的安全重疊和相似性依賴于HLL草圖的相似性。

我們的系統(tǒng)如何支持HLL

  • 模板編碼為在選擇單個(gè)隊(duì)列時(shí)使用hll_estimate。
  • 系統(tǒng)防止濫用,例如避免在非聚合查詢中使用hll_merge_agg。
  • LLM備用機(jī)制使用有效的HLL函數(shù)用法和約束進(jìn)行模式初始化。

評(píng)估:覆蓋范圍和準(zhǔn)確性

為了驗(yàn)證我們的方法,我們對(duì)30多個(gè)自然語言輸入運(yùn)行了提示測(cè)試套件,每個(gè)輸入映射到我們支持的五個(gè)意圖之一。結(jié)果顯示,在各種意圖類型上都具有很高的準(zhǔn)確性和語義覆蓋范圍。以下是一些代表性示例:

  1. 提示:SportStyleShop中哪些隊(duì)列與ComfyWearCo的隊(duì)列3最相似? 預(yù)測(cè):lookalike_request | 預(yù)期:lookalike_request
  2. 提示:比較ComfyWearCo的隊(duì)列4和SportStyleShop的隊(duì)列1。 預(yù)測(cè):cohort_comparison | 預(yù)期:cohort_comparison
  3. 提示:建議ComfyWearCo中我們尚未使用的新高價(jià)值隊(duì)列。 預(yù)測(cè):cohort_recommendation | 預(yù)期:cohort_recommendation

評(píng)估證實(shí),我們的基于FAISS的分類器與特定于意圖的模板相結(jié)合,為數(shù)據(jù)潔凈室中的各種探索性和診斷性查詢提供了準(zhǔn)確、可解釋和安全的SQL。

擴(kuò)展到其他LLM

盡管此實(shí)現(xiàn)使用OpenAI的GPT-4作為備用SQL生成,但該架構(gòu)設(shè)計(jì)為與LLM無關(guān)??梢暂p松替換為其他模型,如Anthropic的Claude、Google的Gemini或本地LLM如LLaMA 3。

如何替換LLM

重要的是,無論使用哪種LLM,基于FAISS的意圖分類器都保持不變。但是,如果選擇的LLM(如Claude或開源模型)不提供嵌入API,則需要在本地生成嵌入。

用SentenceTransformers替換OpenAI嵌入

可以通過sentence-transformers庫切換到本地嵌入模型,如all-MiniLM-L6-v2:

from sentence_transformers import SentenceTransformer
import numpy as np
model = SentenceTransformer("all-MiniLM-L6-v2")
def get_embedding(text):
    return model.encode([text])[0].astype("float32").reshape(1, -1)

這保持了基于FAISS的分類邏輯,同時(shí)與OpenAI的嵌入API解耦,還支持在氣隙或受監(jiān)管環(huán)境中進(jìn)行本地推理。

我們展示了一種混合系統(tǒng),該系統(tǒng)將語義搜索(通過嵌入+FAISS)與為數(shù)據(jù)潔凈室環(huán)境量身定制的安全SQL生成相結(jié)合。通過將SQL生成基于模式和意圖模板,并僅在必要時(shí)回退到LLM,該架構(gòu)在表達(dá)能力和安全性之間取得了實(shí)際平衡。

這種方法為在隱私受限的分析環(huán)境中構(gòu)建智能接口提供了藍(lán)圖。未來的工作可以包括使用置信度分?jǐn)?shù)對(duì)FAISS結(jié)果進(jìn)行排名,進(jìn)一步提高系統(tǒng)的準(zhǔn)確性和可靠性。隨著數(shù)據(jù)隱私要求的不斷發(fā)展,這種意圖驅(qū)動(dòng)的自然語言接口將在促進(jìn)跨品牌數(shù)據(jù)協(xié)作方面發(fā)揮越來越重要的作用。

責(zé)任編輯:武曉燕 來源: 大模型之路
相關(guān)推薦

2020-04-24 10:53:08

自然語言處理NLP是人工智能

2021-05-13 07:17:13

Snownlp自然語言處理庫

2022-08-17 09:00:00

自然語言機(jī)器學(xué)習(xí)數(shù)據(jù)科學(xué)

2017-10-19 17:05:58

深度學(xué)習(xí)自然語言

2024-04-24 11:38:46

語言模型NLP人工智能

2009-11-25 14:25:14

PHP自然語言排序

2017-06-20 11:00:13

大數(shù)據(jù)自然語言文本分類器

2024-02-05 14:18:07

自然語言處理

2021-05-17 09:00:00

自然語言人工智能技術(shù)

2021-03-26 11:02:20

Python自然語言API

2017-04-17 15:03:16

Python自然語言處理

2023-08-03 09:56:47

自然語言AI

2017-05-05 15:34:49

自然語言處理

2020-02-25 12:00:53

自然語言開源工具

2021-11-12 15:43:10

Python自然語言數(shù)據(jù)

2020-02-25 23:28:50

工具代碼開發(fā)

2025-05-28 01:50:00

2024-04-18 09:47:08

2021-05-18 07:15:37

Python

2025-05-27 03:23:00

DSPyPydanticNLU
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)