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