ChatGPT與資料庫能擦出什麼火花

人工智慧洞察站發表於2023-05-08

來源:韓鋒頻道

ChatGPT,可以說是今年最火的一個科技名詞。在兩個多月前,我也寫過一篇《ChatGPT:對話中國資料庫》。隨著這幾個月的發展,我們看到有越來越多的ChatGPT與資料庫結合的應用出現。這也不禁令人暢想,未來ChatGPT與資料庫的結合,能擦出什麼火花?DEV、DBA未來會失業嗎?本文嘗試闡述下未來兩者的結合前景。


1. ChatGPT為什麼火

讓我們先看看ChatGPT,是如何來解釋自己的?

ChatGPT與資料庫能擦出什麼火花

作為一個人工智慧的外行,一直有點好奇,為什麼ChatGPT的出現,能產生如此顛覆性的影響。可以說在過去幾十年裡,人工在很多領域都有不錯的表現。從最早的IBM Watson,到近幾年的Google AlphaGo,都在具備領域有所突破,但似乎都沒有辦法解決通用性問題,只能滿足特定場景。因而人們常說,AI沒有那麼聰明。其背後的原理也查了查資料是因為讓AI掌握常識,並且能夠融會貫通地運用這些常識、形成推理能力非常難,一直以來這都是巨大的難題。但這次以ChatGPT為代表的一眾大語言模型,突然突破了這個門檻,變得非常“聰明”。當然背後的原因有很多,比如自監督學習、Fine-tuning策略等等,但有一個重要的底層變化——大語言模型的“湧現”現象,就是說一些業界從未想象到的能力,例如基礎的社會知識、上下文學習、推理等等,在訓練引數和資料量超過一定數值後,這些能力突然出現了,令AI一下子變得非常智慧。伴隨著這一技術突破,很多領域可採用新交付方式甚至是全面重塑。資料庫作為重要的基礎軟體,也與其全面結合,產生很多新方向。


2. 回顧AI與資料庫的結合

在開始之前,先簡單回顧下之前AI與DB之前的結合。下面部分內容摘自清華大學李國良教授團隊論文《Database Meets AI:A Survey》。之前的資料庫和人工智慧的結合主要來自兩個方面:一是人工智慧可以使資料庫更加智慧化(AI4DB)。傳統的經驗資料庫最佳化技術難以滿足大規模資料庫例項、各種應用程式和多樣化使用者的高效能要求,尤其是在雲上。而幸運的是,人工智慧基於學習的技術可以緩解這個問題。二是資料庫技術可以最佳化AI模型(DB4AI)。例如,人工智慧很難在實際應用中部署,因為它需要開發人員編寫複雜的程式碼和訓練複雜的模型。資料庫技術可用於降低使用人工智慧模型的複雜性,加速人工智慧演算法,並在資料庫中提供人工智慧功能。其全貌如下

ChatGPT與資料庫能擦出什麼火花

這裡我們重點關注AI4DB的方向。傳統的資料庫設計基於經驗方法和規範,需要人工參與(例如DBA)來調整和維護資料庫。人工智慧技術被用來緩解這些限制,下圖所示為機器學習能為資料庫帶來的一些技術突破:

ChatGPT與資料庫能擦出什麼火花

其中的主要能力包括:引數調優、索引/檢視顧問、SQL改寫、成本估算、連線順序最佳化等。從上述能力可見,AI4DB的方向重點是解決資料庫執行問題,包括很多產品頁都提出了“自治”、“自動駕駛”的概念。也就是說,是主要解決資料庫自身問題。與之不同的是,ChatGPT更多是解決人與資料庫間及資料自身的問題。


3. 暢想ChatGPT與資料庫結合

生成 SQL 語句(受益方:開發者、分析師)

這是目前最為常見的一類應用,將傳統SQL語句編寫,改為自然語言描述。透過這樣的方式,降低資料庫使用門檻,提升開發效率。主要受益的人群是資料庫應用的開發者及資料探索者(如資料分析師)。很多產品紛紛整合了這一能力,如國內的NineData、Bytebase或者國外的sqlTranslate、AI2sql等。下面我們做個小測試,觀察下ChatGPT能力(以下基於ChatGPT 3.5測試)

ChatGPT與資料庫能擦出什麼火花

ChatGPT與資料庫能擦出什麼火花

透過這個簡單例子,可以看出ChatGPT具備的能力。可將自然語言描述生成對應SQL。

效能最佳化(受益方:DBA、開發者)

ChatGPT另外一個能力,則是對資料物件或語句的最佳化能力。如下文是給出的一些通用性建議

ChatGPT與資料庫能擦出什麼火花

也可以根據具體語句,給出進一步最佳化建議:
ChatGPT與資料庫能擦出什麼火花

當然上述最佳化建議還是比較通用的,當然針對具體物件的最佳化也是可以的。再如下文是對語句級提出的最佳化建議

ChatGPT與資料庫能擦出什麼火花

上述能力可以解決很多常規的效能問題,能大大簡化開發者和初級DBA的很多工作,可以說能解決大部分的初級效能問題。

結構設計(受益方:DBA、開發者)

除了根據已有物件或語句完成最佳化提示外,ChatGPT還可以前置完成結構的設計。根據的簡單的場景描述,給出資料庫結構定義,簡化結構設計工作。如下圖就是一個簡單登記學生成績系統的庫表設計。這其中包括了主要表、欄位、約束等的定義,還是比較全的。

ChatGPT與資料庫能擦出什麼火花

架構設計(受益方:DBA、架構師)

如果再進一步,將資料庫架構設計也由ChatGPT完成如何?下圖是我將上述例子場景提出,由ChatGPT提出推薦資料庫選型。在明確使用AWS產品範圍後,它給出了部分選型的建議。在給出一定效能要求後,甚至給出了推薦規格(db.r5.large)及潛在架構最佳化點(如讀寫分離)。

ChatGPT與資料庫能擦出什麼火花

ChatGPT與資料庫能擦出什麼火花

資料分析、挖掘與探索(受益方:資料分析師)

ChatGPT的一個很強能力在於對資訊的理解,這一能力可利用在很多資料分析、挖掘、探索領域。其可以敏銳的洞察到資料的變化、甚至做一些趨勢性的分析。如下圖是國內各省份2021、2022年的GDP情況,可以這些資訊可讓ChatGPT估算今年的GDP。

ChatGPT與資料庫能擦出什麼火花

資料治理(受益方:資料管理者、安全人員)

企業內包含著大量業務資料,如何有效利用資料,形成資料資產,進而發揮資料最大價值是企業管理者關心的問題。傳統方式需要透過資料建模等手段自上而下完成治理動作,但受限於企業發展階段、應用開發水平等因素,這種方式會存在很大推進難點。ChatGPT提供了另外一種可能,即從資料本身含義理解做起,自下而上完成治理結構的構建。例如我們提供一組資料給ChatGPT,看它是符合判斷資料屬性的

ChatGPT與資料庫能擦出什麼火花

亦或是給出明確規則定義的情況下,判斷資料質量問題

ChatGPT與資料庫能擦出什麼火花

ChatGPT與資料庫能擦出什麼火花



寫在最後:

綜上,ChatGPT在構建資料應用的全流程中均可發揮作用。從前期的架構、結構設計,到中期的應用開發與最佳化,再到後期的資料分析挖掘乃至資料治理領域。可以說覆蓋了企業對資料及上層應用的方方面面。當然,除了簡化開發外其他能力當前還稍顯初級,但相信隨著其技術本身的成熟及垂直領域的定向增強,未來構建全自動的資料應用將不是幻想。可能只需要提出一個業務Idea,後續從應用設計、開發,到資源選型、部署,再到應用運營分析等,都可以自助完成。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027828/viewspace-2950657/,如需轉載,請註明出處,否則將追究法律責任。

相關文章