成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解放程序員雙手!GPT-3自動生成SQL語句 | 代碼開源

新聞 前端
“無所不能”的GPT-3,現在又來解放程序員們的雙手了。

[[379066]]

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

 “無所不能”的GPT-3,現在又來解放程序員們的雙手了。

像這樣,只需用簡單的英文問下GPT-3“上個月注冊了多少個用戶”。

GPT-3便會迅速作答,給出對應的SQL語句

SELECT COUNT(*) FROM users
WHERE signup_time > now() - interval ‘1 month’

解放程序員雙手!GPT-3自動生成SQL語句 | 代碼開源

更神奇的是,GPT-3是在不知道“數據庫模式”的情況下,默認存在“users”這個表;以及在用戶注冊過程中,存在“signup_time”這樣的字段。

相當的智能了!

就連開發者本人都連連驚嘆道:妙啊

更復雜的SQL語句,GPT-3 hold得住嗎?

當然,剛才提到的提到的例子,只是非常簡單的提問。

那當GPT-3面對更加復雜的SQL查詢時,還能如此智能嗎?

為此,作者給它“投喂”了更多的上下文,以及與“數據庫模式”相關的信息:

輸入一個問題,GPT-3需要回答正確的PostgreSQL

數據庫包含2個表,分別是“users”和“charges”。

“users”表包含的字段有:id (integer), signup_dt (timestamp), email (character varying)和 plan_type (character varying)。

“charges”表包含的字段有:amount (bigint), user_id (integer), 以及charge_dt (timestamp)。

OK,信息“投喂”完畢,現在來看下GPT-3的表現。

輸入

how much revenue did we have in the past 7 days?

GPT-3

SELECT SUM(amount) FROM charges WHERE chargedt > now() - interval ‘7 days’

解放程序員雙手!GPT-3自動生成SQL語句 | 代碼開源

不難看出,GPT-3正確地推斷出了”amount” = “revenue”,并且知道為了回答問題,要用SUM()來匯總過去7天的費用。

看來GPT-3已經掌握了基本的SQL語法

但作者也表示,GPT-3有的時候喜歡自己“發明”一些字段,所以現在就用“例子引發”的方式,讓它變得更加智能。

先讓GPT-3做些簡單的例子實驗,例如讓它從“users”和“charges”2個表中,提取所有可用的字段。

基于這樣的引導之后,再向GPT-3提問:

what was the largest payment amount made in the past 30 days?

GPT-3回答道:

SELECT MAX(amount) FROM charges WHERE charge_dt > NOW() - INTERVAL ‘30 days’

這個小實驗的結果看著還是挺不錯的,但當作者加大難度后,問題還是出現了

作者提出了更加復雜的問題:

when did user with email brian@seekwell.io make his last payment?

這次GPT-3的回答是:

SELECT MAX(charge_dt) FROM charges WHERE user_id = 1 AND email = ‘brian@seekwell.io’

很明顯,在“charges”表中,并沒有“email”這樣的字段,而是存在于“users”表中。

也就是說,對于SQL經常用到的聯合查詢,GPT-3還沒有get到。

讓GPT-3一步步學會“聯合查詢”

于是,作者還是通過“例子”的方式,一步一步讓它“學”會聯合查詢。

輸入:how many users signed up in the past 30 days?

GPT-3:

SELECT COUNT(*) FROM users WHERE signup_dt >= now() - interval ‘30 days’

輸入:when did user with email brian@seekwell.io sign up?

GPT-3:

SELECT signup_dt FROM users WHERE email = ‘brian@seekwell.io’

輸入:how much revenue did we have in the past 7 days?

GPT-3:

SELECT SUM(amount) from charges WHERE charge_dt >= now() - interval ‘7 days’

輸入:how much revenue did we have from 10-01-20 through 11-15-20?

GPT-3:

SELECT SUM(case when charge_dt>= ‘10-01-20’::date and charge_dt < ‘11-15-20’::date then amount else 0 end) as revenue
FROM charges

輸入:how much revenue have we had from users that signed up in the last 6 months?

GPT-3:

SELECT SUM(charges.amount) FROM users INNER JOIN
charges ON users.id = charges.user_id
WHERE users.signup_dt>= now() - interval ‘6 months’

輸入:when did user with email brian@seekwell.io make his first payment?

GPT-3:

SELECT MIN(charge_dt) as last_payment_dt from users INNER JOIN
charges ON users.id = charges.user_id
WHERE users.email = ‘brian@seekwell.io’

輸入:how many new users signed up in each of the last 2 months?

GPT-3:

SELECT sum(case when signup_dt>= now() - interval ‘1 month’ then 1 else 0 end) as signups_this_month,
sum(case when signup_dt>= now() - interval ‘2 months’ and signup_dt < now() - interval ‘1 month’ then 1 else 0 end) as signups_last_month
FROM users

在經過這樣一番“學習”之后,回過頭來,再去問GPT-3剛剛出錯的問題:

how many payments has user with email joe@freshpizza.com made?

這次它的回答是:

SELECT COUNT(*) FROM users INNER JOIN charges ON users.id = charges.user_id WHERE users.email = ‘joe@freshpizza.com’

瞧瞧!GPT-3學會“內聯”了,很酷有木有!

當然,除了用“例子”的方式讓GPT-3變得更加聰明外,作者表示還可以通過調參的方式。

同時作者還強調了一點,他發現,起碼在“讓GPT-3寫SQL語句”這件事上,GPT-3 Instruct 要比泛化(generalized)的GPT-3引擎好用得多。

為什么要搞這個項目?

這個項目的作者是一位分析師,目前就職于一家叫做SeekWell的公司。

他每天日常的工作,就是編寫大量的SQL語句,來回答與業務相關的問題。

解放程序員雙手!GPT-3自動生成SQL語句 | 代碼開源

這就讓他萌生了“自動化”的想法。

與此同時,他也注意網友們用大火的GPT-3,做了各種各樣有創意的項目。

例如自動生成HTML、CSS代碼等等,于是他便操刀開始訓練GPT-3生成SQL語句。

當然,效果也是讓他震驚不已,在博客中也是連連發出“Cool”的聲音。

……

最后,作者將這個項目的代碼在GitHub中開源了,感興趣的讀者可戳下方鏈接。

參考鏈接:
https://blog.seekwell.io/gpt3

GitHub項目地址:
https://github.com/bkane1/gpt3-instruct-sandbox

 

 

責任編輯:張燕妮 來源: 量子位
相關推薦

2021-05-27 09:00:00

程序員技能微軟

2021-07-19 10:56:36

GPE-3OpenAI微軟

2017-04-20 10:51:11

互聯網

2021-03-23 15:21:00

人工智能機器學習技術

2015-08-25 15:54:17

程序員代碼生成器

2021-05-19 14:45:07

電腦軟件工具

2023-04-07 09:53:02

量子AI

2023-03-01 16:15:16

2021-10-09 10:10:23

代碼程序員AI

2023-06-08 11:41:40

芯片AI

2023-02-14 08:00:00

人工智能GPT-3語言模型

2021-01-19 16:34:30

開源技術 GPT-3

2022-12-05 12:50:44

AIGPT-3程序員

2025-06-17 09:11:59

2012-10-12 10:05:29

程序員SQL數據庫

2013-06-28 13:28:09

2024-03-11 10:07:58

2023-06-08 15:33:31

人工智能GPT-3

2021-09-02 07:04:44

Go 開發利器

2021-05-18 07:17:37

Java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中国大陆高清aⅴ毛片 | 欧美日韩一区在线观看 | 欧美一区二区三区在线观看 | 久久综合久色欧美综合狠狠 | 91亚洲国产成人精品一区二三 | 亚洲a网 | 在线中文字幕国产 | 国产成人精品一区二 | 国产精品美女一区二区 | 久久伊人操 | 国产一区二区三区在线 | 日韩中文字幕一区 | 91av在线视频观看 | 欧美午夜精品久久久久免费视 | 免费精品 | 91精品国产一区二区三区 | 日韩视频精品在线 | 久久久精品影院 | 91美女在线观看 | 欧美日韩最新 | 国产精品久久久久久久久久久久冷 | 免费亚洲网站 | 精品视频一区二区三区在线观看 | 久久com| 日日摸夜夜爽人人添av | 久久国产精品一区二区三区 | 日韩黄色小视频 | 久久国产精品免费 | 欧美寡妇偷汉性猛交 | 精品不卡 | 欧美视频免费在线观看 | 国产欧美视频一区二区 | 日本电影免费完整观看 | 91综合在线视频 | 二区av| 欧美精品一区三区 | 久久毛片 | 激情视频中文字幕 | 欧美成人猛片aaaaaaa | 一区在线视频 | 国产激情视频在线 |