用ChatGPT秒建大模型!OpenAI全新插件殺瘋了,接入代碼解釋器一鍵get
?上周五,OpenAI剛剛宣布了驚爆的消息,ChatGPT可以聯(lián)網(wǎng),接入第三方插件了!
而除了第三方插件,OpenAI也介紹了一款自家的插件「代碼解釋器」,并給出了幾個(gè)特別的用例:解決定量和定性的數(shù)學(xué)問(wèn)題;進(jìn)行數(shù)據(jù)分析和可視化;快速轉(zhuǎn)換文件格式。
此外,Greg Brockman演示了ChatGPT還可以對(duì)上傳視頻文件進(jìn)行處理。
而一位叫Andrew Mayne的暢銷(xiāo)作家、OpenAI的創(chuàng)意應(yīng)用程序和科學(xué)傳播者,立馬就試了一把——把代碼解釋器(Code Inerpreter)接入ChatGPT。
感受就是,太絲滑了!
以前用ChatGPT寫(xiě)代碼時(shí),總是需要把代碼拿出來(lái),再放到另一個(gè)環(huán)境里去測(cè)試。
而現(xiàn)在,根本不需要離開(kāi)當(dāng)前的界面,直接就可以在ChatGPT中開(kāi)發(fā)了。
只要我們把這個(gè)代碼解釋器添加到數(shù)據(jù)分析、繪圖功能中,就誕生了一個(gè)強(qiáng)到發(fā)指的編碼和研究工具。
OpenAI全新插件系統(tǒng):代碼解釋器
目前,代碼解釋器只能在少量的庫(kù)上運(yùn)行Python,而即使用最基礎(chǔ)的庫(kù),它能做的東西也非常多,非常有趣。
另外,除了生成代碼,代碼解釋器(CI) 還可以分析輸出,并將其用于另一個(gè)函數(shù)。
因此,我們可以將不同的代碼串在一起,獲取其中一個(gè)的輸出,再提供給另一個(gè)。
這個(gè)吃豆人gif就是這么生成的:CI用算法生成迷宮,把迷宮變成方塊,用算法找到出口,做成吃豆人的樣子,然后生成gif。
以下是Mayne使用ChatGPT的代碼解釋器插件,進(jìn)行隨機(jī)實(shí)驗(yàn)的一些示例。
創(chuàng)建機(jī)器學(xué)習(xí)模型 (某種程度上)
雖然目前ChatGPT無(wú)法將任何機(jī)器學(xué)習(xí)庫(kù)加載到代碼解釋器中,但我們可以使用n-gram進(jìn)行一些基本的統(tǒng)計(jì)文本生成。
如下例子中,通過(guò)給它提供一本書(shū),要求它創(chuàng)建一個(gè)預(yù)測(cè)算法,然后預(yù)測(cè)文本序列中的下一個(gè)單詞。
GPT用n-gram模型生成了算法:
下一個(gè)單詞預(yù)測(cè)是一項(xiàng)自然語(yǔ)言處理任務(wù),可以使用語(yǔ)言模型來(lái)解決。建立語(yǔ)言模型的一種簡(jiǎn)單方法是使用n-gram模型。
n-gram模型是一種基于統(tǒng)計(jì)的語(yǔ)言模型,它根據(jù)前n-1個(gè)單詞來(lái)預(yù)測(cè)下一個(gè)單詞。例如,如果我們選擇n=3(即三元模型),則模型將基于前兩個(gè)單詞來(lái)預(yù)測(cè)下一個(gè)單詞。
以下是一些代碼,可以幫助您從頭開(kāi)始構(gòu)建三元模型。
聲音
因?yàn)镃hatGPT可以理解很多數(shù)學(xué)數(shù)據(jù),并且CI能夠生成可下載的文件,因此Mayne嘗試了下用ChatGPT生成Shepard音調(diào)。這是一種獨(dú)特的音調(diào),能夠個(gè)人造成一種音調(diào)在不斷變高的錯(cuò)覺(jué)。
ChatGPT不僅順利地完成了任務(wù),還直接用CI生成了一個(gè)wav文件。
打開(kāi)聽(tīng)一下這個(gè)Sheperd音,感受就是,兩個(gè)字——完美!
既然ChatGPT生成的Sheperd音這么完美,Mayne就更進(jìn)一步,讓ChatGPT來(lái)生成一個(gè)康威生命游戲的會(huì)話(huà),然后轉(zhuǎn)換為音樂(lè)。
(康威生命游戲是劍橋大學(xué)康威設(shè)計(jì)的計(jì)算機(jī)程序。這是一款圖靈完備的零玩家游戲,意味著它的演化取決于它的初始狀態(tài),不需要進(jìn)一步的輸入。)
第一遍的時(shí)候,ChatGPT生成的音樂(lè)有點(diǎn)太隨意,Mayne要求它生成更愉悅的音樂(lè),于是ChatGPT應(yīng)用了五聲音階,聽(tīng)起來(lái)果然不錯(cuò)。
game_of_life_pentatonic_slow音頻:?00:0000:14?
ChatGPT的表現(xiàn)太過(guò)優(yōu)異,Mayne大為興奮,他已經(jīng)開(kāi)始設(shè)想一整張數(shù)學(xué)音樂(lè)專(zhuān)輯了,比如(斐波那契數(shù)列、Mandelbrot 集、元胞自動(dòng)機(jī))。
隨后,他要求ChatGPT為《康威生命游戲》這首歌生成一個(gè)專(zhuān)輯封面。由于它沒(méi)有連接到DALL-E,Mayne要求它從模擬幀生成圖像。
專(zhuān)輯封面如下。
二維碼
而看著這張專(zhuān)輯封面,Mayne馬上意識(shí)到或許可以用ChatGPT生成一個(gè)有效的二維碼。
Mayne讓它為OpenAI的網(wǎng)站生成一個(gè)二維碼,結(jié)果如下:
那么,ChatGPT可以創(chuàng)建一個(gè)以二維碼結(jié)尾的康威生命游戲嗎?
是的,它可以。
圖片
另外,Mayen發(fā)現(xiàn),使用OpenCV和一個(gè)簡(jiǎn)單的面部識(shí)別算法(Haar Cascade 分類(lèi)器),CI就能夠創(chuàng)建一個(gè)函數(shù),來(lái)進(jìn)行人臉識(shí)別。
使用OpenCV進(jìn)行人臉識(shí)別
現(xiàn)在,ChatGPT可以自己打開(kāi)和讀取文件了,也就意味著理論上它可以使用這些數(shù)據(jù)生成新的東西。比如,把一張圖轉(zhuǎn)換為ASCII的形式。
上傳圖片:
轉(zhuǎn)為ASCII:
生成動(dòng)畫(huà)
通過(guò)代碼解釋器,可以生成數(shù)據(jù),并將其輸出包括gif在內(nèi)的不同格式。
首先,讓它做一個(gè)彈跳塊:
然后是暴風(fēng)雪:
接下來(lái)是「生命游戲」,正是這款游戲啟發(fā)了二維碼模擬實(shí)驗(yàn)。
試圖讓代碼解釋器使用矢量化的立方體來(lái)生成「旋轉(zhuǎn)的立方體」。在嘗試了其他方法之前,這是能夠得到最接近的結(jié)果:
OCR
研究稱(chēng),光學(xué)字符識(shí)別(OCR)是代碼解釋器中的一個(gè)庫(kù)。通過(guò)用網(wǎng)站截圖進(jìn)行測(cè)試,果然可以識(shí)別。
將OCR與一個(gè)功能強(qiáng)大的語(yǔ)言模型GPT-4結(jié)合起來(lái),可以為修復(fù)舊文檔提供了一些有趣的可能性。
上圖可以看出,OCR能從整張圖片中提取部分文本,但結(jié)果仍不完整,且?guī)в性肼暋?/span>
由此看來(lái),在處理低質(zhì)量或扭曲的圖片時(shí),OCR可能會(huì)有限制。如果你需要從圖片中獲取具體信息,同時(shí)也需要手動(dòng)轉(zhuǎn)錄部分內(nèi)容。
日歷邀請(qǐng)
盡管代碼解釋器沒(méi)有訪問(wèn)ics庫(kù)的權(quán)限,但它可以生成一個(gè)純文本的日歷邀請(qǐng),然后讓ChatGPT將其保存為.ics文件。
畫(huà)畫(huà)
盡管已經(jīng)有一些GPT-4生成可縮放矢量圖像(SVG)的有趣例子。但我還是很好奇 ChatGPT 和代碼解釋器能對(duì)簡(jiǎn)單的圖像塊做些什么。
我讓它畫(huà)了一只貓,它創(chuàng)作了類(lèi)似貓的東西。為了確保它不是憑記憶做出的,我要求它畫(huà)一個(gè)藍(lán)色的高頂帽和煙斗。雖然不完全是我想象中的高頂帽,但仍然是一個(gè)帽子,是藍(lán)色的。
一只戴著帽子、抽著煙斗的貓:
一只戴著「帽子里的貓」式樣帽子,還有抽著煙斗的貓:
模擬器
通過(guò)使用Matplotlib庫(kù),我成功地讓ChatGPT生成了內(nèi)部行星軌道的模擬,并將其保存為gif。
我接著思考能否讓ChatGPT模擬一局跳棋,并設(shè)法移動(dòng)了棋子,但是出于禮貌沒(méi)有拿走對(duì)手的棋子。
能否模擬一局象棋?首先我讓ChatGPT創(chuàng)建自己的棋盤(pán)庫(kù)(一個(gè)非常簡(jiǎn)單的棋盤(pán)庫(kù),有一些限制和不太合法的移動(dòng)……),然后使用Unicode表示棋子,之后,它可以模擬一場(chǎng)游戲的開(kāi)始,并將其保存為.gif文件。
下面是我和ChatGPT進(jìn)行象棋模擬時(shí)的對(duì)話(huà)??梢钥吹?,我只是給了一些指示,ChatGPT和代碼解釋器做了剩下的工作。
如上是Andrew Mayne對(duì)ChatGPT和代碼解釋器插件的一些探索。
網(wǎng)友看后點(diǎn)評(píng),LLMs越來(lái)越像一位真正的程序員,不僅可以建議代碼片段,還可以編寫(xiě)整塊代碼、運(yùn)行代碼,并給你輸出進(jìn)一步的指導(dǎo)和反饋。
還有人表示,即使停下手下的事,也要看看這篇關(guān)于GPT-4代碼解釋器插件用例的文章。這完全是瘋狂的,并將改變一切。
參考資料:
??https://andrewmayneblog.wordpress.com/2023/03/23/chatgpt-code-interpreter-magic/??