【低配置電腦預訓練minimind的實踐】

低配置電腦預訓練minimind的實踐

概要

minimind是一個輕量級的LLM大語言模型,項目的初衷是拉低LLM的學習門檻,讓每個人都能從理解每一行代碼開始, 從零開始親手訓練一個極小的語言模型。對于很多初學者而言,電腦配置僅能夠滿足日常工作,為了學習大預言模型,特別是在入門和學習基本原理階段,用低配置的電腦能不能進行minimind模型的預訓練呢?答案是可以,下面筆者一步一步來展示預訓練的過程。

minimind簡介

minimind的github地址是GitHub - jinyaogong/minimind,目前的版本V2在V1版的基礎上進行了很大的更新:

  • 代碼幾乎全部重構,使用更簡潔明了的統一結構。
  • 免去數據預處理步驟。數據集更換為jsonl格式。
  • 提供模型遷移到私有數據集的訓練方案(醫療模型、自我認知樣例)。
  • 精簡預訓練數據集,并大幅提升預訓練數據質量。
  • MiniMind2具備一定的英文能力!

項目包含:

  • MiniMind-LLM結構的全部代碼(Dense+MoE模型)。
  • 包含Tokenizer分詞器詳細訓練代碼。
  • 包含Pretrain、SFT、LoRA、RLHF-DPO、模型蒸餾的全過程訓練代碼。
  • 收集、蒸餾、整理并清洗去重所有階段的高質量數據集,且全部開源。
  • 從0實現預訓練、指令微調、LoRA、DPO強化學習,白盒模型蒸餾。關鍵算法幾乎不依賴第三方封裝的框架,且全部開源。
  • 實現Openai-Api協議的極簡服務端,便于集成到第三方ChatUI使用(FastGPT、Open-WebUI等)。
  • 基于streamlit實現最簡聊天WebUI前端。
  • 復現(蒸餾/RL)大型推理模型DeepSeek-R1的MiniMind-Reason模型,數據+模型全部開源!

項目已完成的預訓練模型下載地址為:預訓練模型下載。建議下載pretrain_512.pth,以便和自己訓練的模型進行對比。

預訓練準備

  1. 我的電腦配置:

單機單卡
操作系統:windows
顯卡:NVIDIA GeForce GTX 1050 Ti (專用GPU為4G)

  1. 項目下載
git clone https://github.com/jingyaogong/minimind.git
  1. 環境準備
    首先根據自己電腦的硬件配置,選擇合適的torch和cuda版本,設置訓練環境。筆者用的是conda。
conda activate pt212

主要庫版本如下:

python: 3.9.21
torch: 2.1.2
cuda: 11.8

進入項目目錄,首先編輯requirements.txt文件,將其中已安裝的torch版本號修改為和已安裝庫的版本一致,然后再安裝其他庫。

cd d:\minimind
pip install -r requirements.txt
  1. 開始訓練
    1)數據準備:
    從minimind_dataset下載鏈接下載數據文件,保存到項目的/dataset目錄下。筆者由于電腦配置低,考慮訓練的時間,下載了pretrain_hq.jsonl和sft_mini_512.jsonl。
    2)預訓練
    預訓練程序為train_pretrain.py, 訓練的參數設置比較多,如下:
    parser.add_argument("--out_dir", type=str, default="out")parser.add_argument("--epochs", type=int, default=1)parser.add_argument("--batch_size", type=int, default=32)parser.add_argument("--learning_rate", type=float, default=5e-4)parser.add_argument("--device", type=str, default="cuda:0" if torch.cuda.is_available() else "cpu")parser.add_argument("--dtype", type=str, default="bfloat16")parser.add_argument("--use_wandb", action="store_true")parser.add_argument("--wandb_project", type=str, default="MiniMind-Pretrain")parser.add_argument("--num_workers", type=int, default=1)parser.add_argument("--ddp", action="store_true") parser.add_argument("--accumulation_steps", type=int, default=8)parser.add_argument("--grad_clip", type=float, default=1.0)parser.add_argument("--warmup_iters", type=int, default=0)parser.add_argument("--log_interval", type=int, default=100)parser.add_argument("--save_interval", type=int, default=100)parser.add_argument('--local_rank', type=int, default=-1)parser.add_argument('--dim', default=512, type=int)parser.add_argument('--n_layers', default=8, type=int)parser.add_argument('--max_seq_len', default=512, type=int)parser.add_argument('--use_moe', default=False, type=bool)parser.add_argument("--data_path", type=str, default="./dataset/pretrain_hq.jsonl")

經實踐,首次訓練有錯誤提示,因此需對訓練參數做如下修改:

    #parser.add_argument("--ddp", action="store_true") # 注釋掉此行parser.add_argument("--ddp", type=lambda x: x.lower() == 'true', default=False) # 增加此行

以上修改并不一定是必須的,需要根據問題具體調整。對于其他參數的默認值,要根據電腦的配置進行修改,對于筆者這樣配置比較低的情況,建議如下:

python train_pretrain.py --epochs=2 --batch_size=8 --ddp=False --num_workers=0

歷經大約兩天半的時間,終于完成預訓練,在項目的out目錄下生成了pretrain_512.pth,文件大小為98.56,和項目官網預訓練的文件大小一致。

  1. 預訓練成果測試
    項目目錄下運行:
python eval_model.py --model_mode=0

手動輸入進行測試:

👶: 馬拉松運動
🤖?: 以其令人驚嘆的魅力而聞名于世。它不僅是一項個人舉重運動,更是一項體育運動,需要鍛煉身體、協調力和靈活性。這項運動不僅能夠增強體
質和體力,還能夠鍛煉身體協調性和協調能力。在馬拉松運動中,人們通常會運用體重控制,保持自己的體型和健康狀況,從而達到保持最佳效果。此
外,馬拉松運動還可以增強心肺功能,鍛煉肌肉和協調能力,使體能更加強大,從而提高體能。
基于以上這段文本內容回答:馬拉松運動在馬拉松運動中起到了什么作用?馬拉松運動中有很多重要的作用。首先,它可以增強身體的力量和耐力,讓
人們在日常生活中更加強健。其次,它可以增強體力,有助于減少體脂肪,降低血壓和心臟病等疾病的風險。此外,馬拉松運動還可以幫助人們鍛煉身
體協調性和靈活性,從而提高體能和耐力。此外,馬拉松運動還可以提高心肺功能,鍛煉肌肉和協調能力,增強肌肉和協調能力,同時還能增強身體的
協調能力,使體能更加強大。總之,馬拉松運動是一項非常具有挑戰性的運動,它可以為人們帶來很多好處,同時也能夠提高人們的身體素質。總之,
馬拉松運動在馬拉松運動中扮演著非常重要的角色。👶: 漢密爾頓原理
🤖?: 研究中提出的理論定理和反轉是漢密爾頓方程式。其中,推導和實驗是最基本的定理。它表明在解決一個問題時,需要使用同樣的公式。在實驗
中,我們使用不同的材料來表示方程式。例如,我們會使用“C”表示。這些材料用于描述物質的結構,例如牛頓的萬有引力定律。但是,這些定理在某
些情況下可能會適用。
基于以上這段文本內容回答:什么是牛頓第二定律?牛頓第二定律是描述物體運動狀態的定律。它解釋了動力學中物體運動的規律,并提供了一些實際
可行的實例。在實驗中,我們使用不同的材料來描述物質的結構,例如牛頓的萬有引力定律。在物理學中,牛頓第二定律描述了物體的運動狀態,即物
體所受的合力。它提供了一些實際可行的實例,如牛頓的萬有引力定律。牛頓第二定律描述了物體的運動狀態,即物體所受的合力為1。在物理學中,
牛頓第二定律描述了物體運動狀態的定律。牛頓第二定律描述了物體的運動狀態,即物體所受到的合力為1。牛頓第二定律可以應用于物理學中,例如
牛頓的萬有引力定律。牛頓第二定律是描述物體運動狀態的定律,例如牛頓的萬有引力定律。牛頓第二定律是描述物體運動狀態的定律,例如牛頓的萬
有引力定律。👶: 特朗普
🤖?: 斐特朗普在1989年的美國總統選舉中表現出色,直到2009年開始拜登成為美國第46任總統。 他是美國歷史上第46任總統。 他被認為是民主黨的
創始人和首席執行官。 他曾在奧巴馬選舉中擔任總統,并在20世紀60年代結束了他成為美國第46任總統。 他是美國第一任總統,擔任總統的職位。特
朗普是美國歷史上第46任總統。特朗普是美國歷史上第46任總統,擔任總統的職位。他曾在奧巴馬選舉中擔任總統,并在20世紀60年代結束了他成為美
國第46任總統。特朗普是美國歷史上第46任總統。他被認為是民主黨的創始人和首席執行官。他曾在奧巴馬選舉中擔任總統,并在20世紀60年代結束了
他成為美國第46任總統。特朗普曾在奧巴馬選舉中擔任總統,并在20世紀60年代結束他成為美國第46任總統。特朗普是美國歷史上第46任總統,擔任總
統。特朗普是美國歷史上第46任總統。他擔任總統的職位。特朗普是美國歷史上第46任總統。特朗普是美國歷史上第46任總統。特朗普是美國歷史上第
46任總統。特朗普是美國歷史上第46任總統。特朗普是美國歷史上第46任總統。特朗普是美國歷史上第46任總統。特朗普是美國歷史上第46任總統。

從測試的效果看,模型具備了初步的能力,能根據學習到的知識進行基本合理的輸出。以上是筆者在低配置電腦下對于minimind的初步實踐,后續將進行其他的訓練嘗試,希望能給像筆者一樣想對AI大模型了解的人提供幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78024.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78024.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78024.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker部署Ollama并簡單調用模型

Ollama簡介 Ollama 是一個開源的大型語言模型(LLM)平臺,旨在讓用戶能夠輕松地在本地運行、管理和與大型語言模型進行交互。 Ollama 提供了一個簡單的方式來加載和使用各種預訓練的語言模型,支持文本生成、翻譯、代碼編寫、問答等…

Redis安裝及入門應用

應用資料:https://download.csdn.net/download/ly1h1/90685065 1.獲取文件,并在該文件下執行cmd 2.輸入redis-server-lucifer.exe redis.windows.conf,即可運行redis 3.安裝redis客戶端軟件 4.安裝后運行客戶端軟件,輸入鏈接地址…

《重塑AI應用架構》系列: Serverless與MCP融合創新,構建AI應用全新智能中樞

在人工智能飛速發展的今天,數據孤島和工具碎片化問題一直是阻礙AI應用高效發展的兩大難題。由于缺乏統一的標準,AI應用難以無縫地獲取和充分利用數據價值。 為了解決這些問題,2024年AI領域提出了MCP(Model Context Protocol模型上…

從入門到精通【MySQL】視圖與用戶權限管理

文章目錄 📕1. 視圖??1.1 視圖的基本概念??1.2 試圖的基本操作🔖1.2.1 創建視圖🔖1.2.2 使用視圖🔖1.2.3 修改數據🔖1.2.4 刪除視圖 ??1.3 視圖的優點 📕2. 用戶與權限管理??2.1 用戶🔖…

輸入捕獲模式測頻率

前提工作: PA6、PA0通過跳線相連,PA6測試PA0的輸出頻率 本來只有下列函數,改變占空比 但是我們需要測試頻率,需要動態改變頻率。 void PWM_SetCompare1(uint16_t Compare) {TIM_SetCompare1(TIM2, Compare); //設置CCR1的值 }…

通付盾入選蘇州市網絡和數據安全免費體驗目錄,引領企業安全能力躍升

近日,蘇州市網絡安全主管部門正式發布《蘇州市網絡和數據安全免費體驗產品和服務目錄》,通付盾憑借其在數據安全、區塊鏈、AI領域的創新實踐和前沿技術實力,成功入選該目錄。 作為蘇州市網絡安全技術支撐單位,通付盾將通過 “免費…

AI日報 - 2025年04月25日

🌟 今日概覽(60秒速覽) ▎🤖 AGI突破 | OpenAI o3模型展現行動能力,英國發布RepliBench評估AI自主復制風險,DeepMind CEO擔憂AGI協調挑戰。 模型能力向行動和自主性演進,安全與協調成為焦點。 ▎💼 商業動向…

DeepSeek開源引爆AI Agent革命:應用生態迎來“安卓時刻”

開源低成本:AI應用開發進入“全民時代” 2025年初,中國AI領域迎來里程碑事件——DeepSeek開源模型的橫空出世,迅速在全球開發者社區掀起熱潮。其R1和V3模型以超低API成本(僅為GPT-4o的2%-10%)和本地化部署能力&#x…

CDGP|大模型賦能數據治理:實踐案例與深度剖析

隨著大數據技術的飛速發展,數據規模呈爆炸式增長,數據來源也日趨多樣化。在這個背景下,大模型,即具有數十億甚至上百億參數的深度學習模型,逐漸成為數據處理和分析的重要工具。大模型具備處理多任務、理解復雜語言模式…

Ubuntu 一站式部署 RabbitMQ 4 并“徹底”遷移數據目錄的終極實踐

1 安裝前準備 sudo apt update -y sudo apt install -y curl gnupg apt-transport-https lsb-release jq若計劃將數據放到新磁盤(如 /dev/nvme0n1p1): sudo mkfs.xfs /dev/nvme0n1p1 sudo mkdir /data echo /dev/nvme0n1p1 /data xfs defau…

5.2.3 WPF 中 XAML 文件 Converter 使用介紹

Converter(轉換器)在 WPF 數據綁定中扮演著重要角色,用于在源數據和目標屬性之間進行值轉換 舉例來說:我想用一個bool量來控制一個背景,為true時,顯示紅色;為false時背景用默認顏色。因此 Backg…

MySQL 8 自動安裝腳本(CentOS-7 系統)

文章目錄 一、MySQL 8 自動安裝腳本腳本說明📌 使用腳本前提條件1. 操作系統2. 用戶權限3. 網絡要求 📌 腳本的主要功能1. 環境檢查2. MySQL 自動安裝3. 自動配置 MySQL4. 防火墻配置5. 驗證與輸出 📌 適用場景 二、執行sh腳本1. 給予腳本執行…

Python跨平臺桌面應用程序開發

引言 在當今軟件開發領域,跨平臺應用程序開發變得越來越重要。用戶希望無論使用Windows、macOS還是Linux系統,都能獲得一致的應用體驗。Python作為一種高級編程語言,憑借其簡潔的語法和豐富的庫生態系統,成為了跨平臺桌面應用程序…

使用 Docker 安裝 SQL Server 2022 并解決 Navicat 連接問題

在使用 Docker 安裝 SQL Server 時,很多人可能遇到過無法通過 Navicat 等數據庫客戶端連接到容器的情況。尤其是嘗試使用 mcr.microsoft.com/mssql/server:2022-latest 鏡像時,可能會發現 Navicat一直轉圈,無法連接到數據庫。在這篇博客中&am…

2025最新軟件測試面試八股文(答案+文檔+視頻講解)

1、你的測試職業發展是什么? 測試經驗越多,測試能力越高。所以我的職業發展是需要時間積累的,一步步向著高級測試工程師奔去。而且我也有初步的職業規劃,前3年積累測試經驗,按如何做好測試工程師的要點去要求自己&…

理解計算機系統_網絡編程(2)

前言 以<深入理解計算機系統>(以下稱“本書”)內容為基礎&#xff0c;對程序的整個過程進行梳理。本書內容對整個計算機系統做了系統性導引,每部分內容都是單獨的一門課.學習深度根據自己需要來定 引入 接續上一篇理解計算機系統_網絡編程(1)-CSDN博客 國際互聯…

【盈達科技】GEO(生成式引擎優化)底層邏輯

??一、GEO的現狀?? ??技術快速迭代?? 生成式AI&#xff08;如ChatGPT、Claude、Google SGE&#xff09;正在成為用戶獲取信息的核心入口&#xff0c;傳統搜索引擎的流量被分流。主流平臺如Google推出“生成式搜索體驗&#xff08;SGE&#xff09;”&#xff0c;Bing整合…

VS Code 智能代理模式:重塑開發體驗

在編程領域&#xff0c;效率與精準度無疑是開發者們永恒的追求。而如今&#xff0c;VS Code 推出的智能代理模式&#xff08;Agent Mode&#xff09;&#xff0c;正以前所未有的方式&#xff0c;徹底顛覆了傳統開發流程&#xff0c;為程序員們帶來了一場前所未有的效率革命。本…

【回眸】Aurix TC397 IST 以太網 UDP 相關開發

前言 關于移植IST功能至 Infineon TC397上主要涉及到UDP發送報文及接收。IST是安全診斷相關的工作 Nvidia IST介紹 Orin系列芯片會提供一種機制來檢測由系統內測&#xff08;IST&#xff09;所產生的永久的故障&#xff0c;IST 應該在 Orin-x 功能安全系統中使用期間被啟動。…

Mediamtx與FFmpeg遠程與本地推拉流使用

1.本地推拉流 啟服 推流 ffmpeg -re -stream_loop -1 -i ./DJI_0463.MP4 -s 1280x720 -an -c:v h264 -b:v 2000k -maxrate 2500k -minrate 1500k -bufsize 3000k -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 拉流 ffplay -rtsp_transport tcp rtsp://43.136.…