书生浦语笔记一

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)策略,通过迭代式学习提高模型的数学问题解决能力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《剑指 Offer》专项突破版 - 面试题 98、99 和 100 : 和动态规划相关的矩阵路径问题(C++ 实现)

目录 前言 面试题 98 : 路径的数目 面试题 99 : 最小路径之和 面试题 100 : 三角形中最小路径之和 前言 矩阵路径是一类常见的可以用动态规划来解决的问题。这类问题通常输入的是一个二维的格子,一个机器人按照一定的规则从格子的某个位置走到另一个位置&#…

软件杯 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0…

Java 面试宝典:请说下你对 Netty 中Reactor 模式的理解

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站:https://skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 回答 Reactor 模式是一种高效处理并发网络事件的设计模式&…

SQLite3进行数据库各项常用操作

目录 前言1、SQLite介绍2、通过SQLite创建一个数据库文件3、往数据库文件中插入数据4、数据库文件信息查询5、修改数据库中的内容6、删除数据库中的内容 前言 本文是通过轻量化数据库管理工具SQLite进行的基础操作和一些功能实现。 1、SQLite介绍 SQLite是一个广泛使用的嵌入…

GEE土地分类——基于遥感影像数据的不同作物的分类

简介 这里我们首先要更改原始代码的中的影像和研究区矢量的问题,这个为了防止我们计算的过程超限,建议先将我们的研究区影像和样本点先存在自己的assets中,然后导入到新的脚本中。然周本文就是对其进行影像进行归一化处理,然后进行样本点值提取至点,然后训练样本点,进行…

系统架构体系

一、单体架构 1.浏览器,DNS服务器(解析域名,转换为IP地址),一台计算机就相当于一个服务器(用端口号进行区分Tomcat(web服务),数据库服务) 2.本次架构解决…

3D转换1111

1.三维坐标系 1.3D位移: translate3d(x,y,z)  translform:translateX(100px):仅仅是在x轴上移动  translform:translateY(100px):仅仅是在Y轴上移动  translform:translateZ(100px):仅仅是在Z轴上移动(注意&#xff1…

HTTP/1.1 如何优化?(计算机网络)

有三种方法: 第一个思路是,通过缓存技术来避免发送 HTTP 请求。客户端收到第一个请求的响应后,可以将其缓存在本地磁盘,下次请求的时候,如果缓存没过期,就直接读取本地缓存的响应数据。如果缓存过期&#…

Uibot6.0 (RPA财务机器人师资培训第6天 )发票验真机器人案例实战

类似于小北的这篇博客:Uibot (RPA设计软件)Mage AI智能识别(发票识别)———课前材料五_uibot 添加mageai-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135591297?spm1001.2014.3001.5501训练网站:泓江…

122、内网安全——域信息收集应用网络凭据CS插件AdfindBloodHound

文章目录 理解域域信息搜集 理解域 假设有1000台计算机,运维人员需要为每一台计算机进行软件的安装、环境部署,实际上运维人员不可能亲自对每一台计算机进行软件的安装和环境部署。实际,将所有1000台计算机放入一个域中,域内有一…

简单爬虫,爬取某东某商品评论前十页

商品链接地址:【博世四坑5系 6x100x160】博世(BOSCH)四坑5系(1支装)圆柄两坑两槽混凝土钻头 6x100x160mm【行情 报价 价格 评测】-京东 首先抓包,用搜索框搜索评论,看评论在哪个包中 为了好看筛…

Python - 深度学习系列31 - ollama的搭建与使用

说明 做这个的主要目的是为了搭建Langchain的本地环境,使用LangChain让LLM具备调用自定义函数的功能。 内容 1 安装server 以下将ollama的安装方式,以及使用做一个简单的说明(记录)。之前对这个工具没有了解,只是从快速实践的…

【python】pip清华大学镜像

1、修改pip源为清华源: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple2、结果是自动给我创建了一个文件: 3、打开这个文件所在的文件夹: 4、打开文件: 5、如果不想指定清华的,就删掉…

微信小程序引导组件【添加到我的小程序】

微信小程序引导组件,点击按钮,弹窗引导用户【添加到我的小程序】 源代码 https://ext.dcloud.net.cn/plugin?id17303

算法学习——LeetCode力扣图论篇3(127. 单词接龙、463. 岛屿的周长、684. 冗余连接、685. 冗余连接 II)

算法学习——LeetCode力扣图论篇3 127. 单词接龙 127. 单词接龙 - 力扣(LeetCode) 描述 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> … -> sk: 每一对相…

动态内存管理-错题合集讲解

空指针的解应用操作(错误信息合集) 越界访问 首先我们上一个代码,看看这个的代码的问题 这个代码的问题显而易见 ,就是在循环里面,产生了越界访问的问题,这里你开辟了10个整形空间,但是从0-1…

爬虫的验证码处理

1.我们先进入chrome浏览器的审查页面找到input方法: 为了不少找到一个input,我们ctrlf的方法输入input来查找 看见我们有6个需要输入的参数。 除了上面几个的input参数,我们还需要获取验证码的图片,后续要将字母填入进去。 二.安…

XDMA windos 编译

1、先安装 Visual Studio 2019 2、Download the Windows Driver Kit (WDK) - Windows drivers | Microsoft Learn 以前的 WDK 版本和其他下载 - Windows 驱动程序 |Microsoft学习 注意版本:下载2004的版本 3、 选择使用10.0.19041.0 安装这个sdk. 先按vs2019 然后…

后端SpringBoot+Mybatis 查询订单数据库奇怪报错加一

排错过程: 看报错意思是SQL语句存在错误,然后使用图形化工具运行这个SQL语句 其实这里稍微细心想一下就能发现问题,但是当时没深入想,就觉得order表前加了数据库名字影响不大,所以感觉SQL语句是没问题的,然…

HarmonyOS实战开发-一次开发,多端部署-视频应用

介绍 随着智能设备类型的不断丰富,用户可以在不同的设备上享受同样的服务,但由于设备形态不尽相同,开发者往往需要针对具体设备修改或重构代码,以实现功能完整性和界面美观性的统一。OpenHarmony为开发者提供了“一次开发&#x…