博客專欄

        EEPW首頁 > 博客 > 15B模型單項能力錘得過GPT3.5,開源SQLCoder已上崗

        15B模型單項能力錘得過GPT3.5,開源SQLCoder已上崗

        發布人:機器之心 時間:2023-08-23 來源:工程師 發布文章
        Coder 家族再添新成員,并且已經開源!

        你知道的有關于代碼編輯的大模型工具有哪些呢?

        推特用戶 @lvwerra 制作了下面這張圖,為大家梳理代碼大家庭的大部分成員。

        圖片


        就在他發布了這張圖后的兩周內,又有三位新成員加入了這個大家庭,它們分別是 DeciCoder、OctoCoder 以及最新的成員 SQLCoder。


        圖片


        其中,這個最新成員 SQLCoder 不僅性能出色,并且已經開源了!


        SQLCoder


        作為一個 SOTA 大型語言模型, SQLCoder 將自然語言問題轉換為 SQL 查詢。在開發者的開源評估框架 SQLEval 中,SQLCoder 的性能明顯優于所有主要的開源模型,并且優于 OpenAI 的 GPT-3.5。


        SQLCoder 是一個 15B 參數的 LLM,也是 StarCoder 的微調實現。SQLCoder 在手工制作的 SQL 查詢上進行了微調,難度依次遞增。在針對單個數據庫模式進行微調時,它的性能可與 GPT-4 媲美,甚至更勝一籌。


        圖片


        • 項目地址:https://github.com/defog-ai/sqlcoder

        • 演示地址:https://defog.ai/sqlcoder-demo/

        • 模型權重:https://huggingface.co/defog/sqlcoder


        在過去的三個月里,SQLCoder 已經部署在了醫療、金融等企業中。這些企業通常擁有敏感數據,他們不希望這些數據從自有服務器中流出,因此利用自托管模型是他們使用 LLM 的唯一途徑。


        方法


        創建數據集


        作者創建了一個手工編輯的 prompt - 補全對數據集,重點是文本到 SQL 任務。該數據集由 10 個不同的模式創建,問題難度各不相同。此外,他們還從 7 個新模式中創建了一個包含 175 個問題的評估數據集。


        他們確保在訓練數據集和評估數據集中都選擇了有 4-20 張表的復雜模式,這是因為只有 1 或 2 個表的模式由于關系有限,往往只能進行簡單直接的查詢。


        問題分類


        數據集創建后,作者將數據集中的每個問題分為易、中、難、特難四類。這種分類通過調整 Spider 數據集使用的標準來完成,以衡量 SQL 難度。最后,他們將數據集分為兩個不同的子部分,分別是簡單問題和中等問題,以及難題和超難題。


        微調


        作者分以下兩個階段對模型進行了微調。


        首先,僅在簡單和中等難度的問題上對 StarCoder 基礎模型進行了微調。


        其次,在難題和超難題上對得到的模型(代碼為 defog-easy)進行微調,從而得到 SQLcoder。


        評估


        作者在自己創建的自定義數據集上對模型進行了評估。評估 SQL 查詢的正確性非常困難,他們曾考慮使用 GPT-4 作為 評估標準,但遇到了很多問題。過程中他們還意識到,兩個不同的 SQL 查詢可能都正確。


        對于 「誰是最近 10 個來自多倫多的用戶 」這個問題,以下兩種查詢方式都是正確的。


        圖片


        鑒于此,作者建立了一個自定義框架來評估查詢的正確性。他們不僅開源了模型權重,同樣開源了評估框架與評估數據集。


        發布數據集的目的是豐富可用基準,幫助研究人員和工程師更好地了解文本到 SQL 生成模型的性能,特別是該模型對返回結果中的無害變化(如列重命名、附加列和重新排序)的穩健性。


        圖片


        更多關于評估的細節請參見博客內容:https://defog.ai/blog/open-sourcing-sqleval/


        性能


        在評估框架中,Defog SQLCoder 的表現優于除 GPT-4 之外的所有主要模型。特別地,它的性能超過了 gpt-3.5-turbo  和 text-davinci-003,而這兩個模型的大小是它的 10 倍以上。


        圖片


        這些結果針對的是通用 SQL 數據庫,并不反映 SQLCoder 在單個數據庫模式上的性能。在對單個數據庫模式進行微調時,SQLCoder 的性能與 OpenAI 的 GPT-4 相同或更好,延遲更低(在 A100 80GB 上)。


        圖片

        將每個生成的問題分為 5 類,按類別顯示了每個模型正確回答問題的百分比。


        SQLCoder 的硬件要求


        SQLCoder 已在帶權重的 A100 40GB GPU 上進行了測試。你還可以在 20GB 或更大內存的消費級 GPU(如 RTX 4090、RTX 3090 以及 20GB 或更大內存的蘋果 M2 Pro、M2 Max 或 M2 Ultra 芯片)上加載該模型的 8 位和 4 位量化版本。


        接下來的工作


        未來幾周,作者將對 SQLCoder 進行以下更新:


        • 利用更多人工收集的數據和更廣泛的問題對模型進行訓練;

        • 利用獎勵建模和 RLHF 進一步調整模型;

        • 從頭開始預訓練一個專門從事數據分析的模型(SQL + Python)。


        如果你對 SQLCoder 感興趣,快點擊演示地址進行探索吧!


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浦北县| 宜宾县| 北流市| 阿巴嘎旗| 登封市| 右玉县| 金堂县| 盐山县| 增城市| 霍州市| 滨海县| 申扎县| 北京市| 承德县| 颍上县| 德庆县| 筠连县| 乐昌市| 金门县| 洮南市| 疏勒县| 合阳县| 高唐县| 沧州市| 南华县| 安塞县| 乐至县| 汤阴县| 鸡西市| 舟曲县| 新津县| 鄂伦春自治旗| 鄂托克旗| 志丹县| 虹口区| 云阳县| 军事| 常熟市| 全州县| 萨迦县| 镇安县|