书生浦语笔记一

news2024/11/26 16:48:51

2023年6月,InternLM的第一代大模型正式发布。仅一个月后,该模型以及其全套工具链被开源。随后,在8月份,多模态语料库chat7B和lagent也被开源。而在接下来的9月份,InternLM20B的开源发布进一步加强了全线工具链的更新。最终,2024年1月17日,InternLM2也正式开源。

InternLM2提供了两种不同参数量级的模型,分别是7B(Billion)和20B。前者更轻量级,适用于一般性应用,而后者则能够支持更复杂的场景。

每个参数规格都包含三种不同的模型版本:

  • InternLM2-Base:基座模型,提供了基本的功能和性能。
  • InternLM2:在基座模型的基础上进行了多方面的增强。
  • InternLM2-Chat:在基座模型的基础上,通过SFT(Supervised Fine-Tuning,监督微调)和RLHF(基于人类反馈的强化学习)进行了人类对齐,专门针对对话交互场景进行了优化。

模型预训练方面的信息如下:

  • 数据集:

    • 书生·万卷1.0:包含2TB的多模态数据。
    • 书生·万卷CC:包含400GB的多源数据,质量高且覆盖长时间跨度。
  • 预训练框架:采用Intern-Train框架,支持从8卡到千卡的加速。开箱即用:只需修改配置文件,即可开始预训练。

  • 模型微调框架:使用Xtuner框架。

  • 增量续训:支持增量学习,能够在保持模型旧知识的条件下注入新知识。

  • 有监督微调:通过少量的领域知识进行微调,使模型更好地适应特定领域场景。

  • 智能体构建:采用Lagent框架,支持多种能力,包括react、reward和autogpt,并适配多种模型。简单易扩展:内置多模态工具箱AgentLego,便于扩展。

  • 模型评测:采用OpenCompass,在适配了100多个评测集的基础上进行循环评测,包括数据污染检查、模型推理接入、长文本能力评测和中英文双语主观评测。

  • 模型部署:使用LMDeploy进行部署。

  • 模型轻量化:支持4bit权重,以减小模型的大小。

  • 推理引擎:支持pytorch、turbomind以及并行优化。

  • 部署服务:采用openai-server和gradio。

模型预训练框架

InternEvo

  • 高效训练框架:InternEvo是一个专为InternLM2设计的高效训练框架,它支持大规模并行训练,包括数据、张量、序列和管道并行,以及Zero Redundancy Optimizer(ZeRO)技术,以优化内存使用和计算效率。
  • GPU资源高效利用:InternEvo通过减少通信规模和使用适应性分片技术,有效地降低了GPU间的通信成本,实现了在保持高吞吐量的同时,随着GPU数量增加,模型FLOPs利用率(MFU)保持稳定。
  • 适应性硬件管理:框架能够根据训练规模调整硬件资源,支持256,000 tokens的长序列训练,并通过内存管理技术如统一内存管理和内存池来减少碎片,确保在处理长文本时的内存效率。
  • 故障容忍性:针对GPU数据中心的挑战,InternEvo设计了故障容忍系统,包括实时备份和恢复机制,确保在硬件故障时能快速恢复训练,减少数据丢失。
  • 交互式训练:在RLHF阶段,InternEvo支持多模型的交互式训练,通过与Ray的集成,构建了一个灵活且可扩展的框架,支持不同模型执行引擎和算法设计,确保了训练过程的高效性。
  • Model Structure:InternLM2基于Transformer架构,但采用了LLaMA的设计改进,如使用RMSNormSwiGLU,以提高训练效率和性能。模型结构的标准化和兼容性设计使其与LLaMA等其他知名模型系列兼容,同时保持了高效性。

训练

资料中介绍了InternLM2的预训练过程,包括数据处理、模型结构和训练设置。

  1. 预训练数据
  • 文本数据:网页、论文、专利和书籍,经过标准化、过滤、格式化和安全检查,确保数据质量。
  • 代码数据:收集自GitHub等平台,通过统一格式化和质量筛选,确保编程语言相关数据的高质量。
  • 长文本数据:针对长文本数据,进行长度筛选、统计分析和复杂性过滤,以提高数据质量并减少冗余。

分词(Tokenization):选择GPT-4的tokenization方法,结合中文和编程语言的特性,构建了容量为100,256的词汇表。

超参数设置:包括模型的层数、维度、头数等,以及学习率、优化器类型和衰减策略。见下图

预训练的不同阶段

  • 4k 文本训练:主要阶段,使用不超过4096字节的文本进行训练。
  • 长文本训练:扩展到32,000字节的上下文,采用GQA技术和长序列处理技术。
  • 特定能力提升训练:针对特定能力的增强训练,使用精心筛选的高质量数据集。

对齐

InternLM2模型如何与人类观念靠近,使模型具备对世界知识有内在理解,对事物的偏好把握对齐人类

有监督微调(SFT,Supervised Fine-Tuning): 使用1000万高质量的指令数据进行微调,以确保其能够理解和执行各种任务,如对话、NLP任务和数学问题。

COOL RLHF

Conditional OnLine RLHF 

  • 条件奖励模型(Conditional Reward Model):引入了条件系统提示,允许模型根据特定条件动态调整对不同偏好(如帮助性和无害性)的关注,解决了偏好冲突问题
  • 在线人类反馈强化学习(Online RLHF)使用最近邻策略优化(PPO,Proximal Policy Optimization)使模型与条件奖励模型得到人类偏好对齐,其通过快速路径(快速修复奖励模型)和慢速路径(长期奖励模型优化)两者的结合,提高了模型的稳定性和可靠性。

PPO训练细节

  1. 长文本微调: 在SFT和RLHF阶段继续使用长文本数据,确保模型在处理长序列任务时的性能。
  2. 工具增强
  • 通用工具调用:引入了“environment”角色,支持通用工具调用,如代码解释器和外部插件,以增强模型处理工具相关任务的能力。
  • 代码解释器:将Python代码解释器作为工具,与特定的指令格式结合,用于解决数学问题,如RICO(Reasoning Interleaved with Coding)策略,通过迭代式学习提高模型的数学问题解决能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1561132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

猜数游戏(Python)

一、实验要求: (1)在游戏开始时,随机生成一个1~100之间的整数。 (2)在游戏中,玩家有10次机会猜数。如果10次都没有猜中,则游戏失败;否则,游戏成功。 &…

Linux:查询类型的命令type

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 type命令是Linux中一个查询类型的命令,它可以查询name是alias别名、keyword关键字、function函数名、builtin内建命令名(这很有用)或…

Linux系统使用Docker部署MeterSphere并实现公网访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

20240401,ALOHA WORLD

C了&#xff0c;虽然练习C还有9题不会做&#xff0c;但是不先继续往下学&#xff0c;肯定就凉了 #include <iostream> int main() {if (__cplusplus 201703L)std::cout << "C17\n";else if (__cplusplus 201402L)std::cout << "C14\n"…

Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

C++ | Leetcode C++题解之第2题两数相加

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {map<int,int> a;//提供一对一的hashvector<int> b(2,-1);//用来承载结果&#xff0c;初始化一个大小为2&#xff0c;值为-1的容…

Machine Learning机器学习之文本分析的知识图谱(详细讲解)

目录 前言 历史&#xff1a; 概念思想&#xff1a; 知识图谱主要发展历程&#xff1a; 知识图谱重要组成部份和特征&#xff1a; 知识图谱案列&#xff08;关于学院、课程、学生&#xff09;&#xff1a; 一、知识图谱的存储 二、知识图谱的构建过程 数据层&#xff1a; 模式…

【docker】Dockerfile自定义镜像

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;中间件 ⛺️稳中求进&#xff0c;晒太阳 1.Dockerfile自定义镜像 常见的镜像在DockerHub就能找到&#xff0c;但是我们自己写的项目就必须自己构建镜像了。 而要自定义镜像&#xff0c;就…

用系统观念打造智慧公厕,引领智慧城市的发展

智慧公厕&#xff0c;作为智慧城市建设的一部分&#xff0c;具有重要意义。在高度发达的科技条件下&#xff0c;如何打造高质量的智慧公厕是一个值得思考的问题。本文将以智慧公厕源头实力厂家广州中期科技有限公司&#xff0c;大量精品案例项目现场实景实图实例&#xff0c;探…

【MySQL】数据库--基础

目录 一、概念&#xff1a; 二、连接数据库[Dos命令] 三、SQL 语句分类 一、概念&#xff1a; MySQL 是一种开源的关系数据库管理系统 (RDBMS)数据库-表的本质仍然是文件 二、连接数据库[Dos命令] mysql -h&#xff1a;mysql服务的主机&#xff08;默认连接到本机服务器&…

XZ Utilѕ⼯具库恶意后⻔植⼊漏洞(CVE-2024-3094)排查处理

一、漏洞描述 近⽇&#xff0c;互联⽹安全监测发现XZ Utilѕ ⼯具库恶意后⻔植⼊漏洞(CVE-2024-3094)&#xff0c;3⽉29⽇有开发⼈员发帖称发现了涉及XZ包中的供应链攻击&#xff0c;进⼀步溯源发现SSH使⽤的上游liblzma库被植⼊了后⻔代码&#xff0c;主要存在于 5.6.0 到5.6…

Linux 环境安装 Elasticsearch 8.X

安装前说明 首先确定操作系统&#xff0c;在Linux发行版上执行uname -a查看具体系统。我是Ubuntu系统&#xff0c;可以用直接用apt-get安装&#xff0c;也可以下载tar.gz包手动安装。使用apt-get安装更方便快速&#xff0c;但不同的文件会被安装到不同的目录&#xff0c;不方便…

金额转换.java

题目&#xff1a; 奖金额转换成大写的七位数 分析&#xff1a;获取每一位数字&#xff0c;将数字转为大写的&#xff0c;数字前面添零&#xff0c;补成七位数&#xff0c;最后依次拼接单位 package text; import java.util.Scanner; public class MoneySwitch {public static v…

Qt实现Kermit协议(一)

1 概述 Kermit文件运输协议提供了一条从大型计算机下载文件到微机的途径。它已被用于进行公用数据传输。 其特性如下: Kermit文件运输协议是一个半双工的通信协议。它支持7位ASCII字符。数据以可多达96字节长度的可变长度的分组形式传输。对每个被传送分组需要一个确认。Kerm…

排序——选择排序(直接选择排序和堆排)

本专栏和大家分享关于排序的算法,其中有插入排&#xff08;直接插入排序和希尔排序&#xff09;、选择排序&#xff08;直接选择排序和堆排&#xff09;、交换排序&#xff08;冒泡排序和快速排序&#xff09;、归并排序以及其他非基于比较的排序 本文与大家分享选择排序 目录 …

多微信聚合聊天神器,让你的社交更高效!

对于那些拥有多个微信号的用户来说&#xff0c;频繁地在不同微信号和设备之间切换既麻烦又容易搞混。这时候&#xff0c;一款多微信聚合聊天神器——微信管理系统应运而生&#xff0c;为我们带来了极大的便利与高效。 下面一起来看看它都有哪些功能吧&#xff01; 1、多微信同…

webpack项目打包console git分支、打包时间等信息 exec

相关链接 MDN toLocaleString child_process Node.js strftime 格式 代码 buildinfo.js const { execSync, exec } require("child_process"); // exec: 在 Windows 执行 bat 和 cmd 脚本// execSync 同步 // exec 异步// exec 使用方法 // exec(git show -s,…

什么是递归与示例

什么是递归&#xff1a; 递归是将大问题拆成相同的若干小问题&#xff0c;利用自己调用自己的方式解决问题。 递归的重点就是如何将问题拆解&#xff0c;并在什么样的条件跳出自我循环&#xff0c;这是递归的难点。 如何理解递归&#xff1a; 示例&#xff1a;已知有五个人…

Lazarus 4 Android 环境搭建

一、下载相关文件 最关键的就是这两个文件&#xff0c;其他的JDK、NDK、Java环境另说。 这里要注意&#xff0c;gradle版本必须小于7&#xff0c;不然无法使用。 二、IDE内部设置 安装完成laz4A之后 可能会报错&#xff0c;无需理会&#xff0c;启动IDE即可。 安装卸载软件…

首个基于SSM-Transformer混合架构,开源商业大模型Jamba

3月29日&#xff0c;知名AI研究实验室AI21在官网开源了&#xff0c;首个基于SSM-Transformer混合架构的商业大模型——Jamba。 目前&#xff0c;ChatGPT、Stable Difusion 、Lyria等产品使用的皆是Transformer架构&#xff0c;虽然在捕捉序列内长距离依赖关系、泛化能力、特征…