【升級版】從零到一訓練一個 0.6B 的 MoE 大語言模型

前文:從零到一訓練一個 0.6B 的 MoE 大語言模型,本次升級完全重新從零開始重新訓練。主要升級如下:

  1. 替換預訓練數據集,使用序列猴子通用文本數據集進行預訓練。
  2. 使用更先進的訓練方法。
  3. 新增思考模式控制,可通過添加/think和/no think控制是否思考。
  4. 新增思考預算功能,可控制思考token長度。

效果展示

快速開始

  1. 確保本機已安裝python3
  2. clone或下載項目:https://github.com/qibin0506/Cortex
  3. 安裝依賴 pip3 install -r requirements.txt
  4. 下載checkpoint https://www.modelscope.cn/models/qibin0506/Cortex-V2/resolve/master/dpo.bin,并放置到項目根目錄
  5. 執行 python3 app.py運行項目,訪問鏈接http://0.0.0.0:8080/ 即可體驗

訓練細節

Cortex V2采用更加先進的訓練方式進行訓練,具體情況如下;

預訓練

預訓練過程采用兩階段訓練模式

階段1階段2
train_pretrain_stage0.pytrain_pretrain_stage1.py
上下文長度為512,在較短訓練文本上進行訓練采用YaRN技術將上下文擴展至2048,并在長文本序列上繼續訓練
后訓練

后訓練過程采用四階段訓練模式

階段1階段2階段3階段4
train_cot.pytrain_grpo.pytrain_mix.pytrain_dpo.py
在純COT數據集上進行SFT,讓模型原生支持思考模式采用GSPO技術,提升模式的邏輯思考能力使用COT和非COT混合數據集上進行SFT,讓模式支持思考控制和思考預算能力使用DPO進行對齊訓練

繼續訓練

本項目提供各個階段訓練完成后的checkpoint, 可根據自己需求選擇checkpoint繼續訓練。
checkpoint下載:https://www.modelscope.cn/models/qibin0506/Cortex-V2/files
訓練方式:

  1. 確定繼續訓練的階段,修改file_dataset.py中對應階段的FileDataset中的文件,然后使用smart_train進行訓練,例如重新進行dpo,則執行smart_train train_dpo.py
  2. 本項目GSPO階段是在4x5090進行訓練,其他階段都是在4x4090進行訓練,同時utils.py中的配置數據也是按照對應硬件配置確定,如有不同的訓練設備可自行修改utils.py進行適配。
  3. file_dataset.py文件用來管理數據集文件,可按需修改,數據集文件會自動下載,使用完成后會自動刪除,無需人工管理。
詳細介紹參考項目Github: https://github.com/qibin0506/Cortex

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

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

相關文章

51單片機-實現定時器模塊教程

本章概述思維導圖: 51單片機驅動定時器模塊 CPU時序簡介 CPU時序定義了CPU內部操作的時間節奏,以下從四個時序周期進行逐步解析; 1、振蕩周期 振蕩周期:CPU內部時鐘源產生的最小時間單位,由晶振或內部振蕩器決定&am…

7.Kotlin的日期類

以下是 Kotlin 中常用時間類(基于 java.time 包)的核心方法及使用示例,參考數組方法的表格形式,按類分類展示: 一、LocalDate(日期:年/月/日)方法簽名返回值說明示例now(): LocalDat…

【Big Data】Hive技術解析:大數據倉庫的SQL橋梁

Hive作為Apache頂級項目,是Hadoop生態系統中最具影響力的SQL查詢引擎,它解決了大數據處理與傳統SQL技能之間的鴻溝。Hive的核心價值在于將類SQL查詢語言HiveQL無縫轉換為分布式計算框架MapReduce的任務,使數據分析師能夠利用熟悉的SQL語法操作…

Ubuntu2204server系統安裝postgresql14并配置密碼遠程連接

前言: 最近因項目需要安裝postgresql14,系統是ubuntu2204server系統,安裝好后發現無法實現遠程連接,解決了之后在此記錄一下解決方法。 疑問: 什么情況下需要配置postgresql遠程連接? ①如果是postgresql和…

【嵌入式】【搜集】狀態機、狀態遷移圖及狀態模式材料

文章目錄狀態機狀態機狀態機定義與核心特點狀態機總結狀態遷移圖狀態遷移圖狀態遷移圖核心概念與要素狀態遷移圖常見錯誤與規避狀態遷移圖總結狀態模式狀態模式狀態模式核心概念與組成狀態模式核心價值與適用場景狀態模式優缺點分析進階優化技巧行為模式總結狀態機 狀態機 狀…

Java學習歷程14——制作一款五子棋游戲(4)

上次我們基本實現了五子棋游戲的功能,這次我們進行一些優化和添加一些便于用戶使用的功能。新增功能及優化一、復盤功能復盤功能就是指在下完一局棋后,我們可以通過復盤按鈕使本局棋的所有棋子重頭開始自動下一遍。分析得知,我們首先要保存以…

記錄一次el-table+sortablejs的拖拽bug

bug回顧出現bug的情況時 當編輯表格過于緊湊的時候 有些非必要編輯或需要一眼看到的數據 移動到了el-table-column typeexpand時 同事:怎么拖拽功能用不了了 ok開始檢查代碼 當原來是個簡單的編輯表格 不涉及展開和簡單拖拽時 不會出現問題 解決了 出現了展開行以后…

利用go sort.Sort()排序自定義切片

1 sort.Sort()簡介2 核心功能3 調用前提4 代碼示例 1 sort.Sort()簡介 Go語言中的sort.Sort函數是標準庫提供的通用排序接口 2 核心功能 核心功能支持多種類型進行快速排序 基礎類型支持?:內置Ints、Float64s、Strings等函數直接排序常見切片 自定義排序?&a…

Elasticsearch腦裂緊急處理與預防

在 Elasticsearch 中出現 網絡分區(Network Partition) 或 腦裂(Split-Brain) 導致兩個子集群各自選出 Master 的情況,是非常嚴重的問題。比如這個場景(20個節點分裂成兩個10節點的子集群,各自選…

華為網路設備學習-29(BGP協議 四)路由策略-實驗

示例 延伸-具體實驗1.代碼部分:基礎配置R1 [Huawei]int GigabitEthernet 0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 10.1.13.1 24[Huawei]int LoopBack 1 [Huawei-LoopBack1]ip address 172.16.1.1 24 [Huawei-LoopBack1]q [Huawei]int LoopBack 2 [Huawei-Lo…

500系列狀態碼與可能的場景

501 Not Implemented(未實現)HTTP 方法不支持客戶端發送了 PUT、DELETE、PATCH 請求但服務器只實現了 GET 和 POST協議功能不支持客戶端使用了 HTTP/2 的某些高級特性服務器只支持 HTTP/1.1,無法處理,返回 501API 接口未完成開發中…

大數據、hadoop、爬蟲、spark項目開發設計之基于數據挖掘的交通流量分析研究

大數據、hadoop、爬蟲、spark項目開發設計之基于數據挖掘的交通流量分析研究

Pytest項目_day20(log日志)

Log日志優點:記錄程序運行信息,方便定位問題python日志模塊logging,日志等級如下: DEBUGINFO(正常)WARNINGERROR(報錯)示例代碼如下:import logging import os.path impo…

elasticsearch中的分詞器配置及使用

一、什么是分詞器? 在 Elasticsearch(ES)中,分詞器(Analyzer) 是處理文本的核心組件,負責將原始文本轉換為可搜索的索引詞(Term)。它是文本分析過程的核心,直…

《Linux 網絡編程二:UDP 與 TCP 的差異、應用及問題應對》

一、UDP 與 TCP 對比表對比項UDPTCP連接方式無需建立連接有連接(三次握手建立,四次揮手斷開)傳輸可靠性盡最大努力交付,可能丟包安全可靠的數據傳輸機制面向對象面向數據包面向數據流傳輸模式一對一、一對多傳輸本質一對一&#x…

uniapp 頁面跳轉及字符串轉義

1. uniapp 頁面跳轉及字符串轉義 1.1. uniapp頁面跳轉方法 在uniapp中,頁面跳轉可以通過多種方式進行,包括但不限于路由跳轉和頁面間事件通信。 ??一. 路由跳轉 ??在uniapp中,路由跳轉是指通過改變頁面url的方式來跳轉到不同的頁面。uni-app提供了一套路由跳轉的API,包…

Vue中 this.$emit() 方法詳解, 幫助子組件向父組件傳遞事件

this.$emit()是 Vue.js 中一個很有用的方法,可以幫助子組件向父組件傳遞事件1、原理說明:在Vue中,this.$emit()方法用于觸發自定義事件。它是Vue實例的一個方法,可以在組件內部使用。使用 this.$emit() 方法,可以向父組件發送自定…

BUCK電路的環路補償

芯片的COMP腳是用來設計環路補償用的,它給芯片內部的誤差放大器的輸出和PWM控制器輸入做補償,如果環路補償設計得不好,會更容易引起環路的不穩定或振蕩,也可能導致輸出電壓異常。環路補償涉及三個指標:剪切頻率&#x…

Hyperledger Fabric官方中文教程-改進筆記(十六)-策略(policy)

本Fabric中文文檔專欄的閱讀前言:前言 文章目錄什么是策略為什么需要策略策略如何實現訪問控制列表 (ACLs)智能合約背書政策修改策略如何在 Fabric 中編寫策略Signature policiesImplicitMeta policies例子: 通道配置策略Organizations 部分Application部分Fabric 鏈…

Flutter性能優化完全指南:構建流暢應用的實用策略

Flutter性能優化完全指南:構建流暢應用的實用策略 探索從UI構建到內存管理的全方位優化技巧,打造如絲般順滑的Flutter體驗 引言 在跨平臺開發領域,Flutter以其出色的性能表現脫穎而出。然而,正如任何強大的框架一樣,不…