前文:从零到一训练一个 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以其出色的性能表现脱颖而出。然而,正如任何强大的框架一样,不…