精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

TAG:定義自然語言查詢的高效解決方案 原創(chuàng)

發(fā)布于 2025-1-7 08:12
瀏覽
0收藏

摘要

TAG(Table-Augmented Generation)模型通過結(jié)合關(guān)系型數(shù)據(jù)庫的精準(zhǔn)計(jì)算能力和大語言模型的語義推理能力,為復(fù)雜的自然語言查詢提供了高效解決方案。TAG 的核心流程分為查詢合成、查詢執(zhí)行和答案生成三步,能夠靈活處理多數(shù)據(jù)源的交互式查詢?nèi)蝿?wù)。通過引入語言模型,TAG 不僅可以執(zhí)行傳統(tǒng) SQL 查詢,還能在情感分析、趨勢總結(jié)等語義推理任務(wù)中展現(xiàn)卓越性能。本文詳細(xì)解析了 TAG 的功能和機(jī)制,同時(shí)引入 LOTUS 系統(tǒng)作為其具體實(shí)現(xiàn),展示了如何通過模塊化語義操作符進(jìn)一步優(yōu)化數(shù)據(jù)查詢效率與推理能力。

什么是 TAG

在現(xiàn)代商業(yè)和數(shù)據(jù)分析場景中,許多重要的信息都存儲(chǔ)在關(guān)系型數(shù)據(jù)庫中,用戶需要通過自然語言查詢來獲取反饋。例如,一個(gè)零售經(jīng)理可能會(huì)問:“過去一個(gè)月,某個(gè)商品類別的銷售趨勢是什么?”或者“客戶對(duì)新產(chǎn)品的評(píng)價(jià)有哪些共性?”這些問題的答案不僅需要從數(shù)據(jù)庫中提取相關(guān)信息,還需要進(jìn)一步結(jié)合上下文進(jìn)行語義推理和總結(jié)。

為了解決這些復(fù)雜的問題,Table-Augmented Generation (TAG) 應(yīng)運(yùn)而生。TAG 模型不僅能夠高效處理結(jié)構(gòu)化數(shù)據(jù),還通過引入語言模型實(shí)現(xiàn)語義推理和復(fù)雜的多步推斷。這一特性使 TAG 成為解決復(fù)雜查詢的強(qiáng)大工具。

TAG 模型通過三個(gè)主要步驟——查詢合成(Query Synthesis)、查詢執(zhí)行(Query Execution)和答案生成(Answer Generation)——結(jié)合了語言模型(LM)和數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)。例如,在電商分析場景中,TAG 可以從多個(gè)數(shù)據(jù)源提取銷售記錄,結(jié)合時(shí)間信息進(jìn)行趨勢分析,并進(jìn)一步利用語言模型總結(jié)出關(guān)鍵洞察,例如“本月銷售額增長的主要原因是某爆款商品的熱銷”。

此外,在情感分析場景中,TAG 也展現(xiàn)了獨(dú)特的優(yōu)勢。例如,用戶查詢“客戶對(duì)某產(chǎn)品的評(píng)價(jià)是正面還是負(fù)面?”時(shí),TAG 能夠提取評(píng)價(jià)文本,結(jié)合語言模型進(jìn)行情感分類,并生成總結(jié),例如“90%的客戶反饋是正面的,主要提到產(chǎn)品的性價(jià)比和質(zhì)量”。TAG 在處理多樣化的查詢時(shí)比傳統(tǒng)方法表現(xiàn)更好,尤其是在涉及到情感分析、趨勢總結(jié)等需要推理和通用知識(shí)的任務(wù)時(shí),表現(xiàn)尤為突出。

為什么需要使用TAG

大家有沒有遇到過這種場景,用戶提出比較復(fù)雜的問題,而系統(tǒng)需要通過關(guān)系型數(shù)據(jù)庫進(jìn)行搜索并給予反饋。比如“總結(jié)經(jīng)典最賣座浪漫電影的評(píng)論”。我們需要搜索出最賣座的電影,然后找到該電影的評(píng)論信息(多條),最后將這些信息進(jìn)行匯總形成摘要返回給用戶。基本思路是,在數(shù)據(jù)庫中進(jìn)行多表查詢、匯總、聚合等操作,還需要配合大語言模型結(jié)合上下文給出答復(fù)。

其中最容易讓人想到的方式是,通過將自然語言請(qǐng)求轉(zhuǎn)化為數(shù)據(jù)庫查詢,執(zhí)行查詢后返回相關(guān)結(jié)果。這種方式可以準(zhǔn)確定位符合條件的數(shù)據(jù)記錄,但這種方式無法進(jìn)一步總結(jié)或推理。這類功能背后的技術(shù)實(shí)現(xiàn)被稱為 Text2SQL,它將自然語言翻譯為 SQL 查詢語句并在數(shù)據(jù)庫中執(zhí)行。然而,Text2SQL 的能力僅限于數(shù)據(jù)的直接檢索,對(duì)于更復(fù)雜的分析或多層次推理,它顯得力不從心。

另一種方法是通過語義檢索技術(shù)實(shí)現(xiàn)。這種方法將文本信息存儲(chǔ)在向量數(shù)據(jù)庫中,隨后通過相似度計(jì)算(如余弦相似度)來找到最相關(guān)的記錄。這一技術(shù)被稱為 RAG (Retrieval-Augmented Generation)。RAG 的優(yōu)勢在于,它能夠結(jié)合語言模型生成自然語言答案,并通過向量檢索高效處理文本匹配問題。然而,當(dāng)需要對(duì)來自多個(gè)數(shù)據(jù)表的信息進(jìn)行聚合或復(fù)雜推理時(shí),RAG 同樣面臨挑戰(zhàn)。

為了克服這些局限性,TAG (Table-Augmented Generation) 提供了更強(qiáng)大的解決方案,特別是在多數(shù)據(jù)源和跨表操作場景中展現(xiàn)了其獨(dú)特的優(yōu)勢。TAG 不僅能夠像 Text2SQL 一樣將自然語言查詢轉(zhuǎn)化為 SQL 并高效執(zhí)行,還可以靈活地處理來自多個(gè)表的數(shù)據(jù)關(guān)聯(lián),同時(shí)引入語言模型的推理能力,進(jìn)一步豐富查詢結(jié)果的語義表達(dá)。

例如,針對(duì)“總結(jié)經(jīng)典最賣座浪漫電影的評(píng)論”這一請(qǐng)求,TAG 不僅能找到“泰坦尼克號(hào)”的相關(guān)評(píng)論,還能利用語言模型深入分析這些評(píng)論內(nèi)容并生成總結(jié),例如“泰坦尼克號(hào)的評(píng)論主要提到其出色的敘事和視覺效果”。通過結(jié)合數(shù)據(jù)庫的精確計(jì)算能力與語言模型的語義推理能力,TAG 成為處理復(fù)雜查詢和提供上下文豐富答案的最優(yōu)選擇。

Text2SQL、RAG和TAG之間的區(qū)別

通過上面“浪漫電影”的例子,我們提到了三個(gè)技術(shù),分別是:Text2SQL、RAG以及TAG,他們是AIGC發(fā)展不同時(shí)代的產(chǎn)物。下面,我們對(duì)他們進(jìn)行一個(gè)橫向比較。

Text2SQL

它主要通過將自然語言查詢轉(zhuǎn)換為SQL查詢來執(zhí)行,適用于那些有明確數(shù)據(jù)庫關(guān)系映射的查詢。它的問題很明顯,無法處理需要語義推理、情感分析或其他復(fù)雜推理的查詢。例如,無法理解用戶查詢中的隱含含義,如“哪些客戶對(duì)產(chǎn)品X的評(píng)價(jià)是正面的”。

RAG (Retrieval-Augmented Generation)

基于檢索的生成方法,它從外部數(shù)據(jù)庫中檢索與查詢相關(guān)的信息,然后通過LM生成答案。通常用于執(zhí)行基于相關(guān)性簡單查找的任務(wù)。RAG只能處理點(diǎn)查找類問題,不能有效地進(jìn)行數(shù)據(jù)聚合、復(fù)雜計(jì)算或多步推理。例如,無法處理“為什么我的銷售在這段時(shí)間下降”這樣的查詢,它涉及到復(fù)雜的數(shù)據(jù)匯總和推理。

TAG (Table-Augmented Generation)

TAG結(jié)合了Text2SQL和RAG的優(yōu)點(diǎn),通過三個(gè)主要步驟(查詢合成、查詢執(zhí)行和答案生成)高效地回答自然語言查詢。其優(yōu)勢比較明顯: 

查詢合成:將用戶的自然語言查詢轉(zhuǎn)換為可執(zhí)行的數(shù)據(jù)庫查詢(SQL)。

查詢執(zhí)行:在數(shù)據(jù)庫中高效執(zhí)行查詢,獲取相關(guān)數(shù)據(jù)。

答案生成:結(jié)合數(shù)據(jù)庫中的數(shù)據(jù)和語言模型生成最終的自然語言答案,進(jìn)行復(fù)雜的推理和總結(jié)。

TAG的創(chuàng)新在于,除了處理傳統(tǒng)數(shù)據(jù)庫查詢(如SQL),它還能夠處理需要推理、推斷世界知識(shí)的查詢,適用于需要復(fù)雜推理和多層次數(shù)據(jù)交互的查詢。

我們將三者的區(qū)別整理為如下表格。

從表格可以看出,Text2SQL 的強(qiáng)項(xiàng)在于直接提取結(jié)構(gòu)化數(shù)據(jù),RAG 在文本相關(guān)性查找方面表現(xiàn)優(yōu)異,而 TAG 通過結(jié)合 SQL 查詢和語言模型的語義推理能力,實(shí)現(xiàn)了前兩者無法完成的復(fù)雜查詢。TAG 特別適合需要跨表分析、數(shù)據(jù)聚合和復(fù)雜推理的場景,例如總結(jié)最經(jīng)典的浪漫愛情電影評(píng)論,或分析客戶對(duì)新產(chǎn)品的綜合反饋。

TAG:定義自然語言查詢的高效解決方案-AI.x社區(qū)

TAG 的內(nèi)部機(jī)制

TAG 系統(tǒng)在解決復(fù)雜自然語言查詢時(shí),與傳統(tǒng)方法的處理流程有顯著不同,特別是在引入推理能力和豐富上下文答案方面表現(xiàn)卓越。

如下圖所示,TAG通過以下三個(gè)主要步驟, 實(shí)現(xiàn)了高效的自然語言查詢回答:

查詢合成(Query Synthesis): 首先,將用戶的自然語言請(qǐng)求轉(zhuǎn)換為可執(zhí)行的數(shù)據(jù)庫查詢。與 Text2SQL 不同,TAG 不僅可以生成 SQL 查詢,還能夠合成結(jié)合多個(gè)數(shù)據(jù)源和類型的復(fù)雜查詢。例如,請(qǐng)注意以下示例:

用戶查詢“總結(jié)被認(rèn)為是‘經(jīng)典’的最賣座浪漫電影的評(píng)論”,TAG 將其翻譯為如下 SQL 查詢:

WITH CRM AS (SELECT * FROM movies WHERE genre = 'Romance' 
AND LLM('{movie_title} is a classic') = 'True')
SELECT * FROM CRM 
WHERE revenue = (SELECT MAX(revenue) FROM CRM);

在此過程中,TAG 使用 LLM 調(diào)用 LLM('{movie_title} is a classic') = 'True' 來引入新的推理能力。這一步驟被稱為“增強(qiáng)”步驟,因?yàn)樗鼣U(kuò)展了 SQL 查詢的能力,讓其能夠結(jié)合數(shù)據(jù)庫之外的上下文信息(例如電影是否被認(rèn)為是“經(jīng)典”)。

查詢執(zhí)行(Query Execution): 一旦查詢被合成,它就會(huì)在數(shù)據(jù)庫中高效執(zhí)行。TAG 利用數(shù)據(jù)庫的計(jì)算能力來處理大規(guī)模數(shù)據(jù)檢索和精確計(jì)算,而這是語言模型難以直接執(zhí)行的。

答案生成(Answer Generation): 在最后一步,AI 模型基于檢索到的數(shù)據(jù)生成上下文的答案。通過增強(qiáng)步驟提供的語義推理能力,TAG 能夠?qū)⑸舷挛男畔ⅰ⑼ㄓ弥R(shí)以及特定領(lǐng)域的理解融入答案中,從而顯著提升回答的準(zhǔn)確性和自然性。例如,TAG 在答案生成過程中,利用大語言模型的多層次推理能力,對(duì)檢索到的內(nèi)容進(jìn)行深度語義解析,并結(jié)合額外的上下文知識(shí)(如領(lǐng)域術(shù)語和用戶查詢背景)生成自然語言答案。

TAG:定義自然語言查詢的高效解決方案-AI.x社區(qū)

在上述示例中,TAG 系統(tǒng)可以總結(jié)返回的電影評(píng)論,生成答案如“泰坦尼克號(hào)的評(píng)論主要提到其出色的敘事和視覺效果”,而這種總結(jié)得益于語言模型對(duì)評(píng)論內(nèi)容的多步推理與聚合分析能力。

下面讓我們近距離解析,TAG 處理自然語言查詢的三個(gè)步驟:

查詢合成(Query Synthesis)

查詢合成的核心是將用戶的自然語言請(qǐng)求轉(zhuǎn)化為數(shù)據(jù)庫可以執(zhí)行的查詢 。這一過程包含兩個(gè)關(guān)鍵任務(wù):

推斷相關(guān)數(shù)據(jù):確定回答查詢所需的數(shù)據(jù),例如從數(shù)據(jù)庫表的模式(schema)中推斷出相關(guān)字段。

語義解析:利用語言模型的語義推理能力,將自然語言請(qǐng)求轉(zhuǎn)化為可執(zhí)行的查詢(例如 SQL)。

當(dāng)用戶查詢:“總結(jié)最高票房的經(jīng)典浪漫電影的評(píng)論”,系統(tǒng)生成的 SQL 查詢:結(jié)合了關(guān)系表字段(如 movie_title、review、revenue 和 genre),并利用語言模型過濾符合“經(jīng)典”條件的記錄。

查詢執(zhí)行(Query Execution)

查詢執(zhí)行步驟的核心是利用數(shù)據(jù)庫引擎高效地執(zhí)行生成的查詢 ,并返回相關(guān)數(shù)據(jù)表 。此步驟可以通過支持 LM(語言模型) 操作的數(shù)據(jù)庫 API 實(shí)現(xiàn)更復(fù)雜的計(jì)算和推理。在上述示例中,生成的 SQL 查詢首先過濾出浪漫電影,并通過 LM 判斷哪些電影屬于“經(jīng)典”范疇,接著按票房排名找到最高票房的電影,并返回與該電影相關(guān)的評(píng)論數(shù)據(jù)表 。

答案生成(Answer Generation)

答案生成步驟通過語言模型的語義推理能力,根據(jù)用戶請(qǐng)求 和查詢結(jié)果數(shù)據(jù) 生成最終的自然語言答案 。

TAG 系統(tǒng)對(duì)返回的 (例如“泰坦尼克號(hào)”的評(píng)論數(shù)據(jù))進(jìn)行語義分析,總結(jié)評(píng)論內(nèi)容,并生成自然語言答案,例如“泰坦尼克號(hào)的評(píng)論大多是積極的,觀眾對(duì)其敘事和視覺效果贊譽(yù)有加”。

TAG 的研究方向

除了上面對(duì)多表查詢方面的表現(xiàn)以外,TAG 模型在查詢類型、數(shù)據(jù)模型、執(zhí)行引擎以及生成模式等多個(gè)方面都展現(xiàn)了獨(dú)特的優(yōu)勢和擴(kuò)展可能性。

首先,TAG 在查詢類型的多樣性上表現(xiàn)出色。它不僅能夠處理簡單的點(diǎn)查詢,比如用戶希望快速檢索單行或少量數(shù)據(jù)的任務(wù),還能應(yīng)對(duì)復(fù)雜的聚合查詢。例如,一個(gè)零售經(jīng)理可能需要總結(jié)過去一個(gè)月內(nèi)的銷售趨勢,這需要 TAG 在數(shù)據(jù)庫中整合多行數(shù)據(jù)并利用語言模型進(jìn)行邏輯推理。此外,TAG 還能勝任情感分析和分類等需要語義推理的高級(jí)任務(wù)。

其次,TAG 的底層數(shù)據(jù)模型設(shè)計(jì)靈活,能夠適配多種數(shù)據(jù)類型。傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù),如關(guān)系型數(shù)據(jù)庫中的表格信息,能夠通過 TAG 得到高效處理。同時(shí),TAG 還能處理半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),比如自由文本、圖像、視頻和音頻,這為多模態(tài)數(shù)據(jù)的集成提供了可能性。這種靈活性讓 TAG 在多樣化的數(shù)據(jù)場景中都有應(yīng)用空間。

TAG 的數(shù)據(jù)庫執(zhí)行引擎支持多種實(shí)現(xiàn)方式,使其適用于不同的查詢需求。對(duì)于結(jié)構(gòu)化數(shù)據(jù),TAG 通過 SQL 查詢的生成和執(zhí)行實(shí)現(xiàn)高效數(shù)據(jù)檢索。對(duì)于語義檢索場景,TAG 能夠?qū)⒆匀徽Z言查詢轉(zhuǎn)化為向量嵌入,并通過相似性匹配實(shí)現(xiàn)高效數(shù)據(jù)查找。此外,TAG 還可以集成新興的增強(qiáng)型執(zhí)行方法,比如語義操作符模型,它允許開發(fā)者在數(shù)據(jù)庫中直接執(zhí)行復(fù)雜的語義過濾和排序操作。

在生成模式方面,TAG 提供了從簡單到復(fù)雜的多種實(shí)現(xiàn)選項(xiàng)。簡單的生成模式如單次語言模型調(diào)用,適用于快速回答的任務(wù)。而復(fù)雜的生成模式則通過多步迭代或遞歸的方式實(shí)現(xiàn)更深層次的推理和數(shù)據(jù)整合。例如,對(duì)于需要在多行數(shù)據(jù)中發(fā)現(xiàn)隱含關(guān)系的任務(wù),TAG 能夠利用語言模型多次調(diào)用生成完整且語義豐富的答案。

TAG功能雖然強(qiáng)大,如果需要落地應(yīng)用必須經(jīng)過最佳實(shí)踐,于是就有了 LOTUS。LOTUS 構(gòu)建在 TAG 的理論基礎(chǔ)之上,進(jìn)一步優(yōu)化了查詢執(zhí)行的效率,并提供了類似 Pandas 的直觀 API,使開發(fā)者可以通過聲明式的語義操作符快速實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)查詢?nèi)蝿?wù)。LOTUS 還通過模塊化設(shè)計(jì)支持?jǐn)U展,能夠集成不同的數(shù)據(jù)源和多種 AI 模型,從而為復(fù)雜自然語言查詢提供了更加高效的解決方案。

LOTUS:基于LLM的數(shù)據(jù)查詢引擎

LOTUS 是一個(gè)結(jié)合了結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)處理能力的查詢引擎,它讓基于大語言模型(LLM)的數(shù)據(jù)處理變得快速且簡單。

基本介紹

LOTUS(LLMs Over Tables of Unstructured and Structured Data)提供了一種聲明式編程模型和優(yōu)化的查詢引擎,可以針對(duì)結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)構(gòu)建強(qiáng)大的基于推理的查詢管道。LOTUS 通過類似 Pandas 的簡單直觀 API 實(shí)現(xiàn)語義操作符,簡化了開發(fā)人員編寫 AI 驅(qū)動(dòng)查詢的復(fù)雜性。

基本概念

LOTUS 的核心是語義操作符(Semantic Operator)編程模型:

  • 語義操作符:對(duì)一個(gè)或多個(gè)數(shù)據(jù)集進(jìn)行聲明式轉(zhuǎn)換,這些轉(zhuǎn)換通過自然語言表達(dá)式參數(shù)化,并可由多種 AI 算法實(shí)現(xiàn)。
  • 擴(kuò)展關(guān)系模型:語義操作符能夠?qū)Π瑐鹘y(tǒng)結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化字段(如自由文本)的表操作。
  • 模塊化與組合性:操作符支持編寫高級(jí)邏輯的 AI 管道,查詢引擎負(fù)責(zé)高效執(zhí)行。

LOTUS 支持的主要語義操作符包括:

  • sem_map:將每條記錄映射為基于自然語言描述的屬性。例如,可以將商品描述轉(zhuǎn)換為更具體的類別標(biāo)簽,例如將“iPhone 13”映射為“智能手機(jī)”。
  • sem_filter:篩選符合自然語言謂詞的記錄。例如,篩選出所有“價(jià)格大于100元且評(píng)分高于4星”的商品,通過語言模型解析謂詞條件進(jìn)行精確篩選。
  • sem_agg:對(duì)所有記錄進(jìn)行聚合,例如總結(jié)出“所有商品的平均價(jià)格”和“評(píng)分最高的商品”。
  • sem_topk:根據(jù)自然語言指定的排序規(guī)則選出前K條記錄。例如,“找出評(píng)分最高的前5個(gè)商品”。
  • sem_join:基于自然語言謂詞連接兩個(gè)數(shù)據(jù)集。例如,將訂單數(shù)據(jù)與用戶數(shù)據(jù)通過自然語言謂詞“匹配下單金額大于500元的用戶及其訂單”進(jìn)行跨表關(guān)聯(lián)。
  • sem_sim_join:基于語義相似性連接兩個(gè)數(shù)據(jù)集。例如,將一列文章標(biāo)題與另一列新聞?wù)ㄟ^內(nèi)容相似度進(jìn)行匹配。
  • sem_search:在文本列中執(zhí)行語義搜索。例如,“在評(píng)論列中查找提到‘服務(wù)很好’的所有記錄”。

支持模型

LOTUS 支持以下三種主要模型類別:

LM(語言模型):

基于 LiteLLM 庫構(gòu)建,支持所有 LiteLLM 支持的模型(如 OpenAI、Ollama 和 vLLM)。

可參考 LiteLLM 文檔了解更多使用示例。

RM(檢索模型):

使用 SentenceTransformers 提供的模型進(jìn)行語義檢索。

可通過 SentenceTransformersRM 類加載任意模型。

Reranker(重排序模型):

使用 SentenceTransformers 提供的 CrossEncoder 模型進(jìn)行語義重排序。

安裝指南

要安裝 LOTUS,請(qǐng)按照以下步驟操作:

創(chuàng)建 Conda 環(huán)境:

conda create -n lotus python=3.10 -y
conda activate lotus

使用 pip 安裝 LOTUS:

pip install lotus-ai

如果在 Mac 上運(yùn)行,請(qǐng)通過 Conda 安裝 FAISS:

僅 CPU 版本:

conda install -c pytorch faiss-cpu=1.8.0

GPU (+CPU) 版本:

conda install -c pytorch -c nvidia faiss-gpu=1.8.0

通過上述步驟,你即可快速搭建 LOTUS 環(huán)境,為后續(xù)的代碼開發(fā)和測試做好準(zhǔn)備。

LOTUS 的模塊化設(shè)計(jì)使得它能夠靈活支持各種應(yīng)用場景,并為復(fù)雜自然語言查詢提供了高效解決方案。

示例代碼與解釋

以下代碼展示了 LOTUS 的一個(gè)簡單用例,通過 sem_join 操作實(shí)現(xiàn)課程和技能的語義匹配。用戶通過自然語言定義查詢邏輯,LOTUS 結(jié)合語言模型執(zhí)行查詢,最終返回結(jié)果。

import pandas as pd
import lotus
from lotus.models import LM

# configure the LM, and remember to export your API key
lm = LM(model="gpt-4o-mini")
lotus.settings.configure(lm=lm)

# create dataframes with course names and skills
courses_data = {
    "Course Name": [
        "History of the Atlantic World",
        "Riemannian Geometry",
        "Operating Systems",
        "Food Science",
        "Compilers",
        "Intro to computer science",
    ]
}
skills_data = {"Skill": ["Math", "Computer Science"]}
courses_df = pd.DataFrame(courses_data)
skills_df = pd.DataFrame(skills_data)

# lotus sem join 
res = courses_df.sem_join(skills_df, "Taking {Course Name} will help me learn {Skill}")
print(res)

# Print total LM usage
lm.print_total_usage()

我們將上述代碼代碼進(jìn)行詳細(xì)拆解如下:

初始化環(huán)境和數(shù)據(jù):

import pandas as pd

courses_data = {
    "Course Name": [
        "History of the Atlantic World",
        "Riemannian Geometry",
        "Operating Systems",
        "Food Science",
        "Compilers",
        "Intro to computer science",
    ]
}
skills_data = {"Skill": ["Math", "Computer Science"]}

courses_df = pd.DataFrame(courses_data)
skills_df = pd.DataFrame(skills_data)
print("Courses DataFrame:")
print(courses_df)
print("\nSkills DataFrame:")
print(skills_df)

配置 gpt-4o-mini 作為語言模型。創(chuàng)建兩個(gè)數(shù)據(jù)框 courses_df 和 skills_df,分別包含課程名稱和技能。courses_df 包含課程名稱,這些課程可能涉及到多個(gè)領(lǐng)域。skills_df 列出了技能名稱,這些技能對(duì)應(yīng)課程的學(xué)習(xí)目標(biāo)。數(shù)據(jù)框?yàn)楹罄m(xù)的語義連接操作提供了清晰的輸入。兩個(gè)集合的對(duì)象"Course Name"和"Skill" 會(huì)在后面的代碼中進(jìn)行語義關(guān)聯(lián)。

語義連接操作:

from lotus.models import LM
import lotus

# 配置語言模型
lm = LM(model="gpt-4o-mini")
lotus.settings.configure(lm=lm)

# 語義連接
res = courses_df.sem_join(skills_df, "Taking {Course Name} will help me learn {Skill}")
print("\nResult of Semantic Join:")
print(res)

sem_join 操作基于自然語言模板,通過語言模型解析 Course Name 和 Skill 之間的語義關(guān)系。這里通過”{}” 包括兩個(gè)數(shù)據(jù)集中的對(duì)象,用來表示需要處理具體對(duì)象的語義關(guān)系。想判斷課程(Course Name)與技能(Skill)之間的關(guān)系,“History of the Atlantic World” 是否與“Math”匹配由語言模型判斷。

執(zhí)行上述代碼得到如下結(jié)果:

TAG:定義自然語言查詢的高效解決方案-AI.x社區(qū)

清楚地看到課程(Course Name)與技能(Skill)之間的關(guān)系。Sem_join是LOTUS眾多操作之中的一種,它的功能就是將兩個(gè)不同數(shù)據(jù)集的數(shù)據(jù)進(jìn)行關(guān)聯(lián)。通過執(zhí)行過程我們發(fā)現(xiàn)它也遵循TAG的三個(gè)步驟:

查詢合成(Query Synthesis):

自然語言模板定義了匹配邏輯(如 "Taking {Course Name} will help me learn {Skill}")。

查詢執(zhí)行(Query Execution):

LOTUS 的 sem_join 調(diào)用語言模型完成語義匹配,并返回匹配結(jié)果。

答案生成(Answer Generation):

匹配結(jié)果以 Pandas 數(shù)據(jù)框形式返回,便于進(jìn)一步分析和使用。

深入源代碼

由于好奇sem_join 功能是如何實(shí)現(xiàn)的,我們通過Github查看了對(duì)應(yīng)的源碼。

TAG:定義自然語言查詢的高效解決方案-AI.x社區(qū)

通過分析,sem_join 的功能主要通過以下五個(gè)步驟實(shí)現(xiàn),每個(gè)步驟對(duì)應(yīng)不同的核心函數(shù)和邏輯。

第一步:輸入數(shù)據(jù)的準(zhǔn)備與轉(zhuǎn)換

首先,sem_join 接收兩個(gè)輸入數(shù)據(jù)序列(l1 和 l2),并將它們轉(zhuǎn)換為多模態(tài)信息,為后續(xù)的語義處理提供基礎(chǔ)。

代碼中使用了 task_instructions.df2multimodal_info 函數(shù),將輸入的 Pandas Series 轉(zhuǎn)換為模型可處理的格式:

left_multimodal_data = task_instructions.df2multimodal_info(l1.to_frame(col1_label), [col1_label])
right_multimodal_data = task_instructions.df2multimodal_info(l2.to_frame(col2_label), [col2_label])

這一步的主要作用是將數(shù)據(jù)框的列名與具體的上下文綁定,為語言模型生成語義匹配提供豐富的背景信息。

第二步:構(gòu)造語義連接任務(wù)

通過自然語言模板描述連接邏輯,例如 "Taking {Course Name} will help me learn {Skill}",并將其傳遞給語言模型進(jìn)行解析和處理。

在代碼中,模板被注入到語義過濾器中,通過調(diào)用

task_instructions.merge_multimodal_info 函數(shù)合并多模態(tài)數(shù)據(jù):
modified_docs = task_instructions.merge_multimodal_info([i1], right_multimodal_data)

合并后的數(shù)據(jù)被傳遞給語言模型,用于執(zhí)行語義匹配任務(wù)。

第三步:語義過濾與模型推理

語義過濾是 sem_join 的核心部分。通過調(diào)用 sem_filter 函數(shù),sem_join 利用語言模型對(duì)數(shù)據(jù)對(duì)進(jìn)行語義推理,判斷哪些記錄匹配。

語義過濾的核心代碼如下:

output = sem_filter(
    modified_docs,
    model,
    user_instruction,
    examples_multimodal_data=examples_multimodal_data,
    examples_answers=examples_answers,
    cot_reasoning=cot_reasoning,
    default=default,
    strategy=strategy,
    show_progress_bar=False,
)

模型的輸出包括匹配結(jié)果、原始輸出和解釋信息,為最終的連接結(jié)果提供依據(jù)。

第四步:結(jié)果組合與優(yōu)化

在語義過濾的基礎(chǔ)上,sem_join 將所有匹配記錄整合為一個(gè)結(jié)果集合。對(duì)于高置信度和低置信度的匹配記錄,系統(tǒng)通過優(yōu)化策略減少模型調(diào)用次數(shù),提升運(yùn)行效率。

結(jié)果組合部分的代碼如下:

join_results.extend(
    [
        (id1, ids2[i], explanation)
        for i, (output, explanation) in enumerate(zip(outputs, explanations))
        if output
    ]
)

優(yōu)化邏輯通過函數(shù) join_optimizer 實(shí)現(xiàn),選擇成本最低的連接計(jì)劃,進(jìn)一步提升連接效率。

第五步:輸出結(jié)果與分析

最后,sem_join 將語義連接的結(jié)果封裝為 SemanticJoinOutput 對(duì)象,包含匹配記錄、過濾結(jié)果、模型原始輸出和解釋信息。用戶可以通過返回的數(shù)據(jù)框進(jìn)一步分析連接結(jié)果。

返回結(jié)果的代碼如下:

return SemanticJoinOutput(
    join_results=join_results,
    filter_outputs=filter_outputs,
    all_raw_outputs=all_raw_outputs,
    all_explanations=all_explanations,
)

總結(jié)

TAG 模型的出現(xiàn)填補(bǔ)了傳統(tǒng)數(shù)據(jù)查詢技術(shù)與現(xiàn)代語義推理需求之間的空白。通過結(jié)合 SQL 查詢和大語言模型,TAG 在復(fù)雜查詢、推理和結(jié)果生成方面展現(xiàn)了強(qiáng)大的能力。本文不僅分析了 TAG 的理論基礎(chǔ),還通過 LOTUS 系統(tǒng)的實(shí)例演示了其實(shí)際應(yīng)用潛力。LOTUS 的模塊化設(shè)計(jì)和直觀 API 為開發(fā)者實(shí)現(xiàn)復(fù)雜語義查詢提供了便利工具,表明 TAG 和 LOTUS 在多數(shù)據(jù)源、跨領(lǐng)域數(shù)據(jù)分析中的重要地位和廣闊前景。

作者介紹

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗(yàn),10年分布式架構(gòu)經(jīng)驗(yàn)。


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
日韩欧美在线精品| 理论不卡电影大全神| 国产一区视频导航| 欧美国产一区二区三区| 精品人妻一区二区三区日产乱码卜| 校园春色亚洲色图| 亚洲人成7777| 久久视频在线观看中文字幕| 在线观看国产一区二区三区| 欧美精品一卡| 伊人伊人伊人久久| 绯色av蜜臀vs少妇| 三级成人在线| 亚洲午夜免费视频| 亚洲欧美久久久久一区二区三区| 成人av无码一区二区三区| 久久www成人_看片免费不卡| 久久久国产成人精品| 精品黑人一区二区三区观看时间| 亚洲图片小说区| 欧美日韩一区二区三区| 第九区2中文字幕| 户外极限露出调教在线视频| 成人久久久精品乱码一区二区三区 | 亚洲九九在线| 一区二区欧美激情| 欲求不满的岳中文字幕| 日韩精品一级| 欧美无人高清视频在线观看| 日韩欧美国产免费| aa国产成人| 亚洲影视资源网| 亚洲一区二区高清视频| 男男激情在线| 99在线精品观看| 超碰97国产在线| 91丨porny丨在线中文| 丝袜诱惑制服诱惑色一区在线观看| 九色精品美女在线| 国产三级国产精品国产国在线观看| 欧美三级三级| 亚洲欧美日韩视频一区| 国产一级伦理片| 高清日韩欧美| 欧美一级欧美一级在线播放| 亚洲精品国产一区二区三区| 国产韩日精品| 欧美自拍偷拍一区| 福利在线一区二区三区| 日韩精品三区| 色综合久久综合网| 亚洲乱码中文字幕久久孕妇黑人| av老司机免费在线| 精品国产福利在线| 亚洲人精品午夜射精日韩| 成年网站在线视频网站| 亚洲高清一区二区三区| 欧美男女爱爱视频| 性国裸体高清亚洲| 一本久道久久综合中文字幕| 日韩精品一区中文字幕| 9i看片成人免费高清| 疯狂蹂躏欧美一区二区精品| 国产免费毛卡片| 夜鲁夜鲁夜鲁视频在线播放| 色婷婷av一区二区三区gif | 欧美日韩国产v| 91电影在线观看| 国产又黄又猛又粗又爽的视频| 国产精品久久亚洲不卡| 91精品国产综合久久久久久久久久| 亚洲综合激情视频| 亚洲一区二区三区四区电影| 日韩精品一区在线观看| 天天插天天射天天干| 亚洲影院天堂中文av色| 日韩在线观看视频免费| 少妇久久久久久被弄高潮| 亚洲电影成人| 国产精品成人aaaaa网站| 91福利免费视频| 成人精品一区二区三区四区| 美脚丝袜一区二区三区在线观看| 亚洲天天影视| 亚洲国产综合在线| 蜜臀久久99精品久久久酒店新书| 日韩三级一区| 亚洲精品97久久| 国产熟女一区二区| 欧美视频官网| 国产精品99久久久久久久久 | 精品99999| 播金莲一级淫片aaaaaaa| 日韩中文在线电影| 久久久综合av| 少妇一级淫片日本| 粉嫩高潮美女一区二区三区| 欧美二级三级| 亚洲91av| 欧美日韩一二三| 婷婷五月精品中文字幕| 日韩亚洲一区在线| 69视频在线播放| 91无套直看片红桃| 久久综合色8888| 大桥未久一区二区| av有声小说一区二区三区| 欧美一级久久久久久久大片| 中文字幕在线观看免费高清 | 九九九在线观看视频| 中文字幕日韩高清在线| 亚洲午夜色婷婷在线| 久久久精品91| 久久99精品国产麻豆不卡| 精品视频免费观看| av免费网站在线观看| 色噜噜久久综合| 波多野结衣视频播放| 亚洲xxx拳头交| 国产精品久久久久久av下载红粉| 亚洲精品国偷拍自产在线观看蜜桃| 中文字幕第一区二区| 国产av人人夜夜澡人人爽麻豆| av日韩一区| 在线不卡国产精品| 在线观看日本视频| 成人午夜免费av| 日韩精品免费一区| www.成人在线.com| 日韩一区二区精品视频| 五月婷婷激情视频| 久久综合九色综合97婷婷| 99久久久精品视频| 51亚洲精品| 久久福利视频网| 国产女18毛片多18精品| 国产精品久久夜| 亚洲xxxx2d动漫1| 精品日韩免费| 国产精品美女www| 你懂的在线免费观看| 欧美日韩国产影院| 国产草草浮力影院| 亚洲欧洲另类| 国产一区二区三区四区hd| 男人添女人下部高潮视频在线观看| 91精品国产综合久久国产大片| 久久久国产一级片| 精品一区二区免费视频| 一区二区不卡在线观看| 亚洲日本中文| 九九热精品视频| 亚洲精品一区二区三区区别| 亚洲影视在线播放| 又色又爽又黄18网站| 国模吧视频一区| 精品国产免费一区二区三区| 手机av在线| 亚洲午夜小视频| 波多野结衣人妻| 国产精品伦理一区二区| 天天操天天干天天做| 欧美91大片| 国产日韩欧美二区| 日韩免费电影| 深夜福利一区二区| 国产999久久久| 亚洲第一久久影院| 国产熟女一区二区| 激情五月激情综合网| 日韩一区二区高清视频| 老牛精品亚洲成av人片| 国产97色在线| 欧美午夜电影一区二区三区| 日韩精品一区二| 日韩欧美成人一区二区三区| 中文在线一区二区| 欧美一级免费在线| 国产美女一区| 亚洲人成人77777线观看| 欧美专区一区| 欧美一区二区三区……| 老司机精品影院| 亚洲电影免费观看| 69视频免费看| 亚洲欧美色图小说| 在线免费观看成年人视频| 久久精品国产免费| 国产 日韩 欧美在线| 成人嫩草影院| 国产九色精品| 久久91视频| 国内免费久久久久久久久久久| wwwxxx在线观看| 精品国产免费人成在线观看| 中文字幕乱码中文字幕| 夜夜嗨av一区二区三区网页| 欧美成人国产精品一区二区| 国产成人免费视| 久久久久国产一区| 激情综合中文娱乐网| 一区二区三区免费看| 国产亚洲成av人片在线观黄桃| 国产精品毛片a∨一区二区三区|国| 日本不卡影院| 少妇高潮久久77777| 欧美色视频免费| 日韩美女在线视频| 中文字幕视频免费观看| 激情av一区二区| 日本中文在线视频| 欧美激情一区二区三区蜜桃视频| 免费啪视频在线观看| 欧美aaa在线| 国产裸体舞一区二区三区| 好看的日韩av电影| 中文字幕色一区二区 | 9色视频在线观看| 欧美日韩在线网站| 久久久久久国产精品一区| 免费观看亚洲天堂| 91精品在线看| av成人免费看| 国产成人精品一区| 三级在线观看视频| 国外成人免费在线播放| 天堂av最新在线| 欧美成人免费全部观看天天性色| 91在线品视觉盛宴免费| 亚洲天堂男人天堂| 国产在线网站| 亚洲欧美资源在线| 精品推荐蜜桃传媒| 国产午夜精品全部视频在线播放| 偷拍自拍在线| 日韩av影视综合网| 无码精品黑人一区二区三区| 亚洲激情久久久| 殴美一级特黄aaaaaa| 欧美成人激情免费网| www国产在线| 日韩欧美在线一区二区三区| 精品人妻一区二区三区日产乱码| 欧美精品九九99久久| 一本色道久久综合亚洲| 欧美图区在线视频| 中文字幕免费播放| 欧美日韩第一区日日骚| 中文字幕一区二区三区四区免费看| 精品视频全国免费看| 97精品久久人人爽人人爽| 8v天堂国产在线一区二区| 国产日韩精品suv| 欧美不卡视频一区| 日韩在线视频观看免费| 亚洲国产91色在线| 毛片在线播放网站| 国产一区二区三区三区在线观看| 久青草国产在线| 最近2019年好看中文字幕视频| 女女色综合影院| 欧美精品一区二区三区国产精品| 性欧美ⅴideo另类hd| 97在线观看视频| 成人欧美大片| 成人免费福利在线| 国产精品玖玖玖在线资源| 美日韩精品免费| 欧美3p在线观看| 大片在线观看网站免费收看| 99在线精品免费视频九九视 | 国产麻豆视频一区| 男女性杂交内射妇女bbwxz| 97精品久久久久中文字幕| 中文字幕在线1| 怡红院av一区二区三区| 日韩精品成人一区| 欧美色手机在线观看| 狠狠躁夜夜躁av无码中文幕| 亚洲精品一区在线观看香蕉| 在线日本视频| 高清欧美性猛交| 久久久成人av毛片免费观看| 亚洲精品免费网站| 亚洲三级精品| 国产又粗又大又爽的视频| 国产精品久久777777毛茸茸| 黄色一级片免费的| 99riav久久精品riav| 蜜桃av.com| 黄色一区二区在线观看| 国产又粗又大又爽视频| 亚洲精品www久久久| 在线视频三区| 欧美亚洲在线播放| 日韩精品一区二区三区中文字幕| 久久久久久精| 欧美激情综合色综合啪啪| 成人一区二区三| 成人午夜视频网站| 天天爽天天爽天天爽| 欧美日韩免费一区| 99国产精品久久久久99打野战| 精品视频在线观看日韩| av在线免费网站| 国产精品第三页| 久久男人av| 在线观看av的网址| 美女视频黄 久久| 无码人妻aⅴ一区二区三区| 一区二区欧美精品| 艳妇乳肉豪妇荡乳av无码福利| 精品成a人在线观看| 好吊日视频在线观看| 国产精品极品美女粉嫩高清在线| 加勒比色老久久爱综合网| 国产91porn| 九九视频精品免费| 摸摸摸bbb毛毛毛片| 精品女厕一区二区三区| www.成人精品| 久久久国产精品亚洲一区| 国精产品一区一区三区四川| 精品亚洲第一| 国产偷自视频区视频一区二区| 国产sm在线观看| 亚洲欧美经典视频| 亚洲影视一区二区| 中国人与牲禽动交精品| 欧美色网在线| 欧美高清视频一区| 久久久久久色| 男人操女人动态图| 色成年激情久久综合| 亚洲欧美日韩动漫| 91高潮精品免费porn| 欧美高清视频看片在线观看| 国产色一区二区三区| 国产精品99久久久久久似苏梦涵| 永久av免费网站| 在线成人av影院| 美女黄视频在线观看| 成人免费看吃奶视频网站| 国产精品伦理久久久久久| 激情黄色小视频| 中文字幕一区二区三区在线观看 | 日韩欧美一中文字暮专区| 精品免费视频123区| 一本色道久久综合亚洲精品不卡| 在线视频 日韩| 欧美性猛交视频| 国产午夜在线观看| 国产精品视频自在线| 日韩片欧美片| 97人人模人人爽人人澡| 亚洲一区二区精品3399| 欧美熟妇另类久久久久久不卡| 午夜精品免费视频| 国产videos久久| 国内国产精品天干天干| 亚洲精品欧美专区| 日韩在线观看视频网站| 日韩免费在线看| 久久一区二区三区电影| 中文字幕第10页| 亚洲.国产.中文慕字在线| 日本天堂在线| 成人疯狂猛交xxx| 亚洲婷婷免费| 一本加勒比北条麻妃| 欧美美女激情18p| 亚洲精品一线| 久久伊人资源站| 美洲天堂一区二卡三卡四卡视频| 欧美三级黄色大片| 日韩福利在线播放| 欧美91在线|欧美| 日韩欧美猛交xxxxx无码| 久久综合色之久久综合| 一本一道精品欧美中文字幕| 欧美交受高潮1| 成人3d动漫在线观看| 日本中文字幕在线不卡| 欧美日韩国产精品一区二区三区四区 | 本田岬高潮一区二区三区| 伊人中文字幕在线观看| 欧美超级免费视 在线| 婷婷精品视频| 亚洲精品中文字幕乱码无线| 欧美丝袜美女中出在线| 大地资源网3页在线观看| 蜜桃传媒一区二区| 国产呦精品一区二区三区网站| 精品国产一区二区三区四| 精品国产依人香蕉在线精品| 偷拍精品福利视频导航| 欧美熟妇另类久久久久久多毛| 一本大道久久a久久综合婷婷| 黄网页免费在线观看| 欧美人xxxxx|