<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          特斯拉AI總監(jiān)用300行代碼實(shí)現(xiàn)“迷你版GPT”,上線GitHub三天收獲3.3k星

          共 2657字,需瀏覽 6分鐘

           ·

          2020-08-23 02:10

          曉查 發(fā)自 凹非寺?
          量子位 報(bào)道 | 公眾號(hào) QbitAI

          “GPT并不是一個(gè)復(fù)雜的模型。”

          前OpenAI科學(xué)家、現(xiàn)任特斯拉AI總監(jiān)的Andrej Karpathy在自己的GitHub項(xiàng)目里這樣寫道。

          Karpathy這樣說(shuō)是有底氣的,因?yàn)樗约褐挥么蠹s300行PyTorch代碼就實(shí)現(xiàn)了一個(gè)“小型GPT”——minGPT。該項(xiàng)目上線3天以來(lái),已經(jīng)收獲了3.3k星。

          “萬(wàn)能”的NLP模型GPT-3這一個(gè)月來(lái)已經(jīng)刷爆社交網(wǎng)絡(luò),不過1750億個(gè)參數(shù)對(duì)算力的超高要求也讓人望而卻步。

          但是在Karpathy看來(lái),GPT所做的事情就是將一個(gè)索引序列放入一個(gè)transformer塊序列中,并得出下一個(gè)索引的概率分布。其余的復(fù)雜部分只是通過巧妙地進(jìn)行批處理讓訓(xùn)練更高效。

          談到為何要開發(fā)minGPT,Karpathy本人在項(xiàng)目文檔里說(shuō),他是為了讓GPT做到小巧、簡(jiǎn)潔、可解釋且具有教育意義,因?yàn)楫?dāng)前大多數(shù)可用的GPT工具都有些龐大。

          如果原版的GPT是一艘巨型戰(zhàn)艦,那么minGPT就是一艘快艇。小快靈是minGPT的特點(diǎn),你不能指望它去“打仗”。minGPT的作用是教育目的,讓你熟悉GPT的原理。

          現(xiàn)在,minGPT已經(jīng)能夠進(jìn)行加法運(yùn)算和字符級(jí)的語(yǔ)言建模,更強(qiáng)大的功能還在進(jìn)一步開發(fā)中。

          minGPT項(xiàng)目?jī)?nèi)容

          minGPT實(shí)現(xiàn)大約包含300行代碼,包括樣板代碼和完全不必要的自定義因果自注意力模塊。

          minGPT的核心庫(kù)包含兩個(gè)重要的文件:

          • mingpt/model.py包含實(shí)際的Transformer模型定義

          • mingpt/trainer.py是獨(dú)立于GPT的訓(xùn)練模型的PyTorch樣板

          為了防止初學(xué)者犯難,Karpathy在repo中還隨附3個(gè)Jupyter Notebook文件,教你如何使用這個(gè)庫(kù)來(lái)訓(xùn)練序列模型:

          • play_math.ipynb用于訓(xùn)練專注于加法的GPT(這部分受GPT-3論文中加法部分的啟發(fā));

          • play_char.ipynb用于將GPT訓(xùn)練為任意文本上的字符級(jí)語(yǔ)言模型,類似于作者以前的char-rnn,但它使用的是Transformer而不是RNN;

          • play_words.ipynb是一個(gè)字節(jié)對(duì)編碼(BPE)版本,目前尚未完成。

          有了這些代碼并不意味著你能立刻復(fù)現(xiàn)出OpenAI的幾個(gè)GPT預(yù)訓(xùn)練模型。

          Karpathy表示,使用BPE編碼器、分布式訓(xùn)練以及fp16,才可能復(fù)現(xiàn)GPT-1/GPT-2的結(jié)果,不過他本人還沒有嘗試過。(Karpathy在這句話后面寫著$$$,可能是沒錢吧。)

          至于現(xiàn)在最火的GPT-3,可能無(wú)法實(shí)現(xiàn),因?yàn)镵arpathy認(rèn)為是它不適合GPU顯存,而且需要更精細(xì)的模型并行處理。

          minGPT的API用法示例如下:

          #?you're?on?your?own?to?define?a?class?that?returns?individual?examples?as?PyTorch?LongTensors
          from?torch.utils.data?import?Dataset
          train_dataset?=?MyDataset(...)
          test_dataset?=?MyDataset(...)

          #?construct?a?GPT?model
          from?mingpt.model?import?GPT,?GPTConfig
          mconf?=?GPTConfig(vocab_size,?block_size,?n_layer=12,?n_head=12,?n_embd=768)?#?a?GPT-1
          model?=?GPT(mconf)

          #?construct?a?trainer
          from?mingpt.trainer?import?Trainer,?TrainerConfig
          tconf?=?TrainerConfig(max_epochs=10,?batch_size=256)
          trainer?=?Trainer(model,?train_dataset,?test_dataset,?tconf)
          trainer.train()
          #?(...?enjoy?the?show?for?a?while...?)

          #?sample?from?the?model?(the?[None,?...]?and?[0]?are?to?push/pop?a?needed?dummy?batch?dimension)
          from?mingpt.utils?import?sample
          x?=?torch.tensor([1,?2,?3],?dtype=torch.long)[None,?...]?#?context?conditioning
          y?=?sample(model,?x,?steps=30,?temperature=1.0,?sample=True,?top_k=5)[0]
          print(y)?#?our?model?filled?in?the?integer?sequence?with?30?additional?likely?integers

          如果你有合適的硬件和數(shù)據(jù)集,不妨去試試吧。

          關(guān)于Karpathy

          提供minGPT的Andrej Karpathy今天才33歲,但已經(jīng)是特斯拉的AI高級(jí)總監(jiān),負(fù)責(zé)領(lǐng)導(dǎo)自動(dòng)駕駛神經(jīng)網(wǎng)絡(luò)團(tuán)隊(duì)。

          在跳槽到特斯拉之前,他是OpenAI的科學(xué)家,主要研究計(jì)算機(jī)視覺、生成模型和強(qiáng)化學(xué)習(xí)中的深度學(xué)習(xí)。

          Karpathy在2011-2015年期間進(jìn)入斯坦福大學(xué)攻讀博士學(xué)位,他的導(dǎo)師就是李飛飛。讀博期間,他發(fā)表的多篇論文都是CV領(lǐng)域的高引文章,還在Google、DeepMind兩家公司實(shí)習(xí)過。



          而且斯坦福大學(xué)的著名計(jì)算機(jī)課程CS231n就是他和李飛飛一起設(shè)計(jì)的,Karpathy不僅是該課程的助教,也是主講人之一。

          無(wú)論是當(dāng)年的CS231n課程還是他的GitHub項(xiàng)目,都有很高的人氣。如此大牛的人物,他寫的GPT代碼你不去看看嗎?

          minGPT項(xiàng)目地址:
          https://github.com/karpathy/minGPT

          Andrej Karpathy個(gè)人主頁(yè):
          https://karpathy.ai/

          閱讀原文”小七送你AI大禮包哦!

          瀏覽 33
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一级二级三级 | 91精品国产一区三一 | 精品成人无码乱码无人区 | 俺来也成人免费视频 | 国外操逼视频 |