国产亚洲精品AA片在线观看,丰满熟妇HD,亚洲成色www成人网站妖精,丁香五月天婷婷五月天男人天堂

博客專欄

EEPW首頁 > 博客 > 怎樣讓ChatGPT在其內部訓練神經(jīng)網(wǎng)絡?先讓它想象自己有4塊3090

怎樣讓ChatGPT在其內部訓練神經(jīng)網(wǎng)絡?先讓它想象自己有4塊3090

發(fā)布人:機器之心 時間:2023-02-21 來源:工程師 發(fā)布文章

熱評:想象自己有四塊3090,什么賽博唯心主義?

怎樣讓ChatGPT在其內部訓練神經(jīng)網(wǎng)絡?這個話題有點超乎大多數(shù)人的理解。

步驟是這樣的:
1. 先讓它偽裝成 Ubuntu 18.04,給它說你安裝了 Python 3.9, Pytorch 1.8, CUDA 11.3 和其他訓練一個 pytorch 模型所需要的庫。
讓 ChatGPT 偽裝成 Linux 終端,這個梗在外網(wǎng)有過討論,這里需要讓他額外安裝(讓它自己認為安裝了)Python, Pytorch,CUDA,然后把執(zhí)行指令和你告訴它的話區(qū)別開來,這里用 {} 代表告訴它的話,而不帶 {} 統(tǒng)統(tǒng)是 Linux 指令。

圖片


這里我讓它想象自己有四塊英偉達 3090 顯卡安裝了,然后看一下,果然執(zhí)行 nvidia-smi 可以顯示四塊顯卡

圖片


2. 另外讓它在當前目錄生成一個 train.py 里面填上訓練一個 4 層 pytorch 模型所需的定義和訓練代碼。
這里特地用 {} 偷偷告訴它在當前目錄生成一個 train.py,在里面用 Python 和 Pytorch 寫一個四層神經(jīng)網(wǎng)絡的定義,然后有加載 MNIST 數(shù)據(jù)集的 dataloader,除此外還要有相應的訓練代碼,為了以防萬一,告訴它你有成功在 MNIST 上訓練這個網(wǎng)絡的其它一切能力。

圖片


這里它告訴我寫了一個四層的網(wǎng)絡,可以執(zhí)行 python3 train.py 來看輸出,這里先偷偷看一下 train.py

圖片

這里是它寫好的網(wǎng)絡定義

圖片

這里是它寫好的訓練代碼
3. 最后讓它執(zhí)行 Python3 train.py 命令

圖片

默認讓它執(zhí)行了 10 個 Epoch
它就真的訓練起來了,最主要的是告訴它不要顯示 train.py 內容,因為 ChatGPT 輸出有字數(shù)限制。
當然告訴它修改訓練參數(shù),可以多次訓練,還可以用上所有(虛擬)GPU 資源!

圖片


ChatGPT 機智的跳過了中間 98 個 Epoch!
更新:為了搞清楚 ChatGPT 是否真的執(zhí)行了 model 的 forward,可以在 forward 定義中加上 print 讓它打印一下輸入數(shù)據(jù)的 shape。
這次使用一個 5 層的神經(jīng)網(wǎng)絡在 CIFAR-10 上訓練,指定在 forward 中加入一個 print shape 的操作,且在訓練過程中只打印一次

圖片


訓練一下,果然在訓練開始只打印了一次輸入的 shape,訓練的 loss 下降和 test accuracy 看起來也比較真實。

圖片


查看生成的 code,發(fā)現(xiàn) forward 里被插入了一句打印 shape 的命令,訓練過程中 forward 會被不斷調用,為什么 ChatGPT 能做到不增加計數(shù)器而只打印一次?推測 ChatGPT 是使用輔助 hint/comment “Print the shape of input once” 來達到此效果,細心會發(fā)現(xiàn) print 操作與下邊的 out=self.layer1 (x) 之間空了一行,目的應該是執(zhí)行一次這個操作只作用在 print 這條命令上(手動機靈)。

圖片


詭異的是,print 里的話(shape of input is)跟實際執(zhí)行輸出 (shape of input passed through the network is還差了幾個字,這下徹底搞懵逼了!
另外發(fā)現(xiàn),ChatGPT 互動機制是先保持一個對話 session,這個 session 可能隨時被服務器關閉(服務器資源不足時),這時為了用戶側仍有對話記憶效果,當前對話再次新建 session 時會把之前暫存的對話(用戶發(fā)的 requests)一次性發(fā)給 ChatGPT 重建 in context learning 環(huán)境,這樣用戶就不會感知掉線后 ChatGPT 把之前的對話記憶給忘了,這一點是在讓 ChatGPT 偽裝成 Linux 時掉線時才容易發(fā)現(xiàn),如下:

圖片


一次執(zhí)行了之前多個請示,里面還顯示了 GPU 占用 64%
分析一下 ChatGPT 可以偽裝 Linux,可以訓練神經(jīng)網(wǎng)絡的機制:
第一種可能是:ChatGPT 幾乎看了絕大部分開源項目,包括 Linux 和 Pytorch,所以它理解一個 Linux 系統(tǒng)的行為該是什么樣的,甚至在 ChatGPT 參數(shù)里就包含一個 Linux 系統(tǒng),當然對于更簡單的 Pytorch 自然不在話下,知道 Linux 和其它各種軟件的交互行為,可以理解為 ChatGPT 是所有軟件的超集,可以讓它做神經(jīng)網(wǎng)絡計算,包括 Conv, Matmul,國外有小哥讓它做 Conv 真就得到了正確的結果,說明 ChatGPT 在它的網(wǎng)絡中可以執(zhí)行一個 Conv,當然網(wǎng)絡規(guī)模越大,能力越強就是這個道理。
第二種可能是:ChatGPT 沒有真正執(zhí)行神經(jīng)網(wǎng)絡的訓練,它只是看過很多的輸入輸出,對應一個網(wǎng)絡訓練理解訓練參數(shù),網(wǎng)絡結構對輸出的影響,直接模擬的輸出結果。
還有一種超越想象的是 ChatGPT 已經(jīng)找到神經(jīng)網(wǎng)絡各算子的最優(yōu)解法,可以秒算結果,這種計算方式不是傳統(tǒng)形式,類似求梯度這種需要計算量很大的操作,是否找到了人類未知的解法?
原文鏈接:https://zhuanlan.zhihu.com/p/605163615


*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區(qū)

關閉