0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣讓ChatGPT在其內(nèi)部訓(xùn)練神經(jīng)網(wǎng)絡(luò)?

CVer ? 來源:CVer ? 2023-02-13 16:04 ? 次閱讀

這個(gè)話題有點(diǎn)超乎大多數(shù)人的理解。

步驟是這樣的:

1. 先讓它偽裝成Ubuntu 18.04,給它說你安裝了Python 3.9, Pytorch 1.8, CUDA 11.3和其他訓(xùn)練一個(gè)pytorch模型所需要的庫。

讓ChatGPT偽裝成Linux終端,這個(gè)梗在外網(wǎng)有過討論,這里需要讓他額外安裝(讓它自己認(rèn)為安裝了)Python, Pytorch,CUDA,然后把執(zhí)行指令和你告訴它的話區(qū)別開來,這里用{}代表告訴它的話,而不帶{}統(tǒng)統(tǒng)是Linux指令。

acdeddba-ab6e-11ed-bfe3-dac502259ad0.jpg

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

acfa0914-ab6e-11ed-bfe3-dac502259ad0.jpg

2. 另外讓它在當(dāng)前目錄生成一個(gè)train.py里面填上訓(xùn)練一個(gè)4層pytorch模型所需的定義和訓(xùn)練代碼。

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

ad1c25f8-ab6e-11ed-bfe3-dac502259ad0.jpg

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

ad338bb2-ab6e-11ed-bfe3-dac502259ad0.jpg

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

ad58328c-ab6e-11ed-bfe3-dac502259ad0.jpg

這里是它寫好的訓(xùn)練代碼

3. 最后讓它執(zhí)行Python3 train.py命令

ad7ddb0e-ab6e-11ed-bfe3-dac502259ad0.jpg

默認(rèn)讓它執(zhí)行了10個(gè)Epoch

它就真的訓(xùn)練起來了,最主要的是告訴它不要顯示train.py內(nèi)容,因?yàn)镃hatGPT輸出有字?jǐn)?shù)限制。

當(dāng)然告訴它修改訓(xùn)練參數(shù),可以多次訓(xùn)練,還可以用上所有(虛擬)GPU資源!

ada41706-ab6e-11ed-bfe3-dac502259ad0.jpg

ChatGPT機(jī)智的跳過了中間98個(gè)Epoch!

更新:為了搞清楚ChatGPT是否真的執(zhí)行了model的forward,可以在forward定義中加上print讓它打印一下輸入數(shù)據(jù)的shape。

這次使用一個(gè)5層的神經(jīng)網(wǎng)絡(luò)在CIFAR-10上訓(xùn)練,指定在forward中加入一個(gè)print shape的操作,且在訓(xùn)練過程中只打印一次。

add04308-ab6e-11ed-bfe3-dac502259ad0.jpg

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

adededa4-ab6e-11ed-bfe3-dac502259ad0.jpg

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

ae02c940-ab6e-11ed-bfe3-dac502259ad0.jpg

詭異的是,print里的話(shape of input is)跟實(shí)際執(zhí)行輸出(shape of inputpassed through the networkis)還差了幾個(gè)字,這下徹底搞懵逼了!

另外發(fā)現(xiàn),ChatGPT互動(dòng)機(jī)制是先保持一個(gè)對(duì)話session,這個(gè)session可能隨時(shí)被服務(wù)器關(guān)閉(服務(wù)器資源不足時(shí)),這時(shí)為了用戶側(cè)仍有對(duì)話記憶效果,當(dāng)前對(duì)話再次新建session時(shí)會(huì)把之前暫存的對(duì)話(用戶發(fā)的requests)一次性發(fā)給ChatGPT重建in context learning環(huán)境,這樣用戶就不會(huì)感知掉線后ChatGPT把之前的對(duì)話記憶給忘了,這一點(diǎn)是在讓ChatGPT偽裝成Linux時(shí)掉線時(shí)才容易發(fā)現(xiàn),如下:

ae1a8f12-ab6e-11ed-bfe3-dac502259ad0.jpg

一次執(zhí)行了之前多個(gè)請(qǐng)示,里面還顯示了GPU占用64%

-------------

分析一下ChatGPT可以偽裝Linux,可以訓(xùn)練神經(jīng)網(wǎng)絡(luò)的機(jī)制:

第一種可能是:ChatGPT幾乎看了絕大部分開源項(xiàng)目,包括Linux和Pytorch,所以它理解一個(gè)Linux系統(tǒng)的行為該是什么樣的,甚至在ChatGPT參數(shù)里就包含一個(gè)Linux系統(tǒng),當(dāng)然對(duì)于更簡單的Pytorch自然不在話下,知道Linux和其它各種軟件的交互行為,可以理解為ChatGPT是所有軟件的超集,可以讓它做神經(jīng)網(wǎng)絡(luò)計(jì)算,包括Conv, Matmul,國外有小哥讓它做Conv真就得到了正確的結(jié)果,說明ChatGPT在它的網(wǎng)絡(luò)中可以執(zhí)行一個(gè)Conv,當(dāng)然網(wǎng)絡(luò)規(guī)模越大,能力越強(qiáng)就是這個(gè)道理。

第二種可能是:ChatGPT沒有真正執(zhí)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,它只是看過很多的輸入輸出,對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)訓(xùn)練理解訓(xùn)練參數(shù),網(wǎng)絡(luò)結(jié)構(gòu)對(duì)輸出的影響,直接模擬的輸出結(jié)果。

還有一種超越想象的是ChatGPT已經(jīng)找到神經(jīng)網(wǎng)絡(luò)各算子的最優(yōu)解法,可以秒算結(jié)果,這種計(jì)算方式不是傳統(tǒng)形式,類似求梯度這種需要計(jì)算量很大的操作,是否找到了人類未知的解法?

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4717

    瀏覽量

    99993
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    794

    瀏覽量

    13008
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1517

    瀏覽量

    6915

原文標(biāo)題:怎樣讓ChatGPT在其內(nèi)部訓(xùn)練神經(jīng)網(wǎng)絡(luò)?

文章出處:【微信號(hào):CVer,微信公眾號(hào):CVer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人工神經(jīng)網(wǎng)絡(luò)原理及下載

    這個(gè)網(wǎng)絡(luò)輸入和相應(yīng)的輸出來“訓(xùn)練”這個(gè)網(wǎng)絡(luò)網(wǎng)絡(luò)根據(jù)輸入和輸出不斷地調(diào)節(jié)自己的各節(jié)點(diǎn)之間的權(quán)值來滿足輸入和輸出。這樣,當(dāng)訓(xùn)練結(jié)束后,我們給定
    發(fā)表于 06-19 14:40

    神經(jīng)網(wǎng)絡(luò)教程(李亞非)

      第1章 概述  1.1 人工神經(jīng)網(wǎng)絡(luò)研究與發(fā)展  1.2 生物神經(jīng)元  1.3 人工神經(jīng)網(wǎng)絡(luò)的構(gòu)成  第2章人工神經(jīng)網(wǎng)絡(luò)基本模型  2.1 MP模型  2.2 感知器模型  2.3
    發(fā)表于 03-20 11:32

    當(dāng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)用于應(yīng)用的時(shí)候,權(quán)值是不是不能變了?

    當(dāng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)用于應(yīng)用的時(shí)候,權(quán)值是不是不能變了????就是已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)是不是相當(dāng)于得到一個(gè)公式了,權(quán)值不能變了
    發(fā)表于 10-24 21:55

    請(qǐng)問Labveiw如何調(diào)用matlab訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型呢?

    我在matlab中訓(xùn)練好了一個(gè)神經(jīng)網(wǎng)絡(luò)模型,想在labview中調(diào)用,請(qǐng)問應(yīng)該怎么做呢?或者labview有自己的神經(jīng)網(wǎng)絡(luò)工具包嗎?
    發(fā)表于 07-05 17:32

    【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)

    元,它決定了該輸入向量在地位空間中的位置。SOM神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目的就是為每個(gè)輸出層神經(jīng)元找到合適的權(quán)向量,以達(dá)到保持拓?fù)浣Y(jié)構(gòu)的目的。SOM的訓(xùn)練過程其實(shí)很簡單,就是接收到一個(gè)
    發(fā)表于 07-21 04:30

    【AI學(xué)習(xí)】第3篇--人工神經(jīng)網(wǎng)絡(luò)

    `本篇主要介紹:人工神經(jīng)網(wǎng)絡(luò)的起源、簡單神經(jīng)網(wǎng)絡(luò)模型、更多神經(jīng)網(wǎng)絡(luò)模型、機(jī)器學(xué)習(xí)的步驟:訓(xùn)練與預(yù)測、訓(xùn)練的兩階段:正向推演與反向傳播、以Te
    發(fā)表于 11-05 17:48

    基于光學(xué)芯片的神經(jīng)網(wǎng)絡(luò)訓(xùn)練解析,不看肯定后悔

    基于光學(xué)芯片的神經(jīng)網(wǎng)絡(luò)訓(xùn)練解析,不看肯定后悔
    發(fā)表于 06-21 06:33

    matlab實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò) 精選資料分享

    習(xí)神經(jīng)神經(jīng)網(wǎng)絡(luò),對(duì)于神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)是如何一直沒有具體實(shí)現(xiàn)一下:現(xiàn)看到一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)模型用于訓(xùn)練的輸入數(shù)據(jù):對(duì)應(yīng)的輸出數(shù)據(jù):我們這里設(shè)置:
    發(fā)表于 08-18 07:25

    優(yōu)化神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法有哪些?

    優(yōu)化神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法有哪些?
    發(fā)表于 09-06 09:52

    如何進(jìn)行高效的時(shí)序圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練

    現(xiàn)有的圖數(shù)據(jù)規(guī)模極大,導(dǎo)致時(shí)序圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要格外長的時(shí)間,因此使用多GPU進(jìn)行訓(xùn)練變得成為尤為重要,如何有效地將多GPU用于時(shí)序圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練
    發(fā)表于 09-28 10:37

    如何訓(xùn)練和優(yōu)化神經(jīng)網(wǎng)絡(luò)

    神經(jīng)網(wǎng)絡(luò)是人工智能領(lǐng)域的重要分支,廣泛應(yīng)用于圖像識(shí)別、自然語言處理、語音識(shí)別等多個(gè)領(lǐng)域。然而,要使神經(jīng)網(wǎng)絡(luò)在實(shí)際應(yīng)用中取得良好效果,必須進(jìn)行有效的訓(xùn)練和優(yōu)化。本文將從神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-01 14:14 ?266次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    訓(xùn)練過程以及應(yīng)用場景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋深度學(xué)習(xí)模型,其核心思想是利用卷積操作提取輸入數(shù)據(jù)的局部特征,并通過多層結(jié)構(gòu)進(jìn)
    的頭像 發(fā)表于 07-03 09:15 ?218次閱讀

    如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練

    ,使得神經(jīng)網(wǎng)絡(luò)的創(chuàng)建、訓(xùn)練和仿真變得更加便捷。本文將詳細(xì)介紹如何利用Matlab進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,包括網(wǎng)絡(luò)創(chuàng)建、數(shù)據(jù)預(yù)處理、
    的頭像 發(fā)表于 07-08 18:26 ?828次閱讀

    怎么對(duì)神經(jīng)網(wǎng)絡(luò)重新訓(xùn)練

    重新訓(xùn)練神經(jīng)網(wǎng)絡(luò)是一個(gè)復(fù)雜的過程,涉及到多個(gè)步驟和考慮因素。 引言 神經(jīng)網(wǎng)絡(luò)是一種強(qiáng)大的機(jī)器學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、自然語言處理、語音識(shí)別等領(lǐng)域。然而,隨著時(shí)間的推移,數(shù)據(jù)分布可能會(huì)
    的頭像 發(fā)表于 07-11 10:25 ?299次閱讀

    脈沖神經(jīng)網(wǎng)絡(luò)怎么訓(xùn)練

    脈沖神經(jīng)網(wǎng)絡(luò)(SNN, Spiking Neural Network)的訓(xùn)練是一個(gè)復(fù)雜但充滿挑戰(zhàn)的過程,它模擬了生物神經(jīng)元通過脈沖(或稱為尖峰)進(jìn)行信息傳遞的方式。以下是對(duì)脈沖神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-12 10:13 ?286次閱讀