狠狠做深爱婷婷久久一区,欧美日韩国内,久久麻豆精品传媒,久久久一区一区二区,色鬼伦理片,99视频精品久久,久久精品国产久久久久久,久久久伦理电影一区二,磁力天堂河北彩花

新聞中心

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

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

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

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

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

640-5.jpeg

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

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

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

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

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

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

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

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

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

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

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

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

640-10.png

快速上手

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

環(huán)境搭建

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

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

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

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

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

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

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

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

編譯分詞器步驟如下:

# 安裝 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)練分詞器

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

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

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

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

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

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

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

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

python -m nanochat.dataset -n 240

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

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

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

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

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

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

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

640-11.png

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

性能結(jié)果

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

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

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

640-12.png

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


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉
黄梅县| 江安县| 孝义市| 社会| 青神县| 鄂托克旗| 松桃| 吕梁市| 古丈县| 芦山县| 泸西县| 子洲县| 贵阳市| 大姚县| 永善县| 仁布县| 精河县| 疏勒县| 五家渠市| 大庆市| 肃南| 同心县| 苏尼特左旗| 昭通市| 闵行区| 富平县| 葫芦岛市| 陇川县| 涪陵区| 信阳市| 自治县| 洛浦县| 吉木萨尔县| 鹰潭市| 江都市| 永靖县| 尼玛县| 昌都县| 湟中县| 临沧市| 招远市|