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