文字:李國良,清華大學電腦科學系終身教授,清華大學電腦科學係周宣和。
在資訊時代,資料和人工智慧已成為社會變革的核心驅動力。 其中,大型語言模型(以下簡稱大型模型)因其出色的學習和泛化能力,已應用於自然語言理解、文字生成、文字生成等任務中。 資料庫作為資料儲存、管理和分析的基礎軟體,在大模型的興起中發揮著越來越重要的作用。
清華大學電腦科學系.
終身教授李國良.
大型模型和資料庫的協作開發
1.在資料庫場景中,大型語言模型可以提供優勢
1)模型引數多。以 GPT-3 為例,引數數量達到約 1750 億個,如此龐大的模型規模使得大型模型能夠捕捉到更豐富的語義資訊和上下文關聯,從而為慢查詢優化等資料庫應用提供了新的可能性。
2)訓練語料庫大。大型模型的成功部分歸功於它們所依賴的大型訓練語料庫。 例如,OpenAI 的訓練資料包括來自 800 多萬個網頁的資訊,涵蓋各種主題和領域。 這使得大型模型能夠更好地理解和分析人類語言的多樣性,為資料庫和自然語言處理的融合帶來前所未有的機遇。
3)遷移能力強。大型模型在遷移學習中的能力也為資料庫領域帶來了重大機遇。 特別是在智慧型問答等典型場景下,大模型可以通過對大尺度資料的預訓練,實現高效的理解和答疑。這種遷移能力使得大模型成為資料庫查詢分析的強大助手,可以將使用者的自然語言查詢轉化為資料庫操作,大大提高了資料庫系統的易用性和使用者滿意度。
2.資料庫中大型模型面臨的挑戰
1)如何在大型模型上支援SQL語法?對於提供的任何大型語言模型(許多大型模型沒有 SQL 語料庫),快速支援和理解資料庫查詢語言非常重要。 例如,需要取樣具有代表性(文字、SQL 等價物)的二進位檔案作為訓練資料,以幫助大型模型學習 SQL 語法,提高從自然語言到 SQL 查詢的翻譯能力。
2) 如何為邏輯優化任務生成輸入提示?首先,提供給大型模型的指令質量會影響特定任務的效能。 例如,指令的描述方式或複雜程度可能不適合大型模型理解,從而導致效能不佳。 因此,從大量候選指令中自動選擇適當的任務順序至關重要。 其次,在同一任務中,為給定的輸入提供一些相關的示例很重要(例如,類似於此輸入語句中的歷史邏輯重寫)。 這些示例可以幫助模型學習如何應用先驗知識來處理複雜情況(例如,應用了多個規則的查詢重寫)。
3)如何為物理優化任務訓練大型模型?首先,資料特徵(例如,資料分布、索引等)可能會顯著影響大型模型的物理優化決策(例如,具有大量不同值的索引序列)。 然而,大型模型很難捕捉到資料分布與目標任務之間的關係,例如以自然語言或模型友好嵌入的形式描述關鍵資料特徵。 其次,由於一些資料庫任務只提供有限數量的高質量標記樣本(例如,具有最優重寫策略的真實查詢),因此有必要探索如何更好地利用訓練樣本來訓練大型語言模型。
通過以上分析,我們可以看到,大型模型在資料庫領域帶來了新的機遇,但也需要克服一系列挑戰。 在以下章節中,我們將進一步探討大型模型在資料庫領域的應用,如自然語言查詢(text2sql)、查詢計畫優化(sql2plan)、資料庫運維(llm4dbdiagnosis)等。 此外,大模型應用的成功不僅取決於單個模型或技術創新,還取決於資料庫為大模型帶來的價值,包括資料標註、資料管理、向量資料庫等。 最後,展望未來資料庫與大模型融合的發展趨勢。
大型模型解決資料庫問題
1.適用於應用大型模型的資料庫任務
1)提高資料庫(text2sql)的可用性。大型模型的自然語言理解和生成能力為資料庫帶來了前所未有的易用性。 通過將使用者的自然語言查詢轉換為SQL查詢語句,大模型可以消除使用者與資料庫之間的語言障礙,使非技術人員能夠輕鬆進行複雜的資料查詢和分析。 該特性在企業內部、移動應用、服務等場景尤為重要,有效降低了資料庫使用門檻。
2)提高資料庫效能(sql2plan)。大型模型在SQL查詢優化中的應用,即SQL2Plan,對於提高資料庫的效能至關重要。 大型模型可以通過了解查詢的語義和資料結構,將複雜的 SQL 查詢轉換為高效的查詢計畫。 這種優化能力不僅減少了資料庫查詢的響應時間,而且減少了系統的負載,提高了資料庫的吞吐量。 在大資料時代,這對於保證系統的高效穩定執行具有重要意義。
3)提高資料庫的可維護性(llm4dbdiagnosis)。資料庫執行狀況和效能問題對企業的運營至關重要。 大型模型在這方面可以發揮重要作用,通過分析資料庫效能和效能指標來診斷故障的潛在原因。 基於對語義和上下文的理解,大模型可以快速判斷是否存在資料不一致、查詢效能下降等問題,並給出相應的建議來解決。 這有助於資料庫管理員更快地定位和修復問題,從而提高資料庫的可維護性和穩定性。
2.大型模型解決方案
1)面向資料庫的大模型設計與訓練:與自然語言任務不同,資料庫任務具有嚴格的輸出約束(如SQL語句的合法性和等價性)和大量的結構化資料特徵(如元資料、資料表等)。為了解決這個問題,我們主要從三個方面保證大語言模型具備解決資料庫問題的基本能力。
2)採用混合約束法驗證大模型輸出的有效性。由於其“黑匣子”性質,大型模型無法保證任務結果的 100% 準確性。 但是,某些資料庫任務需要嚴格的約束(例如,查詢重寫的輸出必須是語義等效的查詢,並且查詢必須在資料庫上可執行)。 因此,我們首先需要設計乙個具有基本資料庫知識的訓練集(例如,滿足SQL語法的大量查詢),以便大型模型能夠產生最有效的輸出。 其次,對於相對簡單的情況,我們使用非學習檢查層來驗證輸出(例如,使用 SMT 求解器來驗證簡單的 SPJ 查詢)。 對於更複雜的情況,我們可以使用學習檢查層(例如二元分類器)來驗證輸出。
3)結合不同模式的資料庫樣本訓練大模型。與自然語言文字語料庫相比,資料庫中的訓練資料具有不同的特徵。 首先,資料庫訓練樣本可能具有不同的格式,例如結構良好的 SQL 和查詢計畫、半結構化日誌和非結構化文件。 因此,需要很好地表示和組合不同的資料樣本,以有效地訓練大型模型。 例如,您可以記錄查詢執行並獲取類似“[表資料] [查詢] [邏輯計畫] [物理計畫] [結果] [執行時間]”的序列。 通過學習這些序列中的相關性,大型模型可以自動學習如何優化查詢。
4)基於聯邦學習和知識提煉,為資料庫樣本提供私隱保護。在這種方法中,伺服器(如資料庫提供程式)與客戶一起進行多模型訓練。 在每一輪中,客戶都會收到一些伺服器資訊(例如伺服器網路引數)並更新其本地網路引數。 然後,他們使用本地資料訓練本地模型,並將一些本地資訊傳送到伺服器,例如本地梯度結果。 伺服器通過聚合客戶的本地資訊來更新其網路引數,並通過傳送更新的伺服器資訊開始下一輪。
3.基於輸入提示的邏輯優化
對於邏輯優化任務的輸入x,我們可以將任務所需的特徵以文字形式新增到輸入提示x中(例如查詢重寫所需的轉換規則),以幫助大模型更好地理解任務需求。 但是,不同的輸入可能對應於不同的最佳提示(例如,具有不同結構的查詢可能需要不同的重寫示例),這使得使用者很難給出良好的提示。 我們需要構建乙個提示生成器,它會自動派生輸入 x 的提示。
1)自動生成提示。我們可以將指令和演示示例作為附加文字資訊組合到提示中,組織為“[Instruction][demo example] input: [x] output:”。 生成指令和演示示例的步驟如下: 首先,任務指令。 任務指令的質量會影響大型模型在不同任務上的效能。 因此,我們首先使用乙個大型模型,根據一小組輸入輸出對(例如,一條指令有 5 個)來建議候選指令。 其次,我們根據自定義評分函式(例如,測試工作負載的平均效能)對這些生成的指令進行排名,並將最佳指令(例如,前 10 名)保留為候選指令 7。 第三,我們利用基於搜尋的方法(例如,蒙特卡洛搜尋)來改進大型模型的候選模型(例如,具有相似語義的輸出指令變體)。 最後,我們選擇最佳指令作為任務的輸入。 第二種方法是從候選集 (SI) 中選擇演示示例。 與指令生成不同,示例選擇取決於輸入 x。 如果示例與輸入更相似,則它為更大的模型提供了更相關的資訊。 具體來說,我們學習了乙個輸入指令編碼器 ex(x) 和乙個示例編碼器 es(si),並使用 l2 距離來計算所有候選示例的 ex(x) 和 es(si) 之間的相似性。
2)利用學習方法提高提示生成效率。在應用大模型的過程中,有三個因素會大大增加與大模型的互動延遲和成本。 一種是從候選樣本中檢索合適的樣本; 其次,對於大型模型,較長的提示通常包含更有用的資訊,但可能需要更長的時間來處理。 第三種是多輪呼叫大模型,互動調整輸入提示。 為了有效地生成提示並減少大型模型互動的延遲,一種解決方案是在一組候選示例上訓練強化學習 (RL) 模型,例如 Q-Learning。 此 RL 模型可用於確定要選擇的最佳示例,無需在整個候選集中進行搜尋。
4.基於模型微調的物理場優化
除了文字提示之外,物理優化任務(如查詢計畫生成)需要大量的非文字資訊,如資料分布、併發負載、系統指標等。 這些資訊不能輕易地用自然語言表達。 此外,微調可以提高 LLM 的特定任務效能。 然而,微調模型的有效性受到標記資料樣本的大小和質量的顯著影響。
1)非文字特徵編碼。在物理優化任務中,一些非文字特徵很容易超過大型模型(例如表資料)的輸入長度限制。 為了解決這個問題,我們首先提供兩種嵌入非文字資訊的方法:一種是資料分布(如運算元成本和查詢結果)對物理優化結果的質量影響很大,我們可以使用模型ED來嵌入表列資料的分布。 簡而言之,讓我們從乙個分位數開始(例如,(min, p01,..p99,最大))近似列資料的分布特徵,然後使用轉換器等模型來嵌入這些特徵。其次,查詢關聯反映了同一資料庫中並行工作負載的執行狀態,我們可以使用模型er在併發查詢之間嵌入關聯。 例如,我們可以建立乙個查詢圖,其中每個查詢都是乙個節點,查詢相關性可以用邊緣型別和權重來表示。 基於這個查詢圖,我們可以使用圖神經網路等模型將圖結構資訊嵌入到向量ER中。
2)基於對比學習的微調樣本生成。某些資料庫任務可能缺乏足夠的高質量資料(例如,數以萬計的樣本)來微調 LLM。 我們提出了三種解決方案。 首先,我們可以使用對比學習從資料集中生成額外的微調樣本。 例如,在乙個引數調優任務中,我們可以得到k個引數設定及其對應的效能指標。 通過使用大型模型比較每對引數配置的效能,我們可以生成 (k2) 樣本來微調大型模型。 其次,對於低質量的資料樣本,我們可以使用大型模型來生成標註(例如資料樣本的推理過程),以幫助提高這些資料的質量。 例如,您可以使用大型模型來診斷 SQL 速度慢的根本原因。 我們可以將資料和一組潛在的注釋輸入到大模型中,並選擇生成輸出概率最高的注釋作為低質量資料樣本的最終注釋。 第三,我們可以監控大模型的效能,記錄大模型表現不佳的場景,記錄輸入特徵及其相應的輸出。 我們將這些資料樣本新增到微調資料中,不僅可以增加我們擁有的微調資料量,還可以捕捉大型模型的弱點。
資料庫為大型模型帶來的價值
1.資料注釋
資料庫作為資料的保管人和管理者,可以為大型模型提供豐富的資料資源進行訓練和學習。 通過資料庫的資料發現,可以及時掌握資料的全貌,避免遺漏重要資訊。 資料庫提供的高質量資料標註(資料發現、資料標註、資料清洗)可以有效提高大型模型在各種任務中的準確性和效能。 同時,資料庫還可以輔助資料清洗,消除資料中的噪音和冗餘,保證模型訓練和應用的質量。 通過資料標註、發現和清理,資料庫與大模型之間的協同不僅可以加快模型訓練過程,還可以提高模型在實際應用中的效能。
2.向量資料庫
向量資料庫作為大模型與資料庫的重要連線點,(大模型快取、大模型增強、非結構化資料管理、大模型訓練加速)具有廣泛的應用前景。 首先,向量資料庫可以作為大型模型的快取,高效儲存模型計算結果,實現對實時資料的快速查詢和分析。 此外,通過向量資料庫,可以進一步增強大型模型的能力,例如使用模型在資料中提取和嵌入特徵,為資料庫的資料探勘和分析提供更豐富的資訊。 非結構化資料管理是向量資料庫的另乙個重要應用領域,它可以幫助將文字、影象等非結構化資料整合到資料庫中,實現高效的儲存和查詢。 此外,向量資料庫有助於加快大型模型的訓練過程。 通過對資料庫內部的模型進行訓練,可以充分利用資料庫的分布式算力,加快模型的收斂速度,提高訓練效率。
綜上所述,該資料庫為大型模型帶來了豐富的價值,通過資料標註和清洗,為模型訓練提供了基礎資料和高質量的標註。 通過向量資料庫,實現與大型模型的深度整合,從而加速模型應用和訓練的各個環節。
資料庫+大模型的發展趨勢
下面將展望資料庫+大模型的發展趨勢,包括LLM4DB和DB4LLM。
1.llm4db
1)模型介面的標準化。隨著大型模型在資料庫中的廣泛應用,模型介面的標準化將成為重點趨勢。 開發通用介面標準可以降低 LLM4DB 應用程式的開發成本,並實現不同大型模型的無縫整合到資料庫中。 這將促進模型在不同資料庫系統之間的可移植性和互操作性,並進一步促進大模型在資料管理領域的應用。
2)模型重量輕。為了在資源受限的環境中部署大型模型,模型輕量化將成為關鍵的挑戰和發展方向。 通過蒸餾等技術,將大型模型壓縮精簡,然後部署到資料庫核心中,可以有效節省計算和儲存資源。 這種輕量級模型可以在嵌入式裝置、移動裝置和邊緣計算等場景中發揮重要作用。
3)提高資料庫行業模型的泛化能力。為了讓資料庫行業模型更好地適應不同的應用場景,增強訓練資料的代表性將成為一種趨勢。 通過引入更多的領域資料和知識,可以提高模型的泛化能力,使其在不同領域的資料處理和分析中表現得更好,並且可以降低使用LLM4DB的門檻。
4)提供大型模型的物理資訊。未來,大型模型和資料庫之間將有更深層次的整合。 資料庫可以為大模型提供物理資訊,如資料分布和索引資訊等,使大模型能夠更好地利用資料庫的底層資料結構,提高資料處理和查詢的效率。 這種深度整合有助於進一步提高資料庫和大型模型的效能和功能。
2.db4llm
1)大型模型資料庫。未來,將會出現專門為大型模型設計的資料庫系統,即大型模型資料庫。 這種型別的資料庫系統會自動管理和訓練大型模型,以便模型可以實時更新和優化。 這種整合度更高的解決方案將在資料處理、分析和應用程式中發揮關鍵作用。
2)資料安全和私隱。隨著向量資料庫與大型模型的整合越來越緊密,資料安全和私隱保護變得越來越重要。 將具有私有資料的向量資料庫連線到大型模型會增加大型模型處理敏感資料的風險。 因此,加強資料安全和私隱保護將成為資料庫和大模型發展中不可或缺的一環。
3)增強資料管理。該資料庫不僅將託管資料,還將為大型模型提供增強的資料管理功能。 這包括版本控制、資料可追溯性、資料備份和恢復等,以更好地管理和維護不同上下文中的模型。 這有助於提高大型模型的可維護性和可持續性。
4)向量資料庫。向量資料庫的發展將繼續促進資料庫與大模型的融合。 高效的索引和分布式處理技術將進一步提高向量資料庫的效能,使其能夠更好地支援大型模型的應用和查詢需求。
結論
資料庫與大模型的緊密結合,代表著資訊科技領域的一場重要革命,給資料管理和智慧型應用帶來了前所未有的機遇和挑戰。 本文初步探討了大模型給資料庫帶來的機遇,資料庫給大模型帶來的價值,並展望了未來資料庫和大模型的發展趨勢。 大型模型的出現為資料庫帶來了巨大的改進。 其大量的引數、豐富的訓練語料和強大的遷移能力,不僅提高了資料庫的易用性、效能和維護能力,而且通過自然語言處理和查詢優化,使資料庫成為智慧型化、使用者友好的工具。 同時,資料庫豐富的資料資源為大模型的訓練提供了基礎,資料標註、清洗、非結構化資料管理成為大模型資料庫的有力支撐。
然而,這種融合也帶來了一系列挑戰。 標準化的模型介面、資料安全私隱保護、大型模型資料庫等,都需要在技術、法律、倫理等層面進行深入研究和推進。 資料庫和大模型的發展趨勢不僅與技術創新有關,還與資料治理、私隱權等重要問題有關。 因此,資料庫和大型模型的融合是乙個既有前途又具有挑戰性的領域。 未來,通過不斷的研究、創新和協作,我們有望實現更智慧型、更高效、更安全的資料庫和大型模型應用,為社會帶來更多積極影響。