利用 Schemonic 優(yōu)化數(shù)據(jù)庫(kù)模式描述以降低大語(yǔ)言模型成本
1.研究背景
1.1 背景
隨著 GPT-4 等大語(yǔ)言模型在數(shù)據(jù)管理領(lǐng)域的廣泛應(yīng)用,如文本到 SQL 的生成和信息提取任務(wù),向模型準(zhǔn)確描述關(guān)系數(shù)據(jù)庫(kù)的 schema 成為解決問(wèn)題的關(guān)鍵步驟。但由于 LLM 提供商通常按輸入(和輸出)文本的令牌數(shù)量收費(fèi),數(shù)據(jù)庫(kù) schema 描述的長(zhǎng)度直接關(guān)系到成本。例如,在文本到 SQL 的生成場(chǎng)景中,較長(zhǎng)的 schema 描述會(huì)增加輸入令牌數(shù)量,進(jìn)而提高每次轉(zhuǎn)換的成本。常見(jiàn)的描述 schema 的方法如使用 DDL 命令,雖能準(zhǔn)確表達(dá)模式,但往往不夠簡(jiǎn)潔。因此,如何生成簡(jiǎn)潔且準(zhǔn)確的數(shù)據(jù)庫(kù) schema 描述,成為亟待解決的問(wèn)題。
2.問(wèn)題提出
2.1 相關(guān)術(shù)語(yǔ)定義
模式(Schema):與一組表相關(guān)聯(lián),每個(gè)表包含名稱和列,列又包含名稱和注釋,表還可能有約束,涉及列組的約束如主鍵、外鍵約束等。例如,在創(chuàng)建學(xué)生表的模式中,表名為 Students,包含 UniStu_ID、UniStu_Name等列,各列有相應(yīng)的數(shù)據(jù)類型和約束注釋。
CREATE TABLE Students (
UniStu_ID INT PRIMARY KEY,
UniStu_Name VARCHAR (120) NOT NULL,
UniStu_Street_Name VARCHAR (255) NOT NULL,
UniStu_Street_Nr INT NOT NULL,
UniStu_City VARCHAR (255) NOT NULL
);
# SQL 命令創(chuàng)建架構(gòu):需要 93 個(gè)帶有 GPT 的令牌。
標(biāo)識(shí)符、令牌(Identifier, Token):標(biāo)識(shí)符令牌包括表名(前綴為“table”)、列名(非歧義時(shí)為單獨(dú)名稱,否則為表名前綴加列名)以及列或表的注釋,還包括括號(hào)等。如在學(xué)生表模式中,Table Students、UniStu_ID等都是標(biāo)識(shí)符令牌。
TABLE Students (
UniStu_ID (INT PRIMARY KEY)
NOT NULL (VARCHAR (255) (
UniStu_Name UniStu_Street_name UniStu_City)
INT (UniStu_Street_Nr)
))
# (b)第一個(gè)關(guān)聯(lián)的架構(gòu)文本:需要 54 個(gè)帶有 GPT 的令牌
#(在刪除為提高可讀性而添加的制表符和換行符后)。
描述語(yǔ)法(Description Syntax):空字符串是有效描述,兩個(gè)有效描述的連接也是有效描述,標(biāo)識(shí)符令牌與有效描述的組合同樣是有效描述。
* means UniStu_
TABLE Students(
*ID(INT PRIMARY KEY)
NOT NULL(VARCHAR(255)(
*NAME *Street_name *City)
INT(*Street_Nr))
)
# (c) 第二個(gè)關(guān)聯(lián)的架構(gòu)文本:需要 39 個(gè)帶有 GPT 的標(biāo)記
#(在刪除為提高可讀性而添加的制表符和換行符后)。
描述語(yǔ)義(Description Semantics):從模式描述中可推斷出一組關(guān)于模式的事實(shí),準(zhǔn)確的描述應(yīng)包含模式中所有表與列的關(guān)聯(lián)及適用注釋,且不能傳達(dá)錯(cuò)誤事實(shí)。
令牌映射(Token Mapping):將令牌映射到文本表示的函數(shù),可能會(huì)縮短令牌名稱,不同的函數(shù)可用于表示模式中的令牌。
模式文本(Schema Text):通過(guò)關(guān)聯(lián)的令牌映射將模式描述轉(zhuǎn)換為文本描述,其大小取決于目標(biāo)模型中表示該文本所需的令牌數(shù)量。
2.2 模式壓縮問(wèn)題
3.Schemonic 系統(tǒng)概述
3.1 系統(tǒng)上下文
Schemonic 系統(tǒng)旨在將數(shù)據(jù)庫(kù)模式壓縮為適合大語(yǔ)言模型的文本表示,以最小化令牌使用數(shù)量,從而降低成本。如圖2所示,輸入為待壓縮的數(shù)據(jù)庫(kù)模式和目標(biāo)LLM,系統(tǒng)通過(guò)一系列預(yù)處理步驟,將模式壓縮問(wèn)題轉(zhuǎn)化為 ILP 實(shí)例,利用 Gurobi 等求解器求解,最終將解決方案轉(zhuǎn)換為簡(jiǎn)潔的文本模式描述。該描述可作為L(zhǎng)LM輸入提示的一部分,用于各種與數(shù)據(jù)庫(kù)相關(guān)的任務(wù),如文本到SQL翻譯、模式匹配、數(shù)據(jù)整理和信息提取等。雖然生成優(yōu)化的模式描述可能計(jì)算成本較高,但由于數(shù)據(jù)庫(kù)模式變化相對(duì)較少,壓縮后的描述可多次重復(fù)使用,在零次或少量樣本場(chǎng)景中,能有效降低每次調(diào)用LLM的成本。
3.2 主算法
算法1詳細(xì)描述了 Schemonic 的模式壓縮過(guò)程。首先,生成候選前綴,通過(guò)統(tǒng)計(jì)模式中標(biāo)識(shí)符的前綴出現(xiàn)頻率,篩選出有限數(shù)量(個(gè))的高預(yù)期效用前綴,這有助于減少 ILP 問(wèn)題的規(guī)模。接著,合并具有相同注釋的列,降低搜索空間大小。然后,使用簡(jiǎn)單的貪婪算法生成初始解,該解雖不一定最優(yōu),但為 ILP 求解器提供了有用的起始點(diǎn)。隨后,將模式壓縮實(shí)例轉(zhuǎn)換為 ILP 實(shí)例,并通過(guò) ILP 求解器求解,根據(jù)用戶指定的優(yōu)化開(kāi)銷限制(如時(shí)間限制),找到最優(yōu)或接近最優(yōu)的解決方案。最后,從 ILP 解決方案中提取優(yōu)化的模式描述。
4.Schemonic 關(guān)鍵技術(shù)
4.1 前綴排名
為減少模式描述大小,Schemonic 考慮縮寫(xiě)常見(jiàn)前綴來(lái)縮短令牌名稱。算法2 展示了確定潛在有用前綴的方法。首先,通過(guò)??PrefixFreqency?
??函數(shù)統(tǒng)計(jì)每個(gè)前綴在模式中的出現(xiàn)次數(shù),這需要先獲取模式中所有標(biāo)識(shí)符的列表(包含重復(fù)項(xiàng)),然后遍歷所有可能的前綴長(zhǎng)度,提取并計(jì)數(shù)每個(gè)前綴。接著,??Prune?
?函數(shù)對(duì)前綴進(jìn)行修剪,去除只出現(xiàn)一次的前綴,以及被更長(zhǎng)且更頻繁出現(xiàn)的前綴所支配的前綴。最后,返回出現(xiàn)頻率最高的 個(gè)前綴。通過(guò)這種方式, Schemonic 能在不顯著增加計(jì)算復(fù)雜度的前提下,找到可能帶來(lái)更優(yōu)解的前綴。
4.2 整數(shù)線性規(guī)劃( ILP )轉(zhuǎn)換
變量:ILP 實(shí)例使用多種整數(shù)變量來(lái)表示模式描述的不同方面。變量 表示令牌在槽中的選擇,
表示令牌的表示方式,
表示是否引入表示函數(shù),
表示槽位是否為空,
表示令牌添加到上下文,
表示令牌在上下文層中的情況,
和
用于關(guān)聯(lián)模式描述與語(yǔ)義。這些變量共同構(gòu)建了模式描述的完整表示,確保了在 ILP 框架下對(duì)模式壓縮問(wèn)題的準(zhǔn)確建模。約束:通過(guò)一系列線性約束確保 ILP 解決方案代表有效的模式描述。約束 C1-C5 保證變量?
和
的有效賦值,如每個(gè)槽最多一個(gè)標(biāo)識(shí)符和一個(gè)括號(hào),空槽的一致性等。C6-C8 確保括號(hào)的正確使用。C9-C19 準(zhǔn)確表示上下文與令牌的關(guān)系。C20-C26 確保描述的語(yǔ)義正確性,提及所有相關(guān)事實(shí)且不包含錯(cuò)誤陳述。C27-C28 關(guān)注令牌的表示,確保每個(gè)令牌映射到唯一表示且引入所有使用的表示函數(shù)。
目標(biāo)函數(shù):優(yōu)化目標(biāo)是最小化模式描述的長(zhǎng)度,以降低使用 LLM 的成本。目標(biāo)函數(shù)通過(guò)對(duì)選定的令牌表示和使用的函數(shù)進(jìn)行加權(quán)求和來(lái)實(shí)現(xiàn),權(quán)重為相應(yīng)文本描述的長(zhǎng)度。雖然實(shí)際中 LLM 可能對(duì)令牌有合并處理,但實(shí)驗(yàn)表明該目標(biāo)函數(shù)能顯著改善成本。
4.3 優(yōu)化策略
合并列:為減少搜索空間, Schemonic 合并具有相同注釋且屬于同一表的列。算法3展示了具體過(guò)程,通過(guò)遍歷模式中的所有表,收集列注釋集,將具有相同注釋的列分組,若組中列數(shù)大于1,則創(chuàng)建合并列名稱,最后用合并列替換原始列。這樣在不改變事實(shí)的前提下,簡(jiǎn)化了模式表示,有助于后續(xù)壓縮過(guò)程。
貪婪算法:利用Gurobi等 ILP 求解器可接受初始解的特性, Schemonic 使用貪婪算法生成起始解。該算法遍歷所有表,合并相等注釋的列,然后根據(jù)特定語(yǔ)法生成描述,為 ILP 求解器提供初始值,加速優(yōu)化過(guò)程。例如,對(duì)于學(xué)生表模式,貪婪算法會(huì)合并具有相同注釋的列,生成相應(yīng)的初始描述。
值提示: ILP 求解器允許指定變量值的提示, Schemonic 根據(jù)令牌在原始模式描述中的出現(xiàn)頻率對(duì)其排序,為低頻令牌相關(guān)的上下文變量提供零值作為默認(rèn)提示。這有助于在搜索過(guò)程中優(yōu)先考慮更可能產(chǎn)生有效解的變量值組合,提高求解效率。
5.實(shí)驗(yàn)結(jié)果分析
5.1 實(shí)驗(yàn)設(shè)置
Schemonic 及基線方法均用 Python 3.10 實(shí)現(xiàn), Schemonic 使用 Gurobi 10 作為 ILP 求解器,實(shí)驗(yàn)在 EC2 c5.4xlarge 實(shí)例上進(jìn)行。實(shí)驗(yàn)比較了 Schemonic 與多種基線方法,包括SQL DDL命令(SQL)、文本到SQL翻譯提示模板中的模式表示(PB)和貪婪算法的輸出(Greedy)。使用來(lái)自 PublicBI 、TPC-H和 SPIDER 基準(zhǔn)的模式,用GPT分詞器測(cè)量令牌數(shù)量, Schemonic 配置為使用所有優(yōu)化策略,限制上下文層數(shù)為 3,考慮 9 個(gè)前綴,每個(gè)實(shí)例超時(shí) 20 分鐘。
5.2 壓縮方法比較
模式描述大小:圖4比較了不同壓縮方法的模式描述大小。對(duì)于 PublicBI 和 SPIDER 基準(zhǔn)(包含多個(gè)數(shù)據(jù)庫(kù)模式),結(jié)果以箱線圖展示,TPC-H基準(zhǔn)(單數(shù)據(jù)庫(kù))結(jié)果為一條線。Schemonic 在平均上顯著減少了模式描述的大小,在 TPC-H 中壓縮因子達(dá)1.7, PublicBI 中達(dá)2,在 SPIDER 中某些情況下接近3。與貪婪算法相比, Schemonic 在三個(gè)基準(zhǔn)中平均至少減少 20% 的描述長(zhǎng)度,如在 SPIDER 中平均減少超23%,對(duì)某些模式最多減少76%。
費(fèi)用:由于處理費(fèi)用與模式大小成正比,第二行報(bào)告了使用 GPT-4 讀取模式描述的費(fèi)用(對(duì)數(shù)軸)。傳統(tǒng)模式表示的讀取費(fèi)用可達(dá)28美分,而 Schemonic 生成的描述費(fèi)用始終低于11美分,表明優(yōu)化模式描述可顯著降低成本,尤其在模式讀取頻繁的場(chǎng)景中,如文本到 SQL 翻譯。
壓縮時(shí)間:除 Schemonic 外的基線方法壓縮時(shí)間均小于 100 毫秒,僅在處理大型模式(讀取成本10美分及以上)時(shí)超過(guò)10毫秒。Schemonic 最多消耗5分鐘(達(dá)到超時(shí)),但能生成接近最優(yōu)解的模式描述。在模式變化少而讀取頻繁的場(chǎng)景中,如文本到 SQL 翻譯, Schemonic 在壓縮上投入的時(shí)間可被后續(xù)處理模式描述時(shí)的節(jié)省所抵消。
5.3 壓縮對(duì)LLM準(zhǔn)確性的影響
使用 SPIDER 基準(zhǔn)及其變體(包含SQL查詢和自然語(yǔ)言問(wèn)題)評(píng)估壓縮對(duì)文本到SQL翻譯準(zhǔn)確性的影響。采用特定提示模板進(jìn)行翻譯,用生成的SQL查詢與真實(shí)結(jié)果比較來(lái)計(jì)算成功翻譯的查詢數(shù)量。圖5展示了不同模型( GPT-3.5 Turbo和 GPT-4 )和不同模式描述下的結(jié)果,在所有場(chǎng)景中,各基線方法的成功率相似,表明壓縮對(duì)LLM的結(jié)果質(zhì)量影響不大, Schemonic 在某些基準(zhǔn)中表現(xiàn)良好,即使較小的 GPT-3.5 Turbo 模型也未因壓縮而顯著降低結(jié)果質(zhì)量。
5.4 進(jìn)一步分析
ILP 大小與模式維度的關(guān)系:圖6展示了模式維度與 ILP 大小的關(guān)系,表明 ILP 變量和約束數(shù)量與槽數(shù)量線性增長(zhǎng),與不同令牌數(shù)量二次增長(zhǎng),與理論分析一致。由于列名通常是令牌的主要部分,令牌數(shù)量與模式長(zhǎng)度高度相關(guān),結(jié)果顯示超線性增長(zhǎng)。
優(yōu)化策略的影響:圖7通過(guò)消融研究展示了優(yōu)化策略的影響,依次移除貪婪解插入、變量值提示和列合并優(yōu)化。結(jié)果表明,所有優(yōu)化策略啟用時(shí)可解決 100% 的測(cè)試用例,而全部禁用時(shí)無(wú)法解決任何問(wèn)題,證明了優(yōu)化策略對(duì) Schemonic 性能的重要性。
6.總結(jié)
本文介紹了 Schemonic 系統(tǒng),它致力于優(yōu)化包含關(guān)系數(shù)據(jù)庫(kù) schema 的提示,以減少大語(yǔ)言模型的令牌使用數(shù)量,進(jìn)而降低調(diào)用開(kāi)銷。通過(guò)將 schema 壓縮建模為組合優(yōu)化問(wèn)題,并利用整數(shù)線性規(guī)劃求解器, Schemonic 能夠自動(dòng)生成簡(jiǎn)潔且準(zhǔn)確的數(shù)據(jù)庫(kù)模式描述。實(shí)驗(yàn)表明,該系統(tǒng)在顯著降低成本的同時(shí),不影響大語(yǔ)言模型在任務(wù)(如文本到SQL翻譯)中的準(zhǔn)確性。這一研究成果為在實(shí)際應(yīng)用中更經(jīng)濟(jì)高效地使用大語(yǔ)言模型處理數(shù)據(jù)庫(kù)相關(guān)任務(wù)提供了重要的技術(shù)支持,有助于推動(dòng)人工智能在數(shù)據(jù)管理領(lǐng)域的進(jìn)一步發(fā)展。
論文地址:???https://www.vldb.org/pvldb/vol17/p3511-trummer.pdf???
Generating Succinct Descriptions of Database Schemata for Cost-Eficient Prompting of Large Language Models
代碼地址:???https://github.com/itrummer/schemacompression??
原文鏈接:??https://www.yuque.com/u21774036/qnmlr1/gmtdxrgyq4z4wohv?singleDoc??
本文轉(zhuǎn)載自 ??AIGC前沿技術(shù)追蹤??,作者: 愛(ài)讀論文的吳彥祖
