搜尋
首頁科技週邊人工智慧本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學

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

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

##。不過訓練出的 GPT 和 OpenAI 的 GPT-3 比較,兩者規模差距達 1 萬 - 100 萬倍。

本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學近日,加拿大麥克馬斯特大學的一位軟體工程本科生Jay Mody 在導入NumPy 庫下,僅用60 行程式碼就從頭實現了一個GPT 模型,並將其命名為PicoGPT。不僅如此,他還將經過訓練的 GPT-2 模型權重載入到自己的實作中,並產生了一些文字。下面為 60 行程式碼展示。

本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學#不過要做到這些,你需要熟悉Python 和NumPy,還要有一些訓練神經網路的基本經驗。作者表示,這篇部落格旨在對 GPT 進行簡單易懂的完整介紹。因此,作者只使用已經訓練的模型權重來實現前向傳遞程式碼。

#程式碼位址:

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

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

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

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

##對於此項目。研究,Andrej Karpathy 給了四個字:雖然遲但到。想當初,Karpathy 建構的 minGPT 和 nanoGPT 還要 300 行程式碼。

本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學值得一提的是,這篇教學不是完全零門檻的。為了讓讀者明白,作者首先介紹了什麼是 GPT、它的輸入、輸出如何等其他內容,介紹得都非常詳細。

###################至於GPT 到底能幹什麼,作者給了幾個範例,它能寫電子郵件、總結一本書、給你instagram 標題的想法、向5 歲的孩子解釋黑洞、用SQL 寫程式碼等。 ############透過仔細閱讀這部分內容後,你能大致了解 GPT 的一些基礎知識。有了這些背景介紹,接下來就是如何設定了。 #########專案介紹############設定###############這一章主要介紹如何設定編碼器、超參數以及參數。 #################################你要做的,首先是複製程式碼庫:####### ###############然後安裝依賴項:######

本科生60行程式碼教你手搓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 並重新建立一個空檔案:

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

然後將下列程式碼複製到gpt2.py 中:

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

##上述程式碼包含4 個主要部分:

  • gpt2 函數是本次實作GPT 的實際程式碼;
  • generate 函數實作自迴歸解碼演算法;
  • main 函數;

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

# fire.Fire (main) 將檔案轉換為CLI 應用程序,以便最終可以運行程式碼:python gpt2.py "some prompt here"。

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

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

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

設定完成之後,作者開始介紹編碼器、超參數、參數的一些細節內容。就拿編碼器來說,本文的編碼器和 GPT-2 所使用的 BPE tokenizer 一樣。以下是該編碼器編碼和解碼的一些文字範例:本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學

實際的token 長這個樣子:本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學

###要注意,有時token 是單字(例如Not),有時它們是單字但前面有一個空格(例如Ġall,Ġ代表一個空格),有時是單字的一部分(例如capes 被拆分為Ġcap 和es),有時它們是標點符號(例如.)。 ############BPE 的一個好處是它可以對任意字串進行編碼,如果遇到詞彙表中不存在的內容,它會將其分解為它能理解的子字串:#####################更細節的內容不再贅述。接下來介紹基礎神經網絡,這一部分就更加基礎了,主要包括 GELU、Softmax 函數以及 Layer Normalization 和 Linear。 ######

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

每一小部分都有程式碼範例,例如在Linear 部分,作者展示了標準矩陣乘法偏移:

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

#線性圖層從一個向量空間投影到另一個向量空間的程式碼如下:

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

#GPT 架構

這部分介紹GPT 自身架構。

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

#Transformer 架構如下:

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

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

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

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

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

##文字位置嵌入;
  • Transformer 解碼器堆疊;
  • 投影到詞彙表。
  • 程式碼就像下面這樣:

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

#程式碼部分截圖

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

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

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

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

##輸出結果如下:

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

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

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

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

以上是本科生60行程式碼教你手搓GPT大模型,技術介紹堪比教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
及時工程中的思想圖是什麼及時工程中的思想圖是什麼Apr 13, 2025 am 11:53 AM

介紹 在迅速的工程中,“思想圖”是指使用圖理論來構建和指導AI的推理過程的新方法。與通常涉及線性S的傳統方法不同

優化您的組織與Genai代理商的電子郵件營銷優化您的組織與Genai代理商的電子郵件營銷Apr 13, 2025 am 11:44 AM

介紹 恭喜!您經營一家成功的業務。通過您的網頁,社交媒體活動,網絡研討會,會議,免費資源和其他來源,您每天收集5000個電子郵件ID。下一個明顯的步驟是

Apache Pinot實時應用程序性能監視Apache Pinot實時應用程序性能監視Apr 13, 2025 am 11:40 AM

介紹 在當今快節奏的軟件開發環境中,確保最佳應用程序性能至關重要。監視實時指標,例如響應時間,錯誤率和資源利用率可以幫助MAIN

Chatgpt擊中了10億用戶? Openai首席執行官說:'短短幾週內翻了一番Chatgpt擊中了10億用戶? Openai首席執行官說:'短短幾週內翻了一番Apr 13, 2025 am 11:23 AM

“您有幾個用戶?”他扮演。 阿爾特曼回答說:“我認為我們上次說的是每週5億個活躍者,而且它正在迅速增長。” “你告訴我,就像在短短幾週內翻了一番,”安德森繼續說道。 “我說那個私人

pixtral -12b:Mistral AI'第一個多模型模型 - 分析Vidhyapixtral -12b:Mistral AI'第一個多模型模型 - 分析VidhyaApr 13, 2025 am 11:20 AM

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

生成AI應用的代理框架 - 分析Vidhya生成AI應用的代理框架 - 分析VidhyaApr 13, 2025 am 11:13 AM

想像一下,擁有一個由AI驅動的助手,不僅可以響應您的查詢,還可以自主收集信息,執行任務甚至處理多種類型的數據(TEXT,圖像和代碼)。聽起來有未來派?在這個a

生成AI在金融部門的應用生成AI在金融部門的應用Apr 13, 2025 am 11:12 AM

介紹 金融業是任何國家發展的基石,因為它通過促進有效的交易和信貸可用性來推動經濟增長。交易的便利和信貸

在線學習和被動攻擊算法指南在線學習和被動攻擊算法指南Apr 13, 2025 am 11:09 AM

介紹 數據是從社交媒體,金融交易和電子商務平台等來源的前所未有的速度生成的。處理這種連續的信息流是一個挑戰,但它提供了

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)