DeepSeek 爆了,普通人如何3小時(shí)完全從0訓(xùn)練自己的大模型 原創(chuàng)
這個(gè)春節(jié),DeepSeek 實(shí)在太火了,無須贅述。
今天要向大家推薦一個(gè)極具實(shí)用價(jià)值的開源項(xiàng)目——MiniMind。這個(gè)項(xiàng)目使得我們只需利用普通電腦,就能在短短3小時(shí)內(nèi)打造出一個(gè)精簡(jiǎn)版的 DeepSeek!
為了避免誤解,特別說明一下,“最快3小時(shí)”是基于你的硬件配置優(yōu)于我本人的情況下。具體的硬件規(guī)格要求將在下文中詳細(xì)說明。
1、為什么這個(gè)項(xiàng)目這么特別?
市場(chǎng)上的大語言模型(LLM)通常擁有上百億參數(shù),其訓(xùn)練成本相當(dāng)高昂。對(duì)于想要學(xué)習(xí)和研究的人來說,這樣的硬件要求往往成為一道難以逾越的障礙。然而,MiniMind 憑借其巧妙的設(shè)計(jì),大幅縮減了模型參數(shù),使得個(gè)人開發(fā)者也有能力自行訓(xùn)練 AI 大模型!
MiniMind 的最小版本僅有 26MB(大約是 GPT-3的1/7000),這意味著即便是普通的游戲顯卡也能輕松駕馭。該項(xiàng)目提供了全面的訓(xùn)練步驟:
第一、基礎(chǔ)語言能力訓(xùn)練(預(yù)訓(xùn)練階段)
第二、對(duì)話能力訓(xùn)練(指令微調(diào)階段)
第三、快速適應(yīng)新任務(wù)(LoRA 微調(diào)技術(shù))
第四、優(yōu)化回答質(zhì)量(DPO 偏好對(duì)齊方法)
2、實(shí)際使用場(chǎng)景
場(chǎng)景一、定制化 AI 助手打造
您能夠培養(yǎng)出專注于特定領(lǐng)域的 AI 助手,例如:
- 客服機(jī)器人:基于企業(yè)產(chǎn)品知識(shí)庫(kù)進(jìn)行訓(xùn)練。
- 教育輔導(dǎo)機(jī)器人:專注于特定學(xué)科的習(xí)題解答和講解。
- 行業(yè)專家助手:為特定行業(yè)提供專業(yè)的咨詢服務(wù)。?
場(chǎng)景二、技術(shù)探索與學(xué)術(shù)研究
- 深入理解大型語言模型的工作機(jī)制。
- 實(shí)際操作不同的訓(xùn)練技術(shù)。
- 探索模型的優(yōu)化策略和改進(jìn)方法。?
場(chǎng)景三、產(chǎn)品概念驗(yàn)證
- 快速實(shí)現(xiàn) AI 產(chǎn)品想法的原型開發(fā)。
- 在不同應(yīng)用場(chǎng)景中測(cè)試產(chǎn)品的性能。
- 收集用戶反饋,以促進(jìn)產(chǎn)品的持續(xù)迭代和優(yōu)化。
3、技術(shù)架構(gòu)亮點(diǎn)剖析
第一、精簡(jiǎn)架構(gòu)設(shè)計(jì)
- 基于 Transformer 的解碼器單結(jié)構(gòu)(Decoder-Only)。
- 利用 RMSNorm 進(jìn)行預(yù)標(biāo)準(zhǔn)化,以增強(qiáng)模型表現(xiàn)。
- 引入旋轉(zhuǎn)位置編碼技術(shù),有效處理長(zhǎng)篇文本。?
第二、創(chuàng)新性地推出專家混合模型版本(MoE)。
- 提供4個(gè)26MB的混合專家模型,以實(shí)現(xiàn)能力的提升。
- 在保持低計(jì)算資源消耗的同時(shí),實(shí)現(xiàn)專家間的有效分工。?
第三、靈活多樣的部署選擇
- 支持在單卡或多卡上進(jìn)行訓(xùn)練。?
- 與主流深度學(xué)習(xí)框架無縫兼容。?
- 提供便捷的網(wǎng)頁(yè)交互界面。
4、定制自己的大模型上手有多簡(jiǎn)單?
第一、克隆項(xiàng)目代碼
git clone https://github.com/jingyaogong/minimind.git
cd minimind
第二、環(huán)境安裝
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 測(cè)試torch是否可用cuda
import torch
print(torch.cuda.is_available())
如果不可用,請(qǐng)自行去 torch_stable 下載 whl 文件安裝。參考鏈接如下:
??https://blog.csdn.net/weixin_45456738/article/details/141029610??
第三、環(huán)境配置
CPU: Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
內(nèi)存:128 GB
顯卡:NVIDIA GeForce RTX 3090(24GB) * 2
環(huán)境:python 3.9 + Torch 2.1.2 + DDP單機(jī)多卡訓(xùn)練
- Ubuntu == 20.04
- Python == 3.9
- Pytorch == 2.1.2
- CUDA == 12.2
- requirements.txt(本項(xiàng)目環(huán)境依賴)
第四、自己的訓(xùn)練數(shù)據(jù)集
- 下載數(shù)據(jù)集放到?
?./dataset?
?目錄下 - ?
?python data_process.py?
? 命令處理數(shù)據(jù)集,例如 pretrain 數(shù)據(jù)提前進(jìn)行 token-encoder、sft 數(shù)據(jù)集抽離 qa 到 csv 文件 - 在?
?./model/LMConfig.py?
? 中調(diào)整 model 的參數(shù)配置
這里僅需調(diào)整 dim 和 n_layers 和 use_moe 參數(shù),分別是?
?(512+8)?
??或??(768+16)?
??,對(duì)應(yīng)于??minimind-v1-small?
??和??minimind-v1?
?
- ?
?python 1-pretrain.py?
?? 執(zhí)行預(yù)訓(xùn)練,得到??pretrain_*.pth?
? 作為預(yù)訓(xùn)練的輸出權(quán)重 - ?
?python 3-full_sft.py?
?? 執(zhí)行指令微調(diào),得到??full_sft_*.pth?
? 作為指令微調(diào)的輸出權(quán)重 - ?
?python 4-lora_sft.py?
? 執(zhí)行 lora 微調(diào)(非必須) - ?
?python 5-dpo_train.py?
? 執(zhí)行 DPO 人類偏好強(qiáng)化學(xué)習(xí)對(duì)齊(非必須)
5、總結(jié)
MiniMind 項(xiàng)目正在快速發(fā)展,目前已支持:
- 文本對(duì)話:流暢的中英文交互
- 視覺理解:可以理解和描述圖像
- 知識(shí)更新:持續(xù)優(yōu)化訓(xùn)練數(shù)據(jù)
- 性能提升:不斷改進(jìn)模型結(jié)構(gòu)
MiniMind 降低了 AI 開發(fā)的門檻,讓更多人能夠參與到大語言模型的探索中來。無論你是:
- 想入門 AI 的開發(fā)者
- 需要定制化 AI 助手的企業(yè)
- 對(duì)語言模型感興趣的研究者
這個(gè)項(xiàng)目都能幫你快速起步,并在實(shí)踐中不斷成長(zhǎng)。項(xiàng)目完全開源,想要了解更多 MiniMind 項(xiàng)目信息的讀者可以查看項(xiàng)目 Github 地址:
??https://github.c??om/jingyaogong/minimind
本文轉(zhuǎn)載自公眾號(hào)玄姐聊AGI 作者:玄姐
