建大模型完整指南:手把手跑通預(yù)訓(xùn)練到微調(diào)全流程)
happy-llm 從零構(gòu)建大模型完整指南手把手跑通預(yù)訓(xùn)練到微調(diào)全流程【免費(fèi)下載鏈接】happy-llm 從零開始構(gòu)建大模型項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ha/happy-llmhappy-llm 是 Datawhale 出品的「從零開始構(gòu)建大模型」開源教程不止講原理而是帶你親手搭建 LLaMA2、預(yù)訓(xùn)練一個(gè) 215M 小模型再用 Transformers 走通微調(diào)與 RAG/Agent 實(shí)戰(zhàn)。本文按拉環(huán)境 → 分章實(shí)踐 → 查坑的順序帶你走一遍全部?jī)?nèi)容讀完后你手上會(huì)有一個(gè)自己的小模型和一套可復(fù)用的訓(xùn)練流程??焖偕鲜治宀嚼?happy-llm 學(xué)習(xí)環(huán)境先別急著讀章節(jié)把環(huán)境拉起來(lái)你才知道卡在哪。按下面五步走克隆倉(cāng)庫(kù)到本地git clone https://gitcode.com/GitHub_Trending/ha/happy-llm.git cd happy-llm為當(dāng)前要復(fù)現(xiàn)的章節(jié)單獨(dú)建虛擬環(huán)境各章依賴差異大混裝極易沖突python -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r ./docs/chapter6/code/requirements.txt # 換成你當(dāng)前章節(jié)的 requirements下載基座模型和訓(xùn)練數(shù)據(jù)第六章提供現(xiàn)成腳本download_model.py與download_dataset.py。先用小樣本調(diào)試pretrain.py/finetune.py確認(rèn) loss 正常下降。調(diào)試通過后再跑 pretrain.sh 等啟動(dòng)腳本做完整訓(xùn)練。具體每章需要什么依賴、什么硬件直接翻 學(xué)習(xí)與環(huán)境準(zhǔn)備有一張分章對(duì)照表別自己猜。核心功能拆解四條學(xué)習(xí)主線怎么走環(huán)境就緒后happy-llm 的內(nèi)容可以拆成四條主線你按興趣挑一條深入即可。從 Transformer 原理到 LLM 架構(gòu)第一~四章場(chǎng)景你能寫 Python但一打開大模型資料就分不清 Decoder-only 和 Encoder-Decoder 誰(shuí)是誰(shuí)。做法按 第一章 NLP 基礎(chǔ)概念 起步重點(diǎn)啃 第二章 Transformer 架構(gòu)——這一章附帶一份可直接運(yùn)行的手寫 Transformer 代碼 docs/chapter2/code/transformer.py注意力機(jī)制、多頭、殘差連接逐個(gè)模塊過一遍第三、四章再補(bǔ)齊預(yù)訓(xùn)練語(yǔ)言模型PLM即拿大量文本先學(xué)語(yǔ)言的模型和 LLM 訓(xùn)練策略。效果建立完整概念地圖后面看第五章手寫模型時(shí)每一行代碼都知道在干什么而不是對(duì)著RMSNorm發(fā)呆。手寫 LLaMA2 并預(yù)訓(xùn)練你的 215M 小模型第五章場(chǎng)景光調(diào) API 不踏實(shí)想知道一個(gè)大模型拆開到底長(zhǎng)什么樣。做法第五章是全項(xiàng)目最硬核的一章配套代碼在 docs/chapter5/code/。路徑很清晰先用k_model.py逐個(gè)搭出RMSNorm、GQA 注意力分組查詢注意力省顯存的注意力變體、MLP 和 Decoder Layer再用train_tokenizer.py訓(xùn)練一個(gè)自己的分詞器把文本切成模型能吃的數(shù)字 ID 的部件最后ddp_pretrain.py走預(yù)訓(xùn)練、ddp_sft_full.py走有監(jiān)督微調(diào)SFT即拿問答樣本教模型按指令說話。效果一個(gè) 215M 參數(shù)的模型完整跑通數(shù)據(jù) → 預(yù)訓(xùn)練 → 微調(diào) → 生成文本閉環(huán)。下面是預(yù)訓(xùn)練數(shù)據(jù)切分后的 token 分布微調(diào)階段用的 SFT 數(shù)據(jù)則是指令 回答的問答對(duì)切分后形態(tài)如下用 Transformers DeepSpeed 跑工業(yè)級(jí)訓(xùn)練第六章場(chǎng)景手寫實(shí)現(xiàn)能跑通但換成 1.5B 真實(shí)模型、想用多卡時(shí)手寫代碼就不好使了。做法第六章切到 Transformers 生態(tài)Hugging Face 的模型訓(xùn)練框架。初始化模型兩行搞定AutoConfig.from_pretrained()讀配置、AutoModelForCausalLM.from_pretrained()加載權(quán)重。多卡分布式不用手寫改 ds_config_zero2.json 里的 ZeRO 階段和bf16開關(guān)即可啟動(dòng)腳本 finetune.sh 已把deepspeed參數(shù)配好。6.3 節(jié)再補(bǔ)上 LoRA/QLoRA 高效微調(diào)——只訓(xùn)練少量低秩rank參數(shù)矩陣單卡也能微調(diào)大模型。效果從能跑升級(jí)到跑得快、跑得省完整流程參考 第六章正文搭建 RAG 與 Agent 應(yīng)用第七章場(chǎng)景模型訓(xùn)完了想讓它真的幫你查資料、調(diào)工具。做法RAG檢索增強(qiáng)生成讓模型先查外部文檔再回答部分直接跑 docs/chapter7/RAG/demo.py目錄里Embeddings.py、VectorBase.py把向量化和向量庫(kù)封裝好了Agent 部分看 docs/chapter7/Agent/core.py實(shí)現(xiàn)了工具調(diào)用循環(huán)web_demo.py能直接起一個(gè)網(wǎng)頁(yè)版交互界面。效果拿到一個(gè)能接外部知識(shí)庫(kù)、能調(diào)工具的完整應(yīng)用補(bǔ)全模型 → 產(chǎn)品這最后一段路高頻坑點(diǎn)速查訓(xùn)練前先把這些看完跑之前先花兩分鐘掃一遍這里能省你半天查 issue 的時(shí)間。Q為什么根目錄沒有統(tǒng)一的依賴文件A項(xiàng)目覆蓋原理實(shí)現(xiàn)到訓(xùn)練框架各章依賴差異大特意按章節(jié)拆分。記住一章一個(gè) venv第六章裝 docs/chapter6/code/requirements.txt 就夠了。Q顯存爆掉OOM怎么救A?? 按順序試減batch_size→ 縮短序列長(zhǎng)度 → 開 DeepSpeed ZeRO-2 bf16→ 開梯度檢查點(diǎn)用計(jì)算時(shí)間換顯存。Q模型和數(shù)據(jù)下載慢怎么辦A設(shè)環(huán)境變量HF_ENDPOINThttps://hf-mirror.com走鏡像huggingface-cli加--resume-download斷點(diǎn)續(xù)傳訓(xùn)練好的 215M 模型也可從 ModelScope 直接拉。Q拼接多模態(tài)或微調(diào)后 Loss 不降怎么查A先打印 1~2 條樣本確認(rèn)數(shù)據(jù)格式和 loss mask再看訓(xùn)練曲線里grad_norm是否收斂別急著懷疑模型結(jié)構(gòu)。Q沒有多卡 GPU 能學(xué)第六章嗎A能。先小樣本、單卡調(diào)通數(shù)據(jù)處理與訓(xùn)練腳本整體思路不受影響文檔明確支持這種姿勢(shì)。Qsh 腳本里的路徑跑不起來(lái)A?? 腳本里的autodl-tmp路徑和顯卡編號(hào)都是示例配置跑之前必須替換成你本地的真實(shí)路徑。用 SwanLabreport_toswanlab盯著 loss 和grad_norm曲線異常時(shí)截圖對(duì)比一下健康曲線定位快很多進(jìn)階與資源主線跑完接著看這三處四條主線跑完還有余力推薦按順序往下走多模態(tài)實(shí)戰(zhàn)Extra-Chapter/vlm-concatenation-finetune/README.md把 SmolVLM2 視覺模塊拼進(jìn) Qwen3 的拼接微調(diào)完整記錄含沐曦國(guó)產(chǎn) GPU 環(huán)境踩坑。后訓(xùn)練進(jìn)階6.4 偏好對(duì)齊RLHF、DPO、獎(jiǎng)勵(lì)模型的整體學(xué)習(xí)路線。貢獻(xiàn)入口看完有自己心得按 Extra-Chapter 的 PR 規(guī)范 提交你的博客筆記項(xiàng)目歡迎合入。? 到這里環(huán)境、四條主線、坑點(diǎn)清單都齊了。跑完第五到第七章你手上會(huì)多一個(gè)自己訓(xùn)出來(lái)的 215M 模型和一套可復(fù)用的訓(xùn)練流程??ㄗ〉牡胤诫S時(shí)翻 docs/ 正文或 issue 區(qū)Datawhale 社區(qū)都在那兒。【免費(fèi)下載鏈接】happy-llm 從零開始構(gòu)建大模型項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ha/happy-llm創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考