小白也會SQL:大模型改變交互方式(上)

在人工智能與自然語言處理交匯點,有一種技術正悄然改變與數據交互的方式——將日常語言轉化為精準SQL查詢。這一“text-to-sql”轉換任務,使非專業人士也能輕松駕馭復雜的數據庫操作,極大地拓寬了數據應用的邊界。

然而,現有前沿方法往往依賴于封閉源代碼的大型語言模型,它們雖然功能強大,卻伴隨著模型透明度缺失、數據隱私風險增大以及高昂推理成本等難題。有沒有既開放、高效又安全的替代方案呢?魯班模錘今天帶來的論文《CodeS: Towards Building Open-source Language Models for Text-to-SQL》正在嘗試破局。

課題背景

Text-to-sql的任務是指將用戶的自然語言的提問(文本)轉化成能在數據庫上執行的結構化查詢查詢語言(SQL)。下圖為對某一 “銀行金融”數據庫提出自然語言的問題,再轉化為數據庫查詢語言(SQL)的過程。這個過程使得不熟悉SQL或數據庫結構的用戶也能夠使用自然語言與數據庫交互。

依賴部分現有的大模型也能實施,例如閉源的大語言模型 DIN-SQL(基于GPT-4)、SQL-PaLM(基于PaLM-2)或是C3(基于GPT-3.5)。盡管這些模型在Text-to-sql性能上表現出色,但也可能存在以下問題:

  1. 閉源模型隱藏了落地的具體架構以及訓練/推理細節,阻礙了針對特定應用的持續開發。(這里突然想起來最近有位大佬說某大廠堅持閉源,回頭另文點評

  2. 通過API調用這些云端模型可能會帶來數據隱私風險,因為必須將數據發送給模型提供商。

  3. 大多數閉源模型具有大量參數(例如基于GPT-3.5則有175B個參數),導致顯著的推理開銷,通常反映在調用API的花銷上

綜上所述,研究者推出了專為SQL生成而設計的開源語言模型CodeS。其特點是體量小,與ChatGPT和GPT-4比小10-100倍,而性能上卻可以比肩SOTA。

知識補充:SOTA是“State of the Art”的縮寫,這個術語通常用于描述某個領域或技術中當前最先進的成果或最高水平的性能。

基座模型StarCoder

StarCoder 和 StarCoderBase 是針對代碼的大語言模型 (代碼 LLM),模型基于 GitHub 上的許可數據訓練而得,訓練數據中包括 80 多種編程語言、Git 提交、GitHub 問題和 Jupyter notebook。與 LLaMA 類似,基于 1 萬億個詞元訓練了一個約15B參數的模型。此外還針對一個35B詞元的Python 數據集對 StarCoderBase 模型進行了微調,從而獲得了一個稱之為 StarCoder 的新模型。當然這個系列有1B/3B/7B/15B四種規模的基座模型。

CodeS結構拆解

首先A階段為了提高現有語言模型的SQL生成和自然語言理解能力,研究人員采集了新語料庫,該語料庫由來自不同來源的11GB SQL相關數據、6GB NL-to-code(自然語言轉代碼)數據和4.5 GB NL相關數據集組成。基于StarCoder,采用該語料庫進行增量預訓練,并獲得預訓練的語言模型CodeS(StarCoder按照上文而言擁有1B、3B、7B和15B 4種規模)。

緊接著來到了B階段,研究人員提出一種全面的數據庫提示構建方法來生成高質量的數據庫提示。該策略主要包含模式過濾器和值檢索器。模式過濾器是根據給定的問題消除不相關的表和列。值檢索器經過定制可以提取與問題相符的潛在有用的數據庫值。?除了表名和列名之外,還合并了各種元數據,包括數據類型、注釋、代表性列值以及主鍵和外鍵的信息。?如此為文本到SQL的轉化提供更加真實而且豐富的上下文。

這個時候來到了C階段,畢竟不同的客戶擁有不同的業務數據庫,但是又無法提供足夠多的適配樣本。因此研究人員提出了一種雙向數據增強方法,為新應用場景自動化的生成大量新語料(提問和對應的SQL語句)。?那么如何操作呢?在文本-SQL方向的語料方面,從現實的業務場景入手需要人工標記一些數據項,再交由GPT-3.5模擬生成進行語料庫擴展。而在SQL-文本方向的語料方面則需要研究人員從現有的文本-SQL的基準中提煉模板,然后用新的業務數據庫填充模板,然后使用 GPT-3.5 來自動的精煉語料。?這種雙向策略創建了最小人力標注投入,但是能夠構建一個強大和好用的訓練集。

若有著豐富的訓練數據,CodeS出現的D階段就可以執行,利用SFT進行模型訓練(后續會解釋,這里可以理解為對于大模型的部分參數進行微調)。

相反,若訓練數據有限,那么只能使用不改變模型參數的In-Context學習(階段E),只能提供一些文本到sql的演示,在不微調模型的情況下利用大模型的學習和模仿能力快速給出答案。

在這兩種模式種,Incremental pre-traning(階段A)和Database prompt construction(階段B)都是其基石,而在SFT策略模式中還需要Bi-directional augmentation for new domain adaptation(階段C)的輔助。下篇文章將開啟具體組件的詳細解讀。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13337.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13337.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13337.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux系統查看服務器硬件信息

1、查看服務器型號、序列號 # dmidecode|grep "System Information" -A9 | egrep "Manufacturer|Product|Serial" 2、查看主板型號 # dmidecode |grep -A16 "System Information$" 或 dmidecode -t1 3、查看BIOS信息 # dmidecode -t bios 4、…

學習大數據:論學習Spark的重要性

隨著科技的不斷發展,大數據已經成為了當今社會的熱門話題。大數據技術的出現,為我們提供了處理海量數據的新方法,使得我們能夠從這些數據中挖掘出有價值的信息。在眾多的大數據處理框架中,Apache Spark無疑是最為出色的一種。本文…

部分基于深度學習的主流目標檢測算法

文章目錄 Anchor-Based方法Two-stage目標檢測算法RCNNFast RCNNFaster RCNNFPN(理解為Faster R-CNN中的一個關鍵組件或改進模塊) One-stage目標檢測算法YOLOSSD Anchor-Free方法CornerNetCenterNetFSAFFCOSSAPD 基于transformer的方法DETR 常用數據集Reference 目標檢測是計算機…

vue嵌套路由

一、嵌套 children配置 1.父類路由 mymusic 2.子類路由 musicson 1.創建MusicSon組件 <template><div><p>從前和后來</p><p>唯一</p><p>運氣來的似有若無</p></div> </template><script>export defaul…

linux du 排除 某一個目錄 proc

Linux的du用法排除某個目錄_du -sh 排除目錄-CSDN博客 du -sh /* --exclude"*proc*"

通俗易懂的策略模式講解

什么是策略模式&#xff1f; 策略模式是一種設計模式&#xff0c;它允許你定義一系列的算法&#xff08;策略&#xff09;&#xff0c;并將每個算法封裝成一個對象。這樣&#xff0c;你可以輕松地切換不同的算法&#xff0c;而不需要改變原始代碼。 一個簡單的例子 假設你是…

韻搜坊 -- 前后端聯調實現搜索圖片

文章目錄 后端新建圖片類型Picture創建圖片接口類PictureController新建PictureQueryRequest創建Service類創建實現類PictureServiceImpl 前端添加接口獲取后端數據修改picture頁面內容添加文章&#xff0c;圖片的搜索功能修改查詢參數的獲取&#xff0c;實現查詢用戶功能 存在…

這10款安卓APP,簡直好用到爆!

AI視頻生成&#xff1a;小說文案智能分鏡智能識別角色和場景批量Ai繪圖自動配音添加音樂一鍵合成視頻http://AI視頻生成&#xff1a;小說文案智能分鏡智能識別角色和場景批量Ai繪圖自動配音添加音樂一鍵合成視頻 1.追書——追書神器 追書神器是小說追新大神&#xff0c;全網實…

基于RequestResponseBodyMethodProcessor的Trim功能裝飾者模式實現

文章目錄 前言一、實現1.1 Trim1.2 TrimRequestResponseBodyMethodProcessorDecorator1.3 Configuration 二、測試2.1 測試用例2.2 測試結果2.2.1 Test no.12.2.2 Test no.22.2.3 Test no.32.2.4 Test no.4 前言 公司內部系統老是有人填表單復制粘貼老是整出前后空格來. 前端…

摸魚大數據——大數據導論

大數據導論 1、概念 大數據時代: 萬物皆數據 ? 數據概念: 人類的行為及產生的事件的一種記錄稱之為數據 ? 數據價值: 對數據的內容進行深入分析&#xff0c;可以更好的幫助了解事和物在現實世界的運行規律 2、大數據誕生 大數據的誕生: 跟隨著互聯網的發展的,當全球互聯…

K8S認證 | CKA題庫 + 答案 | 查看Pod CPU資源使用量

2、查看集群中運行Pod CPU資源使用量 您必須在以下Cluster/Node上完成此考題&#xff1a; Cluster Master node Worker node k8s …

【信息系統項目管理師知識點速記】采購管理:實施采購

實施采購過程是項目管理中一個關鍵環節,旨在通過一系列步驟確保項目所需的貨物、服務或成果能夠從合適的供應商處獲得,并以合同形式確立雙方的權利與義務。這一過程不僅關乎選擇最合適的賣方,還包括了風險管理、成本控制、溝通規劃等多個方面的考量。 輸入概述 項目管理計劃…

從零開始精通RTSP之加密

概述 原始的RTSP通信默認使用的是明文傳輸&#xff0c;這也就意味著&#xff0c;在網絡上的任何節點都能輕易地查看或修改傳輸的內容。這在涉及隱私或版權保護的場景下&#xff0c;是完全不可接受的。因此&#xff0c;加密顯得尤為重要。加密的目的主要有三點&#xff1a;一是進…

擰緊設備或工具的選型原則、常見類型和選型關鍵因素有哪些?

智能扭矩系統-智能擰緊系統-扭矩自動控制系統-SunTorque 在工業生產領域&#xff0c;擰緊控制是一項至關重要的工藝環節。它涉及螺栓、螺母等緊固件的裝配過程&#xff0c;直接關系到產品的質量和性能。因此&#xff0c;選擇合適的擰緊設備或工具對于確保擰緊過程的準確性和穩…

[牛客網]——C語言刷題day4

答案&#xff1a;B 解析&#xff1a; a是數組首元素的地址,a1的步長是int&#xff0c;所以是2 &a是數組的首地址&#xff0c;&a1步長是int[5] ptr是int類型的指針&#xff0c;指向a數組的尾后位置&#xff0c;ptr-1的步長是int,所以是a數組的最后一個元素5 答案&am…

如何使用ffmpeg 實現10種特效

相關特效的名字 特效id 特效名 1 向上移動 2 向左移動 3 向下移動 4 顫抖 5 搖擺 6 雨刷 7 彈入 8 彈簧 9 輕微跳動 10 跳動 特效展示(同時匯總相關命令) pad背景顯示 pad背景透明 相關命令(一會再講這些命令&#xff0c;先往下看) # 合成特效語音 ffmpeg -y -loglevel erro…

Element Plus/vue3 無限級導航實現

在使用element plus 時&#xff0c;最初要使用的就是導航組件了&#xff0c;官網上看到的也就是寫死的一級/二級導航&#xff0c;那么如何設計一個無限級且動態的導航呢&#xff1f;毋庸置疑&#xff0c;遞歸。廢話不多說&#xff0c;直接看代碼和效果&#xff1a; 代碼&#x…

Jmeter:錄制腳本(操作文檔)

新建線程組 打開jmeter&#xff0c;右鍵測試計劃–>添加–>Threads(Users)–>點擊"線程組" 添加錄制控制器 右鍵線程組–>添加–>邏輯控制器–>點擊"錄制控制器" 添加HTTP代理服務器 右鍵工作臺–>添加–>非測試元件–>…

YOLOv5改進 | Neck | 添加雙向特征金字塔BiFPN【小白輕松上手 | 論文必備】

&#x1f680;&#x1f680;&#x1f680;本專欄所有的改進均可成功執行&#x1f680;&#x1f680;&#x1f680; 盡管Ultralytics 推出了最新版本的 YOLOv8 模型。但YOLOv5作為一個anchor base的目標檢測的算法&#xff0c;YOLOv5可能比YOLOv8的效果更好。但是針對不同的數據…

CDN都有哪些優勢?

內容分發網絡是一個經策略性部署的整體系統&#xff0c;其中包含了分布式存儲、負載均衡、網絡請求的重定向和內容管理四個要求&#xff0c;CDN的主要核心則是內容管理和全局的網絡流量管理&#xff0c;CDN可以確保內容會以一種非常高效的方式為用戶的請求提供服務。 接下來就讓…