憶往昔歲月
“你還記得第一份實(shí)習(xí)蔗蹋,是做什么嗎?”
我的第一份算法實(shí)習(xí)工作囱淋,是處理數(shù)據(jù)猪杭。準(zhǔn)確地說,是每天手敲30句+SQL妥衣,從對話數(shù)據(jù)庫中分析用戶高頻問題皂吮、接通率等信息戒傻。
手寫SQL是重復(fù)性很強(qiáng)的工作,一不小心容易出錯涮较,最初的兩個月每天為此忙得焦頭爛額稠鼻。
剛剛?cè)腴TNLP的我天真地想著,“要是模型可以自動生成SQL該多好呀”狂票!
碩士期間候齿,有幸在實(shí)驗(yàn)室從事了半年多Text2SQL的科研工作。2021年闺属,我很高興地看到Text2SQL技術(shù)慌盯,即通過算法將人的自然語言轉(zhuǎn)換為數(shù)據(jù)庫查詢語言SQL,在部分場景中落地應(yīng)用已經(jīng)成為了現(xiàn)實(shí)掂器。
談?wù)勛詣訉慡QL的背景
Text2SQL起源于上世紀(jì)90年代亚皂,是自然語言處理語義解析領(lǐng)域的子任務(wù),核心目標(biāo)是打破人與結(jié)構(gòu)化數(shù)據(jù)之間的壁壘国瓮,讓普通用戶可以通過自然語言描述完成復(fù)雜數(shù)據(jù)庫的查詢工作灭必。
例如我有一張“歌手”相關(guān)的表格,歌迷和狗仔隊(duì)們想知道:
Q:“周杰倫和林俊杰最近的演唱會是什么時候乃摹?”
Text2SQL模型自動將問題轉(zhuǎn)換為SQL語言:
A:“SELECT 近期演唱會 FROM singer WHERE 姓名 = 周杰倫 OR 姓名 = 林俊杰”
再返回查詢結(jié)果:“北京-01.08”和“上海-04.28”
簡單的說禁漓,以前想從數(shù)據(jù)庫里拿數(shù)據(jù)或者分析內(nèi)容,用戶要純手工實(shí)現(xiàn)孵睬。有了Text2SQL播歼,相當(dāng)于我雇了一個不花錢不會累的員工(ai模型),只要發(fā)布命令(Text)掰读,它就會幫我寫好SQL秘狞。
聊聊技術(shù)實(shí)現(xiàn)
明白了背景,我們來聊聊技術(shù)實(shí)現(xiàn)問題蹈集。和分類烁试、匹配等很多NLP任務(wù)類似,Text2SQL也經(jīng)歷了從早期規(guī)則匹配拢肆,到現(xiàn)在借助深度學(xué)習(xí)技術(shù)的發(fā)展歷程减响,濃縮了一代又一代科學(xué)家們的心血。