日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁(yè) > 業(yè)界動(dòng)態(tài) > OpenAI創(chuàng)始成員發(fā)布開(kāi)源項(xiàng)目nanochat,僅需100美元就能實(shí)現(xiàn)類(lèi)ChatGPT

          OpenAI創(chuàng)始成員發(fā)布開(kāi)源項(xiàng)目nanochat,僅需100美元就能實(shí)現(xiàn)類(lèi)ChatGPT

          作者: 時(shí)間:2025-10-16 來(lái)源:電子產(chǎn)品世界 收藏

          特斯拉前AI團(tuán)隊(duì)負(fù)責(zé)人、創(chuàng)始成員安德烈·卡帕西(Andrej Karpathy)發(fā)布重磅項(xiàng)目: —— 一個(gè)極簡(jiǎn)但完整的「從零構(gòu)建」訓(xùn)練框架。只需要約100美元,就能在不到4小時(shí)內(nèi)完成完整的類(lèi)訓(xùn)練流程,包括預(yù)訓(xùn)練、微調(diào)(SFT)和強(qiáng)化學(xué)習(xí)(RL)。

          Karpathy說(shuō)這是他寫(xiě)過(guò)的最瘋狂的項(xiàng)目之一,相當(dāng)于每個(gè)人都可以自己擁有一個(gè)專(zhuān)屬的。值得注意的是,這個(gè)項(xiàng)目基本上是完全手寫(xiě)的。

          640-5.jpeg

          GitHub項(xiàng)目:https://github.com/karpathy/

          與早期的nanoGPT不同,不僅涵蓋預(yù)訓(xùn)練,還囊括了從數(shù)據(jù)準(zhǔn)備、預(yù)訓(xùn)練、中期訓(xùn)練(對(duì)話(huà)、多項(xiàng)選擇題、工具使用)、SFT、RL微調(diào)到推理部署的全流程。整個(gè)項(xiàng)目約8000行代碼,可實(shí)現(xiàn)以下功能:

          · 基于全新Rust語(yǔ)言實(shí)現(xiàn),訓(xùn)練分詞器(tokenizer)

          · 在FineWeb數(shù)據(jù)集上預(yù)訓(xùn)練Transformer架構(gòu)大語(yǔ)言模型,并通過(guò)多項(xiàng)指標(biāo)評(píng)估CORE得分

          · 在SmolTalk用戶(hù)-助手對(duì)話(huà)數(shù)據(jù)集、多項(xiàng)選擇題數(shù)據(jù)集、工具使用數(shù)據(jù)集上進(jìn)行中期訓(xùn)練(Midtrain)

          · 執(zhí)行指令微調(diào)(SFT),并在世界知識(shí)多項(xiàng)選擇題數(shù)據(jù)集(ARC-E/C)、數(shù)學(xué)數(shù)據(jù)集(GSM8K)、代碼數(shù)據(jù)集(HumanEval)上評(píng)估對(duì)話(huà)模型性能

          · 可選在GSM8K數(shù)據(jù)集上通過(guò)“GRPO”算法對(duì)模型進(jìn)行強(qiáng)化學(xué)習(xí)(RL)訓(xùn)練

          · 在推理引擎中實(shí)現(xiàn)高效模型推理,支持KV緩存、簡(jiǎn)易預(yù)填充/解碼流程、工具使用(輕量級(jí)沙箱環(huán)境中的Python解釋器),可通過(guò)CLI或類(lèi)ChatGPT的WebUI與模型交互

          · 生成單個(gè)Markdown格式報(bào)告卡,對(duì)整個(gè)訓(xùn)練推理流程進(jìn)行總結(jié),并加入“游戲化”呈現(xiàn)(如用評(píng)分、進(jìn)度等形式直觀(guān)展示結(jié)果)

          訓(xùn)練約12小時(shí)后,模型在CORE指標(biāo)上的表現(xiàn)即可超越GPT-2。若進(jìn)一步將成本提升至約1000美元(訓(xùn)練約41.6小時(shí)),模型表現(xiàn)顯著提升。Karpathy表示,他的目標(biāo)是將這套完整的“強(qiáng)基線(xiàn)”(strong baseline)技術(shù)棧整合為統(tǒng)一、極簡(jiǎn)、易讀、可修改、易分發(fā)的代碼庫(kù)。

          我認(rèn)為它還有潛力發(fā)展為一個(gè)研究工具框架或基準(zhǔn)測(cè)試的工具,就像之前的nanoGPT一樣。目前該項(xiàng)目遠(yuǎn)未完全優(yōu)化(實(shí)際上存在大量可改進(jìn)空間),但整體框架已足夠完整,可以發(fā)布到GitHub上,后續(xù)所有模塊都能在社區(qū)中進(jìn)一步優(yōu)化。

          下面這張圖展示的是Karpathy在nanochat「$100速度跑」實(shí)驗(yàn)(即只用一臺(tái)GPU、約4小時(shí)訓(xùn)練出的ChatGPT 小模型)中生成的「成績(jī)單」部分內(nèi)容,說(shuō)明模型規(guī)模、訓(xùn)練耗時(shí)、以及在各類(lèi)標(biāo)準(zhǔn)評(píng)測(cè)上的性能。

          640-10.png

          快速上手

          為了讓更多的愛(ài)好者迅速上手,Karpathy在GitHub上詳細(xì)分享了nanochat的教程(https://github.com/karpathy/nanochat/discussions/1)。nanochat被設(shè)計(jì)為在單個(gè)8×H100 GPU機(jī)器上運(yùn)行,此次教程中,Karpathy使用了Lambda GPU Cloud,每小時(shí)大約24美元。當(dāng)然想要嘗試的愛(ài)好者們也可根據(jù)個(gè)人情況自行選擇,進(jìn)行了嘗試。接下來(lái)看看他到底是怎么做的?

          環(huán)境搭建

          首先,克隆項(xiàng)目并進(jìn)入目錄:

          git clone git@github.com:karpathy/nanochat.gitcd nanochat

          用100美元訓(xùn)練出最強(qiáng)的類(lèi)ChatGPT,其背后最快體驗(yàn)?zāi)ЯΦ姆椒ㄊ沁\(yùn)行speedrun.sh(速通)腳本。

          speedrun.sh腳本可以在一臺(tái)新機(jī)器上直接運(yùn)行,從頭到尾完成訓(xùn)練和推理。

          一切的前提就是需要確保安裝了新的uv項(xiàng)目管理工具。然后創(chuàng)建虛擬環(huán)境、安裝依賴(lài)并激活它,這樣在終端輸入python時(shí),就會(huì)使用虛擬環(huán)境里的Python,而不是系統(tǒng)自帶的Python:

          # 安裝 uv(如果還沒(méi)安裝的話(huà))command -v uv &> /dev/null || curl -LsSf https://astral.sh/uv/install.sh | sh# 創(chuàng)建本地虛擬環(huán)境 .venv(如果不存在的話(huà))[ -d ".venv" ] || uv venv# 安裝倉(cāng)庫(kù)依賴(lài)uv sync# 激活虛擬環(huán)境,這樣 `python` 就會(huì)使用項(xiàng)目的虛擬環(huán)境source .venv/bin/activate

          接下來(lái),需要安裝Rust/Cargo來(lái)編譯nanochat中自定義的Rust分詞器。

          Karpathy稱(chēng),引入新的分詞器確實(shí)有點(diǎn)麻煩,但之前Python版本的minbpe太慢,而HuggingFace的tokenizer太臃腫且復(fù)雜。所以他自己實(shí)現(xiàn)了一個(gè)新的Rust分詞器來(lái)訓(xùn)練(經(jīng)過(guò)測(cè)試效果與Python版本一致),但推理階段仍會(huì)使用的tiktoken來(lái)保證效率。

          編譯分詞器步驟如下:

          # 安裝 Rust / Cargocurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -ysource "$HOME/.cargo/env"# 編譯 rustbpe Tokenizeruv run maturin develop --release --manifest-path rustbpe/Cargo.toml

          這樣就完成了分詞器的編譯和環(huán)境搭建,為后續(xù)訓(xùn)練做準(zhǔn)備。

          訓(xùn)練分詞器

          接下來(lái),就需要預(yù)訓(xùn)練數(shù)據(jù),以便完成兩個(gè)任務(wù):

          i. 訓(xùn)練分詞器(tokenizer)

          ii. 預(yù)訓(xùn)練模型

          這里的預(yù)訓(xùn)練數(shù)據(jù)就是大量網(wǎng)頁(yè)文本,在教程中,Karpathy使用的是FineWeb-EDU數(shù)據(jù)集。

          他解釋道,通常大家可以直接用HuggingFace的datasets.load_dataset()來(lái)加載,但這個(gè)太笨重、臃腫,而且把一些很簡(jiǎn)單的邏輯隱藏起來(lái),所以他自己選擇了重新打包了整個(gè)數(shù)據(jù)集,生成了簡(jiǎn)單、完全隨機(jī)打亂的數(shù)據(jù)分片,方便高效訪(fǎng)問(wèn)。

          此外,Karpathy還把sample-100B版本上傳成了karpathy/fineweb-edu-100b-shuffle(https://huggingface.co/datasets/karpathy/fineweb-edu-100b-shuffle)。

          每個(gè)分片是一個(gè)簡(jiǎn)單的Parquet文件,約0.25M個(gè)字符,壓縮后(gzip壓縮)在磁盤(pán)占用約100MB空間。數(shù)據(jù)集總共有1822個(gè)分片,但訓(xùn)練一個(gè)depth=20的模型只需要240個(gè)分片。

          下載數(shù)據(jù):

          python -m nanochat.dataset -n 240

          默認(rèn)情況下,這些數(shù)據(jù)會(huì)存放在~/.cache/nanochat。下載完成后,就可以訓(xùn)練分詞器了。分詞器的作用是把文本在字符串和代碼表符號(hào)序列之間互相轉(zhuǎn)換。

          同樣在默認(rèn)情況下,Karpathy表示,訓(xùn)練的詞表大小是21?=65,536個(gè)token,這個(gè)數(shù)字比較好記。其中少數(shù)token被保留作特殊用途(后續(xù)聊天schema會(huì)用到)。訓(xùn)練集大小約20億字符,訓(xùn)練時(shí)間僅需約1分鐘。

          訓(xùn)練算法與的方法一致(正則分割 + byte-level BPE)。

          訓(xùn)練完成后,可以評(píng)估分詞器效果:

          python -m scripts.tok_train --max_chars=2000000000python -m scripts.tok_eval

          評(píng)估結(jié)果顯示,分詞器壓縮率約為4.8,也就是說(shuō)平均4.8個(gè)原始字符會(huì)變成1個(gè) token。同時(shí),也可以將nanochat的結(jié)果與GPT-2和GPT-4分詞器做對(duì)比:

          · 相比GPT-2(50257個(gè)token), nanochat的分詞器在大部分文本壓縮上表現(xiàn)更好,數(shù)學(xué)文本略差一些。

          640-11.png

          · 相比GPT-4,nanochat的表現(xiàn)稍遜,但要注意GPT-4的詞表更大(100,277個(gè)token),在多語(yǔ)言、代碼和數(shù)學(xué)上優(yōu)勢(shì)明顯。

          性能結(jié)果

          值得注意的是,項(xiàng)目文件夾中會(huì)生成report.md 文件,它記錄了訓(xùn)練的詳細(xì)信息,并在末尾提供了一個(gè)清晰的總結(jié)表格,方便查看各項(xiàng)指標(biāo)和模型表現(xiàn)。

          不過(guò),Karpathy也提醒道,nanochat目前還遠(yuǎn)未完成,還有很多需要調(diào)優(yōu)或優(yōu)化的地方,但整體框架已經(jīng)足夠清晰,所以現(xiàn)在把它上傳到GitHub,讓更多人參與改進(jìn)和完善。

          整體來(lái)看,nanochat不是一項(xiàng)顛覆性的突破,但它非常實(shí)用。它將LLM訓(xùn)練的門(mén)檻降低到了普通人也能達(dá)到的水平。你可以親眼看到,僅用幾百美元和幾小時(shí)就能完成什么。

          640-12.png

          這個(gè)項(xiàng)目體現(xiàn)出他的核心理念:「降低LLM研究與復(fù)現(xiàn)門(mén)檻,讓每個(gè)人都能親手訓(xùn)練自己的模型?!惯@種民主化路線(xiàn),與他在nanoGPT時(shí)期倡導(dǎo)的「從零實(shí)現(xiàn)Transformer」如出一轍。


          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉