偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

新聞 前端
“GPT并不是一個(gè)復(fù)雜的模型?!盞arpathy這樣說是有底氣的,因?yàn)樗约褐挥么蠹s300行PyTorch代碼就實(shí)現(xiàn)了一個(gè)“小型GPT”——minGPT。

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

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

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

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

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

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

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

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

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

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

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

現(xiàn)在,minGPT已經(jīng)能夠進(jìn)行加法運(yùn)算和字符級(jí)的語言建模,更強(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ù)來訓(xùn)練序列模型:

  • play_math.ipynb用于訓(xùn)練專注于加法的GPT(這部分是受GPT-3論文中加法部分的啟發(fā));
  • play_char.ipynb用于將GPT訓(xùn)練為任意文本上的字符級(jí)語言模型,類似于作者以前的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,可能無法實(shí)現(xiàn),因?yàn)镵arpathy認(rèn)為是它不適合GPU顯存,而且需要更精細(xì)的模型并行處理。

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([123], 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高級(jí)總監(jiān),負(fù)責(zé)領(lǐng)導(dǎo)自動(dòng)駕駛神經(jīng)網(wǎng)絡(luò)團(tuán)隊(duì)。

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

在跳槽到特斯拉之前,他是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í)過。

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

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

300行代碼實(shí)現(xiàn)“迷你版GPT”,上線三天收獲3.3k星

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

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

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

 

責(zé)任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2020-08-28 15:47:26

代碼機(jī)器學(xué)習(xí)波士頓

2011-12-18 12:36:59

摩托

2020-12-09 14:18:46

AI 技術(shù)馬賽克

2023-06-25 07:42:02

2011-06-29 18:11:33

筆記本評(píng)測(cè)

2011-11-08 17:28:26

美信云網(wǎng)管

2021-06-25 06:47:38

VueVue2.x迷你版響應(yīng)式原理

2012-10-19 14:26:08

無線路由器平板電腦

2021-06-17 14:33:05

程序員開發(fā)遠(yuǎn)程

2012-04-01 10:13:20

蘋果

2011-04-01 12:49:05

美信CreCloud云網(wǎng)管

2024-05-21 13:06:02

2021-03-29 15:25:47

算法開源技術(shù)

2022-02-11 16:35:41

Redis6.0代碼命令

2025-02-26 10:24:51

2024-09-05 21:02:58

2017-02-21 10:48:12

互聯(lián)網(wǎng)

2011-12-16 10:45:12

java

2023-10-19 08:27:31

AI模型

2020-03-12 10:16:45

代碼Java多線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)