自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

新聞 人工智能
如果說 GPT 模型是所向披靡的戰(zhàn)艦,那么 minGPT 大概算是個(gè)頭雖小但仍能乘風(fēng)破浪的游艇了吧。

  如果說 GPT 模型是所向披靡的戰(zhàn)艦,那么 minGPT 大概算是個(gè)頭雖小但仍能乘風(fēng)破浪的游艇了吧。

最近,「史上最大 AI 模型」GPT-3 風(fēng)靡全球。

GPT 系列可以說是人工智能領(lǐng)域「暴力美學(xué)」的代表作了。2018 誕生的 GPT,1.17 億參數(shù);2019 年 GPT-2,15 億參數(shù);2020 年 GPT-3,1750 億參數(shù)。短短一年時(shí)間,GPT 模型的參數(shù)量就呈指數(shù)級(jí)增長(zhǎng)。

GPT-3 發(fā)布后不久,OpenAI 即向社區(qū)開放了商業(yè) API,鼓勵(lì)大家使用 GPT-3 嘗試更多的實(shí)驗(yàn)。然而,API 的使用需要申請(qǐng),而且你的申請(qǐng)很有可能石沉大海。那么,除了使用官方 API 以外,我們還有沒有其他方法能上手把玩一下這個(gè)「最大模型」呢?

近日,特斯拉人工智能研究負(fù)責(zé)人、前 OpenAI 研究科學(xué)家 Andrej Karpathy 進(jìn)行了嘗試。

他基于 PyTorch,僅用 300 行左右的代碼就寫出了一個(gè)小型 GPT 訓(xùn)練庫(kù),并將其命名為 minGPT。

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

Karpathy 表示,這個(gè) minGPT 能夠進(jìn)行加法運(yùn)算和字符級(jí)的語(yǔ)言建模,而且準(zhǔn)確率還不錯(cuò)。不過,在運(yùn)行 demo 后,Andrej Karpathy 發(fā)現(xiàn)了一個(gè)有趣的現(xiàn)象:2 層 4 注意力頭 128 層的 GPT 在兩位數(shù)加法運(yùn)算中,將 55 + 45 的結(jié)果計(jì)算為 90,而其他加法運(yùn)算則沒有問題。

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

目前,該項(xiàng)目在 GitHub 上亮相還沒滿 24 小時(shí),但 star 量已經(jīng)破千。

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

minGPT:只用 300 行代碼實(shí)現(xiàn)的 GPT 訓(xùn)練

如果說 GPT 模型是所向披靡的戰(zhàn)艦,那么 minGPT 大概算是個(gè)個(gè)頭雖小但仍能乘風(fēng)破浪的游艇了吧。

[[338357]]

在項(xiàng)目頁(yè)面中,Karpathy 介紹稱:由于現(xiàn)有可用的 GPT 實(shí)現(xiàn)庫(kù)略顯雜亂,于是他在創(chuàng)建 minGPT 的過程中, 力圖遵循小巧、簡(jiǎn)潔、可解釋、具有教育意義等原則。

GPT 并非一個(gè)復(fù)雜的模型,minGPT 實(shí)現(xiàn)只有大約 300 行代碼,包括樣板文件和一個(gè)完全不必要的自定義因果自注意力模塊。Karpathy 將索引序列變成了一個(gè) transformer 塊序列,如此一來,下一個(gè)索引的概率分布就出現(xiàn)了。剩下的復(fù)雜部分就是巧妙地處理 batching,使訓(xùn)練更加高效。

核心的 minGPT 庫(kù)包含兩個(gè)文檔:mingpt/model.py 和 mingpt/trainer.py。前者包含實(shí)際的 Transformer 模型定義,后者是一個(gè)與 GPT 無關(guān)的 PyTorch 樣板文件,可用于訓(xùn)練該模型。相關(guān)的 Jupyter notebook 則展示了如何使用該庫(kù)訓(xùn)練序列模型:

  • play_math.ipynb 訓(xùn)練一個(gè)專注于加法的 GPT;
  • play_char.ipynb 將 GPT 訓(xùn)練成一個(gè)可基于任意文本使用的字符級(jí)語(yǔ)言模型,類似于之前的 char-rnn,但用 transformer 代替了 RNN;
  • play_words.ipynb 是 BPE(Byte-Pair Encoding)版本,目前尚未完成。

使用 BPE 編碼器、分布式訓(xùn)練和 fp16,這一實(shí)現(xiàn)有可能復(fù)現(xiàn) GPT-1/GPT-2 的結(jié)果,不過 Karpathy 還沒有嘗試。至于 GPT-3,minGPT 可能無法復(fù)現(xiàn),因?yàn)?GPT-3 可能不適合 GPU 內(nèi)存,而且需要更精細(xì)的模型并行化處理。

使用示例

Karpathy 在 minGPT 項(xiàng)目中提供了一些使用示例。

這些代碼非常簡(jiǎn)單,只需 hack inline 即可,而非「使用」。目前的 API 外觀如下:

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

minGPT 是如何實(shí)現(xiàn)的?

在實(shí)現(xiàn)過程中,Karpathy 參考了 OpenAI GPT 官方項(xiàng)目,以及其他組織的示例等。

代碼

  • OpenAI gpt-2 項(xiàng)目提供了模型,但沒有提供訓(xùn)練代碼(https://github.com/openai/gpt-2);
  • OpenAI 的 image-gpt 庫(kù)在其代碼中進(jìn)行了一些類似于 GPT-3 的更改,是一份不錯(cuò)的參考(https://github.com/openai/image-gpt);
  • Huggingface 的 transformers 項(xiàng)目提供了一個(gè)語(yǔ)言建模示例。它功能齊全,但跟蹤起來有點(diǎn)困難。(https://github.com/huggingface/transformers/tree/master/examples/language-modeling)

論文 + 實(shí)現(xiàn)說明

此外,項(xiàng)目作者還介紹了相關(guān)的論文和實(shí)現(xiàn)細(xì)節(jié)。

1. GPT-1:《Improving Language Understanding by Generative Pre-Training》

  • 論文地址:https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

GPT-1 模型大體遵循了原始 transformer,訓(xùn)練了僅包含 12 層解碼器、具備遮蔽自注意力頭(768 維狀態(tài)和 12 個(gè)注意力頭)的 transformer。具體實(shí)現(xiàn)細(xì)節(jié)參見下圖:

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)


2. GPT-2:《Language Models are Unsupervised Multitask Learners》

  • 論文地址:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

GPT-2 將 LayerNorm 移動(dòng)每個(gè)子模塊的輸入,類似于預(yù)激活殘差網(wǎng)絡(luò),并在最后的自注意力模塊后添加了一個(gè)額外的層歸一化。此外,該模型還更改了模型初始化(包括殘差層初始化權(quán)重等)、擴(kuò)展了詞匯量、將 context 規(guī)模從 512 個(gè) token 增加到 1024、使用更大的批大小等。具體實(shí)現(xiàn)細(xì)節(jié)參見下圖:

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

3. GPT-3:《Language Models are Few-Shot Learners》

  • 論文地址:https://arxiv.org/pdf/2005.14165.pdf

GPT-3 使用了和 GPT-2 相同的模型和架構(gòu),區(qū)別在于 GPT-3 在 transformer 的各層上都使用了交替密集和局部帶狀稀疏的注意力模式,類似于 Sparse Transformer。具體實(shí)現(xiàn)細(xì)節(jié)參見下圖:

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

Andrej Karpathy 其人

Andrej Karpathy 是計(jì)算機(jī)視覺、生成式模型與強(qiáng)化學(xué)習(xí)領(lǐng)域的研究者,博士期間師從斯坦福大學(xué)計(jì)算機(jī)科學(xué)系教授李飛飛。讀博期間,他曾兩次在谷歌實(shí)習(xí),研究在 Youtube 視頻上的大規(guī)模特征學(xué)習(xí)。此外,他還和李飛飛等人一起設(shè)計(jì)、教授了斯坦福經(jīng)典課程 CS231n。

[[338358]]

2016 年,Karpathy 加入 OpenAI 擔(dān)任研究科學(xué)家。2017 年,他加入特斯拉擔(dān)任人工智能與自動(dòng)駕駛視覺總監(jiān)。如今,Karpathy 已經(jīng)升任特斯拉 AI 高級(jí)總監(jiān)。他所在的團(tuán)隊(duì)負(fù)責(zé)特斯拉自動(dòng)駕駛系統(tǒng) Autopilot 所有神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì),包括數(shù)據(jù)收集、神經(jīng)網(wǎng)絡(luò)訓(xùn)練及其在特斯拉定制芯片上的部署。

和教授 CS231n 時(shí)一樣,Karpathy 希望他利用業(yè)余時(shí)間做的這個(gè) minGPT 也能有一定的教育意義。他這種化繁為簡(jiǎn)的舉動(dòng)得到了眾多社區(qū)成員的贊賞:

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

除了關(guān)于 minGPT 本身的討論之外,還有人提出:有沒有可能借助社區(qū)力量一起訓(xùn)練 GPT-3?也就是說,如果成千上萬(wàn)的開發(fā)者在 GPU 空閑的時(shí)候?qū)⑵湄暙I(xiàn)出來(比如夜間),最后有沒有可能訓(xùn)練出一個(gè) 1750 億參數(shù)的 GPT-3?這樣的話,大家只需要分?jǐn)傠娰M(fèi)就好了。

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

不過,有人指出,這種分布式訓(xùn)練的想法非常有趣,但可能會(huì)在梯度等方面遇到瓶頸。

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

還有人調(diào)侃說,把電費(fèi)眾籌一下拿來買云服務(wù)豈不是更簡(jiǎn)單?

一天star量破千,特斯拉AI總監(jiān)寫了個(gè)GPT的Pytorch訓(xùn)練庫(kù)

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心Pro
相關(guān)推薦

2021-04-14 14:41:39

AI 數(shù)據(jù)人工智能

2022-06-23 15:48:02

AI開源GitHub

2023-11-05 10:01:37

AI模型

2023-03-02 14:00:03

AI繪畫

2024-02-19 08:56:00

AI模型

2019-04-28 09:56:15

程序員互聯(lián)網(wǎng)脫發(fā)

2023-02-02 13:22:40

AICIFAR數(shù)據(jù)集

2024-04-03 12:18:45

AI訓(xùn)練

2019-08-05 08:00:04

AI 數(shù)據(jù)人工智能

2022-08-21 21:15:28

模型AI

2023-06-28 13:48:23

開源圖片

2021-05-11 09:52:13

AI 數(shù)據(jù)人工智能

2022-11-01 13:42:54

雷達(dá)智能

2024-07-15 12:18:39

2024-04-09 15:22:24

2019-11-07 15:30:00

EmacsIDE

2021-12-09 10:26:35

AI 數(shù)據(jù)人工智能

2017-03-21 21:17:50

大數(shù)據(jù)數(shù)據(jù)互聯(lián)網(wǎng)

2024-11-22 15:00:00

模型數(shù)據(jù)

2019-03-29 09:24:36

國(guó)內(nèi)程序員微博GitHub
點(diǎn)贊
收藏

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