日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
300行代碼實現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

 本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、東阿網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為東阿等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

“GPT并不是一個復雜的模型?!?/p>

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

Karpathy這樣說是有底氣的,因為他自己只用大約300行PyTorch代碼就實現(xiàn)了一個“小型GPT”——minGPT。該項目上線3天以來,已經(jīng)收獲了3.3k星。

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

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

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

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

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

minGPT項目內(nèi)容

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

minGPT的核心庫包含兩個重要的文件:

  • mingpt/model.py包含實際的Transformer模型定義
  • mingpt/trainer.py是獨立于GPT的訓練模型的PyTorch樣板

為了防止初學者犯難,Karpathy在repo中還隨附3個Jupyter Notebook文件,教你如何使用這個庫來訓練序列模型:

  • play_math.ipynb用于訓練專注于加法的GPT(這部分是受GPT-3論文中加法部分的啟發(fā));
  • play_char.ipynb用于將GPT訓練為任意文本上的字符級語言模型,類似于作者以前的char-rnn,但它使用的是Transformer而不是RNN;
  • play_words.ipynb是一個字節(jié)對編碼(BPE)版本,目前尚未完成。

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

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

至于現(xiàn)在最火的GPT-3,可能無法實現(xiàn),因為Karpathy認為是它不適合GPU顯存,而且需要更精細的模型并行處理。

minGPT的API用法示例如下:

 
 
 
 
  1. # you're on your own to define a class that returns individual examples as PyTorch LongTensors 
  2. from torch.utils.data import Dataset 
  3. train_dataset = MyDataset(...) 
  4. test_dataset = MyDataset(...) 
  5.  
  6. # construct a GPT model 
  7. from mingpt.model import GPT, GPTConfig 
  8. mconf = GPTConfig(vocab_size, block_size, n_layer=12, n_head=12, n_embd=768) # a GPT-1 
  9. model = GPT(mconf) 
  10.  
  11. # construct a trainer 
  12. from mingpt.trainer import Trainer, TrainerConfig 
  13. tconf = TrainerConfig(max_epochs=10, batch_size=256) 
  14. trainer = Trainer(model, train_dataset, test_dataset, tconf) 
  15. trainer.train() 
  16. # (... enjoy the show for a while... ) 
  17.  
  18. # sample from the model (the [None, ...] and [0] are to push/pop a needed dummy batch dimension) 
  19. from mingpt.utils import sample 
  20. x = torch.tensor([1, 2, 3], dtype=torch.long)[None, ...] # context conditioning 
  21. y = sample(model, x, steps=30, temperature=1.0, sample=True, top_k=5)[0] 
  22. 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高級總監(jiān),負責領(lǐng)導自動駕駛神經(jīng)網(wǎng)絡(luò)團隊。

在跳槽到特斯拉之前,他是OpenAI的科學家,主要研究計算機視覺、生成模型和強化學習中的深度學習。

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

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

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

minGPT項目地址:
https://github.com/karpathy/minGPT

Andrej Karpathy個人主頁:
https://karpathy.ai/


當前題目:300行代碼實現(xiàn)“迷你版GPT”,上線三天收獲3.3k星
本文URL:http://m.5511xx.com/article/cdssddg.html