偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

無需GPT-3!國外小哥徒手開發(fā)Text2Code,數(shù)據(jù)分析代碼一鍵生成

新聞 前端
近日,兩個外國小哥Kartik Godawat 和 Deepak Rawat 開發(fā)了一個 Jupyter 插件Text2Code,可以將自然語言查詢轉(zhuǎn)換成相關(guān)的 Python 數(shù)據(jù)分析代碼。

 近日,兩個外國小哥Kartik Godawat 和 Deepak Rawat 開發(fā)了一個 Jupyter 插件Text2Code,可以將自然語言查詢轉(zhuǎn)換成相關(guān)的 Python 數(shù)據(jù)分析代碼。

如果能創(chuàng)建一個桌面軟件,將自然語言直接轉(zhuǎn)換成相關(guān)的 Python 數(shù)據(jù)分析代碼,工作就方便了。

這不,有倆「好事」的程序員耐不住寂寞,把這個工具做出來。

 

 

靈感來自GPT-3,自然語言直接轉(zhuǎn)代碼

2020年6月,OpenAI 推出了GPT-3,它不僅具有未來的 NLP 相關(guān)的諸多功能,而且還能夠生成 React 代碼和shell命令。

倆人從中得到了靈感,他們意識到在做數(shù)據(jù)分析的時候,我們經(jīng)常忘記不經(jīng)常使用的 pandas 命令或者語法,需要去搜索,從 StackOverflow 復(fù)制代碼然后需要相應(yīng)地修改變量和列名。

最初他們試圖把這個問題作為一個聊天機器人來解決,并試圖使用Rasa,但因為缺乏合適的訓(xùn)練數(shù)據(jù)而夭折了。

他們決定開發(fā)一個監(jiān)督學(xué)習(xí)模型,該模型可以吃進自然語言和代碼的對應(yīng)語料,然后進行訓(xùn)練,完整的pipeline包含了下面幾個步驟:

生成訓(xùn)練數(shù)據(jù)

為了模擬終端的用戶想向系統(tǒng)查詢的內(nèi)容,我們開始嘗試用英語描述一些命令的格式。

例如:

display a line plot showing $colname on y-axis and $colname on x-axis from $varname

然后,我們通過使用一個非常簡單的生成器來替換 $colname 和 $varname 來生成數(shù)據(jù),以獲得訓(xùn)練集中的變量。

意圖匹配

在生成數(shù)據(jù)之后,需要為特定的意圖映射到一個唯一的「意圖id」,并使用通用語句編碼器獲取用戶query的embedding,然后用我們預(yù)先定義好的意圖query(生成的數(shù)據(jù))來得到余弦距離。

「通用句子編碼器」-Universal Sentence Encoder類似于 word2vec,會生成相應(yīng)的embedding,唯一的區(qū)別是這里的嵌入是用于句子而不是單詞。

命名實體識別

相同的生成數(shù)據(jù)可以被用來訓(xùn)練一個自定義的實體識別模型,這個模型可以用來檢測columns,varaibles,library的名字。

為此,作者還研究了 HuggingFace 模型,但最終決定使用 Spacy 來訓(xùn)練模型,主要是因為 HuggingFace 模型是基于Transformer的模型,與 Spacy 相比有點過于復(fù)雜繁重。

填充模板

一旦實體被正確識別并且意圖被正確匹配,填充模板就變得非常容易。

例如,“ show 5 rows from df”這個查詢將生成兩個實體: 一個變量和一個數(shù)值。這個模板代碼編寫起來很簡單。

與Jupyter結(jié)合

這是所有步驟里最復(fù)雜的一步,因為為 Jupyter 編寫如此復(fù)雜的擴展有點棘手,而且?guī)缀鯖]有文檔或示例參考。

他們通過一些嘗試并參考已經(jīng)存在的擴展,最終將所有內(nèi)容包裝成一個單獨的 Python 包,并且可以直接通過 pip 來安裝。

單單一個Python包并不能直接使用,于是他們創(chuàng)建了一個前端以及一個服務(wù)器擴展,當 jupyter notebook啟動時,就會被加載。前端向服務(wù)器發(fā)送查詢以獲取生成的模板代碼,然后將其插入notebook的對應(yīng)單元并執(zhí)行它。

Text2Code的演示

模型也會失效,但數(shù)據(jù)分析師真的省事了

就像許多機器學(xué)習(xí)模型一樣,有時候意圖匹配和命名實體識別效果會很差,即使這個意圖對人來說非常簡單。

 

有時也會識別不到意圖,就無法生成正確的代碼,作者還考慮使用下面的方法來進一步改進插件的效果。

 

收集/生成高質(zhì)量的英語訓(xùn)練數(shù)據(jù),可以考慮從quroa,StackOverflow爬取更多的高贊回答,嘗試用不同的方式來描述相同的內(nèi)容,增強數(shù)據(jù);收集真實世界的變量名和庫名,而不是隨機生成,使用基于Transformer的模型嘗試命名實體識別。

 

如果這個模型訓(xùn)練的足夠好,對數(shù)據(jù)分析師來,能省不少事了。

項目開源地址:

https://github.com/deepklarity/jupyter-text2code

 

責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2022-03-14 09:33:56

神經(jīng)網(wǎng)絡(luò)模型人工智能

2020-10-10 14:57:16

代碼開發(fā)工具

2021-01-28 15:16:09

程序員技能開發(fā)者

2024-07-15 12:27:08

2023-04-12 16:23:00

GPT-4代碼

2023-04-07 09:53:02

量子AI

2021-07-19 10:56:36

GPE-3OpenAI微軟

2023-03-01 16:15:16

2023-07-10 17:01:30

AI 模型人工智能

2024-06-21 10:27:21

Service生成工具鴻蒙

2023-02-14 08:00:00

人工智能GPT-3語言模型

2023-06-01 15:30:30

Service代碼生成工具

2021-03-23 15:21:00

人工智能機器學(xué)習(xí)技術(shù)

2023-10-15 12:57:38

數(shù)據(jù)訓(xùn)練

2023-06-08 15:33:31

人工智能GPT-3

2021-10-14 08:40:58

前端技術(shù)數(shù)據(jù)可視化

2024-06-21 10:07:06

鴻蒙service生成工具

2021-07-25 20:14:29

AI 數(shù)據(jù)人工智能

2021-02-25 15:43:43

AI 數(shù)據(jù)人工智能

2020-09-23 18:04:41

微軟開發(fā)代碼
點贊
收藏

51CTO技術(shù)棧公眾號