成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

本科生60行代碼教你手搓GPT大模型,技術介紹堪比教程

人工智能 新聞
GPT 模型實現起來有時也很簡單。

當前,大型語言模型(LLM)被認為是人工智能突破的方向。人們正在嘗試用它們做各種復雜的事情,比如問答、創作、數學推理以及編寫代碼等。近段時間 ChatGPT 持續的爆火是最好的例證。

然而,對于機器學習從業者來說,大模型的門檻很高:因為體量太大難以訓練,很長時間里這個方向一直被大公司壟斷。不過最近,簡化 GPT 模型的方法越來越多了。1 月中旬,前特斯拉 AI 高級總監 Andrej Karpathy(現已回歸 OpenAI)就發布了??從零開始構建 GPT 模型的完整教程???。不過訓練出的 GPT 和 OpenAI 的 GPT-3 比較,兩者規模差距達 1 萬 - 100 萬倍。

近日,加拿大麥克馬斯特大學的一位軟件工程本科生 Jay Mody 在導入 NumPy 庫下,僅用 60 行代碼就從頭實現了一個 GPT 模型,并將其命名為 PicoGPT。不僅如此,他還將經過訓練的 GPT-2 模型權重加載到自己的實現中,并生成了一些文本。下面為 60 行代碼展示。

圖片

不過要做到這些,你需要熟悉 Python 和 NumPy,還要有一些訓練神經網絡的基本經驗。作者表示,這篇博客旨在對 GPT 進行簡單易懂的完整介紹。因此,作者只使用已經訓練的模型權重來實現前向傳遞代碼。

圖片

代碼地址:

?https://github.com/jaymody/picoGPT/blob/29e78cc52b58ed2c1c483ffea2eb46ff6bdec785/gpt2_pico.py#L3-L58?

對于此項研究,Andrej Karpathy 給出了四個字:雖遲但到。想當初,Karpathy 構建的 minGPT 和 nanoGPT 還要 300 行代碼。

圖片

值得一提的是,這篇教程不是完全零門檻的。為了讓讀者明白,作者首先介紹了什么是 GPT、它的輸入、輸出如何等其他內容,介紹得都非常詳細。

圖片

至于 GPT 到底能干什么,作者給出了幾個示例,它能寫電子郵件、總結一本書、給你 instagram 標題的想法、向 5 歲的孩子解釋黑洞、用 SQL 編寫代碼等。

通過仔細閱讀這部分內容后,你能大致了解 GPT 的一些基礎知識。有了這些背景介紹,接下來就是如何設置了。

項目介紹

設置

這一章節主要介紹了如何設置編碼器、超參數以及參數。

圖片

你要做的,首先是克隆代碼庫:

圖片

然后安裝依賴項:

圖片

注意,如果你使用的是 M1 Macbook,在運行 pip install 之前,你需要在 requirements.txt 中將 tensorflow 更改為 tensorflow-macos。在這個項目下,文件包括 encoder.py、utils.py、gpt2.py、gpt2_pico.py:

  • encoder.py:包含 OpenAI BPE Tokenizer 的代碼,直接取自 gpt-2 repo;
  • utils.py:包含下載和加載 GPT-2 模型權重、tokenizer 和超參數的代碼;
  • gpt2.py:包含 GPT 模型和生成代碼,可以將其作為 python 腳本運行;
  • gpt2_pico.py:與 gpt2.py 相同,但是代碼行數更少。

其中 gpt2.py 需要從頭開始實現,因此你要做的是先刪除 gpt2.py 并重新創建一個空文件:

圖片

然后將下列代碼復制到 gpt2.py 中:

圖片

上述代碼包含 4 個主要部分:

  • gpt2 函數是本次實現 GPT 的實際代碼;
  • generate 函數實現自回歸解碼算法;
  • main 函數;
  • fire.Fire (main) 將文件轉換為 CLI 應用程序,以便最終可以運行代碼:python gpt2.py "some prompt here"。

main 函數包含有 encode、hparams、params 參數,執行下列代碼:

圖片

接著必要的模型以及 tokenizer 文件將被下載到 models/124M 文件。

設置完成之后,作者開始介紹編碼器、超參數、參數的一些細節內容。就拿編碼器來說,本文的編碼器和 GPT-2 使用的 BPE tokenizer 一樣。下面是該編碼器編碼和解碼的一些文本示例:

圖片

實際的 token 長這個樣子:

圖片

需要注意,有時 token 是單詞(例如 Not),有時它們是單詞但前面有一個空格(例如 ?all,? 代表一個空格),有時是單詞的一部分(例如 capes 被拆分為 ?cap 和 es),有時它們是標點符號(例如 .)。

BPE 的一個好處是它可以對任意字符串進行編碼,如果遇到詞匯表中不存在的內容,它會將其分解為它能理解的子字符串:

圖片

更細節的內容不再贅述。接下來介紹基礎神經網絡,這一部分就更加基礎了,主要包括 GELU、Softmax 函數以及 Layer Normalization 和 Linear。

圖片

每一小部分都有代碼示例,例如在 Linear 部分,作者展示了標準矩陣乘法 + 偏置:

圖片

線性層從一個向量空間投影到另一個向量空間的代碼如下:

圖片

GPT 架構?

這部分介紹 GPT 自身架構。

圖片

Transformer 架構如下:

圖片

Transformer 僅使用解碼器堆棧(圖的右側部分):

圖片

需要注意,由于擺脫了編碼器,中間的交叉注意力層也被刪除了。?

在高層次上,GPT 體系架構有以下三個部分:

  • 文本 + 位置嵌入;
  • Transformer 解碼器堆棧;
  • 投影到詞匯表。

代碼就像下面這樣:

圖片

代碼部分截圖

接下來更詳細地分解以上三個部分中的每一個部分,這里也不再贅述。

以上就是作者對 GPT 的實現,接下來就是將它們組合在一起并運行代碼,得到 gpt2.py。它的全部內容只有 120 行代碼(如果刪除注釋和空格,則為 60 行)。

作者通過以下方式測試結果:

圖片

輸出結果如下:

圖片

正如作者說的:這次實驗成功了。

本文只是跟著作者的思路大概介紹了整體流程,想要了解更多內容的小伙伴,可以參考原文鏈接。

原文鏈接:https://jaykmody.com/blog/gpt-from-scratch/#basic-layers

責任編輯:張燕妮 來源: 機器之心
相關推薦

2023-02-20 09:45:32

技術AI

2024-04-09 15:22:24

2024-01-29 13:56:55

AI數據

2024-08-26 13:30:00

2020-04-01 12:18:11

人工智能強化學習開源

2018-06-20 09:23:07

AI專業科技

2024-05-20 08:00:00

GPT-4o團隊

2024-07-09 09:36:17

2024-12-17 11:30:00

2025-05-28 11:44:24

AI模型研究

2025-02-26 14:24:43

AIChatGPT生成式人工智能

2021-01-29 15:21:02

AI 數據人工智能

2019-06-17 09:00:00

代碼開發工具

2024-03-01 13:49:00

數據訓練

2023-03-28 09:38:10

2023-04-10 15:37:18

AI代碼

2019-12-18 15:28:05

編程語言PythonJava

2023-07-24 12:30:36

谷歌AI

2022-03-22 18:19:29

論文深度學習人工智能

2024-04-11 12:47:37

AI模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费观看视频 | 成人视屏在线观看 | 天天操天天干天天透 | www.久草.com| 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | av电影手机在线看 | 亚洲成网 | 亚洲午夜精品 | 中文字幕一区二区三区四区五区 | 日韩在线三级 | 91麻豆精品国产91久久久更新资源速度超快 | 婷婷毛片| 欧美亚洲视频 | 天天弄| 国产精品不卡视频 | 国产精品成人品 | 欧美日韩理论 | 国产高清精品一区二区三区 | 国产99热 | 亚洲国产精品suv | 国产精品久久久久久一区二区三区 | 精品久久久久久久久久久 | 午夜网站视频 | 国产你懂的在线观看 | av一二三区 | 亚洲性视频网站 | 国产网站在线免费观看 | 91精品国产综合久久久密闭 | 五月综合激情在线 | 国产一二区免费视频 | 一级大片网站 | 国产伦精品一区二区三毛 | 99视频在线免费观看 | 欧美a区 | 亚洲精品一区二三区不卡 | 超碰在线免费 | 色婷婷激情综合 | 成人片免费看 | 在线视频一区二区 | 国产激情视频网站 | 中文字幕一区二区三区不卡 |