用ChatGPT秒建大模型!OpenAI全新插件殺瘋了,接入代碼解釋器一鍵get
?上周五,OpenAI剛剛宣布了驚爆的消息,ChatGPT可以聯(lián)網(wǎng),接入第三方插件了!
而除了第三方插件,OpenAI也介紹了一款自家的插件「代碼解釋器」,并給出了幾個特別的用例:解決定量和定性的數(shù)學(xué)問題;進(jìn)行數(shù)據(jù)分析和可視化;快速轉(zhuǎn)換文件格式。
此外,Greg Brockman演示了ChatGPT還可以對上傳視頻文件進(jìn)行處理。

而一位叫Andrew Mayne的暢銷作家、OpenAI的創(chuàng)意應(yīng)用程序和科學(xué)傳播者,立馬就試了一把——把代碼解釋器(Code Inerpreter)接入ChatGPT。

感受就是,太絲滑了!
以前用ChatGPT寫代碼時,總是需要把代碼拿出來,再放到另一個環(huán)境里去測試。
而現(xiàn)在,根本不需要離開當(dāng)前的界面,直接就可以在ChatGPT中開發(fā)了。
只要我們把這個代碼解釋器添加到數(shù)據(jù)分析、繪圖功能中,就誕生了一個強(qiáng)到發(fā)指的編碼和研究工具。
OpenAI全新插件系統(tǒng):代碼解釋器
目前,代碼解釋器只能在少量的庫上運行Python,而即使用最基礎(chǔ)的庫,它能做的東西也非常多,非常有趣。

另外,除了生成代碼,代碼解釋器(CI) 還可以分析輸出,并將其用于另一個函數(shù)。
因此,我們可以將不同的代碼串在一起,獲取其中一個的輸出,再提供給另一個。
這個吃豆人gif就是這么生成的:CI用算法生成迷宮,把迷宮變成方塊,用算法找到出口,做成吃豆人的樣子,然后生成gif。

以下是Mayne使用ChatGPT的代碼解釋器插件,進(jìn)行隨機(jī)實驗的一些示例。
創(chuàng)建機(jī)器學(xué)習(xí)模型 (某種程度上)
雖然目前ChatGPT無法將任何機(jī)器學(xué)習(xí)庫加載到代碼解釋器中,但我們可以使用n-gram進(jìn)行一些基本的統(tǒng)計文本生成。
如下例子中,通過給它提供一本書,要求它創(chuàng)建一個預(yù)測算法,然后預(yù)測文本序列中的下一個單詞。
GPT用n-gram模型生成了算法:
下一個單詞預(yù)測是一項自然語言處理任務(wù),可以使用語言模型來解決。建立語言模型的一種簡單方法是使用n-gram模型。
n-gram模型是一種基于統(tǒng)計的語言模型,它根據(jù)前n-1個單詞來預(yù)測下一個單詞。例如,如果我們選擇n=3(即三元模型),則模型將基于前兩個單詞來預(yù)測下一個單詞。
以下是一些代碼,可以幫助您從頭開始構(gòu)建三元模型。


聲音
因為ChatGPT可以理解很多數(shù)學(xué)數(shù)據(jù),并且CI能夠生成可下載的文件,因此Mayne嘗試了下用ChatGPT生成Shepard音調(diào)。這是一種獨特的音調(diào),能夠個人造成一種音調(diào)在不斷變高的錯覺。
ChatGPT不僅順利地完成了任務(wù),還直接用CI生成了一個wav文件。

打開聽一下這個Sheperd音,感受就是,兩個字——完美!
既然ChatGPT生成的Sheperd音這么完美,Mayne就更進(jìn)一步,讓ChatGPT來生成一個康威生命游戲的會話,然后轉(zhuǎn)換為音樂。
(康威生命游戲是劍橋大學(xué)康威設(shè)計的計算機(jī)程序。這是一款圖靈完備的零玩家游戲,意味著它的演化取決于它的初始狀態(tài),不需要進(jìn)一步的輸入。)
第一遍的時候,ChatGPT生成的音樂有點太隨意,Mayne要求它生成更愉悅的音樂,于是ChatGPT應(yīng)用了五聲音階,聽起來果然不錯。
game_of_life_pentatonic_slow音頻:?00:0000:14?
ChatGPT的表現(xiàn)太過優(yōu)異,Mayne大為興奮,他已經(jīng)開始設(shè)想一整張數(shù)學(xué)音樂專輯了,比如(斐波那契數(shù)列、Mandelbrot 集、元胞自動機(jī))。
隨后,他要求ChatGPT為《康威生命游戲》這首歌生成一個專輯封面。由于它沒有連接到DALL-E,Mayne要求它從模擬幀生成圖像。
專輯封面如下。

二維碼
而看著這張專輯封面,Mayne馬上意識到或許可以用ChatGPT生成一個有效的二維碼。


Mayne讓它為OpenAI的網(wǎng)站生成一個二維碼,結(jié)果如下:
那么,ChatGPT可以創(chuàng)建一個以二維碼結(jié)尾的康威生命游戲嗎?
是的,它可以。

圖片
另外,Mayen發(fā)現(xiàn),使用OpenCV和一個簡單的面部識別算法(Haar Cascade 分類器),CI就能夠創(chuàng)建一個函數(shù),來進(jìn)行人臉識別。

使用OpenCV進(jìn)行人臉識別
現(xiàn)在,ChatGPT可以自己打開和讀取文件了,也就意味著理論上它可以使用這些數(shù)據(jù)生成新的東西。比如,把一張圖轉(zhuǎn)換為ASCII的形式。
上傳圖片:

轉(zhuǎn)為ASCII:

生成動畫
通過代碼解釋器,可以生成數(shù)據(jù),并將其輸出包括gif在內(nèi)的不同格式。
首先,讓它做一個彈跳塊:

然后是暴風(fēng)雪:

接下來是「生命游戲」,正是這款游戲啟發(fā)了二維碼模擬實驗。

試圖讓代碼解釋器使用矢量化的立方體來生成「旋轉(zhuǎn)的立方體」。在嘗試了其他方法之前,這是能夠得到最接近的結(jié)果:

OCR
研究稱,光學(xué)字符識別(OCR)是代碼解釋器中的一個庫。通過用網(wǎng)站截圖進(jìn)行測試,果然可以識別。
將OCR與一個功能強(qiáng)大的語言模型GPT-4結(jié)合起來,可以為修復(fù)舊文檔提供了一些有趣的可能性。

上圖可以看出,OCR能從整張圖片中提取部分文本,但結(jié)果仍不完整,且?guī)в性肼暋?/span>
由此看來,在處理低質(zhì)量或扭曲的圖片時,OCR可能會有限制。如果你需要從圖片中獲取具體信息,同時也需要手動轉(zhuǎn)錄部分內(nèi)容。

日歷邀請
盡管代碼解釋器沒有訪問ics庫的權(quán)限,但它可以生成一個純文本的日歷邀請,然后讓ChatGPT將其保存為.ics文件。

畫畫
盡管已經(jīng)有一些GPT-4生成可縮放矢量圖像(SVG)的有趣例子。但我還是很好奇 ChatGPT 和代碼解釋器能對簡單的圖像塊做些什么。
我讓它畫了一只貓,它創(chuàng)作了類似貓的東西。為了確保它不是憑記憶做出的,我要求它畫一個藍(lán)色的高頂帽和煙斗。雖然不完全是我想象中的高頂帽,但仍然是一個帽子,是藍(lán)色的。

一只戴著帽子、抽著煙斗的貓:

一只戴著「帽子里的貓」式樣帽子,還有抽著煙斗的貓:

模擬器
通過使用Matplotlib庫,我成功地讓ChatGPT生成了內(nèi)部行星軌道的模擬,并將其保存為gif。

我接著思考能否讓ChatGPT模擬一局跳棋,并設(shè)法移動了棋子,但是出于禮貌沒有拿走對手的棋子。

能否模擬一局象棋?首先我讓ChatGPT創(chuàng)建自己的棋盤庫(一個非常簡單的棋盤庫,有一些限制和不太合法的移動……),然后使用Unicode表示棋子,之后,它可以模擬一場游戲的開始,并將其保存為.gif文件。

下面是我和ChatGPT進(jìn)行象棋模擬時的對話??梢钥吹?,我只是給了一些指示,ChatGPT和代碼解釋器做了剩下的工作。

如上是Andrew Mayne對ChatGPT和代碼解釋器插件的一些探索。
網(wǎng)友看后點評,LLMs越來越像一位真正的程序員,不僅可以建議代碼片段,還可以編寫整塊代碼、運行代碼,并給你輸出進(jìn)一步的指導(dǎo)和反饋。

還有人表示,即使停下手下的事,也要看看這篇關(guān)于GPT-4代碼解釋器插件用例的文章。這完全是瘋狂的,并將改變一切。

參考資料:
??https://andrewmayneblog.wordpress.com/2023/03/23/chatgpt-code-interpreter-magic/??















 
 
 
















 
 
 
 