【 书生·浦语大模型实战营】学习笔记(一):全链路开源体系介绍

在这里插入图片描述

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职相关(简历撰写技巧、面经资料与心得)多方面综合学习平台,强烈推荐AI小白及AI爱好者学习,性价比非常高!加入星球➡️点击链接

【 书生·浦语大模型实战营】学习笔记(一):全链路开源体系介绍

👨‍💻导读: 随着人工智能技术的不断发展,大模型成为发展通用人工智能的重要途径。书生·浦语大模型的全链路开源体系,使探索AI的无限可能,本文主要从书生·浦语大模型发展、分类、组成进行详细介绍,方便大家理解,如有错误请指正,欢迎学习互相交流。

在这里插入图片描述

一、书生浦语大模型开源历程

在这里插入图片描述

  • 2023年6月7日InternLM千亿参数语言大模型发布。
  • 2023年7月6日,InternLM千亿参数大模型全面升级,支持8K语境、26种语言,并全面开源,免费商用。
  • 2023年8月14日,书生万卷1.0多模态预训练语料库开源发布。
  • 2023年8月21日,升级版对话模型InternLM-Chat-7B v1.1发布,同时开源智能体框架Lagent,支持从语言模型到智能体升级转换。
  • 2023年8月28日,InternLM千亿参数模型参数量升级到123B。
  • 2023年9月20日,增强型InternLM-20B开源,开源工具链全线升级。
  • 2024年1月17日,InternLM2开源。

二、InternLM2的分类

  • 按规格分类:有7B和20B两种模型

    7B:为轻量级的研究和应用提供了一个轻便但性能不俗的模型
    20B:模型的综合性能更为强劲,可有效支持更加复杂的使用场景

  • 按使用需求分类:InternLM2-Base、InternLM2、InternLM2-Chat三种。
    其中InternLM2在Base基础上,在多个能力方向进行了强化。而Chat版本则是在Base基础上,经过SFT和RLHF,面向对话交互进行了优化,具有很好的指令遵循,共情聊天和调用工具等能力。

三、书生浦语2.0主要亮点

书生浦语2.0在超长上下文、综合性能、对话和创作体验、工具调用能力以及数理能力和数据分析功能等方面都有显著优势。其中,InternLM2-Chat-20B在重点评测上甚至可以达到比肩ChatGPT GPT3.5水平。

四、从模型到应用

书生浦语全链条开源开放体系包括数据、预训练、微调、部署、评测和应用等方面。这些环节的不断完善和优化,使得书生浦语大模型能够更好地服务于各种应用场景。

在这里插入图片描述

1、数据

在这里插入图片描述

书生·浦语大模型的数据集名为"书生·万卷",发布日期 2023 年 8 月 14 日。它是一个包含1.6万亿token的多语种高质量数据集,涵盖多种模态和任务。包含文本数据(50 亿个文档,数据量超 1TB),图像-文本数据集(超 2200 万个文件,数据量超 140GB),视频数据(超 1000 个文件,数据量超 900GB)。这个数据集为模型的训练提供了丰富的语言信息和知识基础。

2、预训练

书生·浦语大模型使用了InternLM-Train进行预训练。InternLM-Train是一个基于Transformer架构的预训练模型,它具有1040亿参数,通过在书生·万卷数据集上进行训练,使模型具备了强大的语言理解和生成能力。它支持从 8 卡到千卡训练,千卡训练效率达 92%;无缝接入 HuggingFace 等技术生态,支持各类轻量化技术。

3、微调

在这里插入图片描述

为了进一步提升模型的性能和适应特定任务,上海人工智能实验室开发了XTuner微调框架。XTuner可以根据不同的任务需求,对大模型进行微调,使其在特定领域或任务上表现更加优秀。它具有以下特点:

  • 支持多种任务类型,如增量预训练,指令微调,工具类指令微调

  • 支持全量参数、LoRA、QLoRA 等低成本微调,覆盖各类 SFT 场景

  • 支持多种大语言模型的微调,如 InternLM, Llama, QWen, BaiChuan, ChatGLM,适配多种开源生态,支持加HuggingFace、ModelScope 模型或数据集

  • 支持自动优化加速,如 Flash Attention, DeepSpeed ZeRO, 使得开发者无需关注复杂的现存优化与计算加速细节

  • 支持多种硬件,覆盖 NVIDIA 20 系以上所有显卡,最低只需 8GB 现存即可微调 7B 模型

  • 支持多种数据格式,如 Alpaca, MOSS, OpenAI, Guanacao 等等。

在这里插入图片描述

4、部署

在这里插入图片描述

在模型应用方面,开发LMDeploy部署框架

LMDeploy提供大模型在 GPU 上部署的全流程解决方案,包括模型轻量化、推理和服务。可以将大模型快速部署到各种计算平台上,实现模型的实时推理和应用。

  • 接口支持:Python, GRPC, RESTful
  • 量化支持:4bit 、8bit
  • 推理引擎:turbomind, pytorch
  • 服务:openai-server, gradio, triton inference server

5、评测

在评测方面,开发了OpenCompass评测框架,包含80 套评测集,40 万道题目。OpenCompass可以对模型在多个任务和数据集上的表现进行全面评估,从而了解模型的优势和局限性。它具体包括6 大维度的评测集:

  • 学科:初中考试、中国高考、大学考试、语言能力考试、职业资格考试
  • 语言:字词释义、成语习语、语义相似、指代消解、翻译
  • 知识:知识问答、多语种知识问答
  • 理解:阅读理解、内容分析、内容总结
  • 推理:因果推理、常识推理、代码推理、数学推理
  • 安全:偏见、有害性、公平性、隐私性、真实性、合法性

6、应用

在应用方面,开发了Lagent多模态智能体工具箱和AgentLego多模态智能体工具箱。这些工具箱可以帮助开发者构建和训练多模态智能体,实现图文混合创作、多模态对话等应用场景。

Lagent 是一种轻量级智能体框架,它具有以下特点:

  • 支持多种类型的智能体能力,如 ReAct, ReWoo, AutoGPT 灵活支持多种大语言模型,如 OpenAI 的
    GPT-3.5/4, 上海人工智能实验室的 InternLM, Hugging Face 的 Transformers, meta 的 Llama 简单易拓展,支持丰富的工具,如 AI 工具(文生图、文生语音、图片描述),能力拓展(搜索,计算器,代码解释器), RapidAPI(出行 API, 财经 API, 体育咨询 API)

AgentLego是一种多模态智能体工具箱,它具有以下特色:

  • 丰富的工具集合,尤其是提供了大量视觉、多模态相关领域的前沿算法功能支持多个主流智能体系统,如 Lagent, LangChain, Transformers Agent 等灵活的多模态工具调用接口,可以轻松支持各类输入输出格式的工具函数一键式远程工具部署,轻松使用和调试大模型智能体。

InternLM2技术报告

Github : https://github.com/InternLM/InternLM/

论文地址:https://arxiv.org/pdf/2403.17297.pdf

本文主要介绍 InternLM2预训练数据、预训练设置以及三个预训练阶段。

1.数据处理流程:

  1. 将来自不同来源的数据标准化以获得格式化数据。
  2. 使用启发式统计规则对数据进行过滤以获得干净数据。
  3. 使用局部敏感哈希(LSH)方法对数据去重以获得去重数据。
  4. 应用一个复合安全策略对数据进行过滤,得到安全数据。其中对不同来源的数据采用了不同的质量过滤策略,最终获得高质量预训练数据。

在这里插入图片描述

2.预训练设置

Tokenization:

论文选择使用GPT-4的tokenization方法,在压缩各种文本内容方面非常高效。主要参考是cl100K词汇表,它主要包含英语和编程语言的 token,共计100,256条,其中包括不到3,000个中文 token。为了在处理中文文本时优化InternLM的压缩率,同时将总体词汇量保持在100,000以下,我们从cl100k词汇中仔细挑选了前60,004个token,并将其与32,397个中文token集成。此外,我们还加入了147个备用token,最终得到的词汇量符合256的倍数,从而便于高效训练。

超参数:

在训练过程中,我们使用AdamW优化模型,其参数设置为beta_1=0.9, beta_2=0.95, epsilon=1e-8, weight_decay=0.1。采用余弦学习率衰减,学习率衰减至其最大值的10%,不同规模参数的超参数配置如下:
在这里插入图片描述

3.预训练阶段

3.1长上下文训练

扩展上下文窗口可以显著提高 LLM 在各种应用中的表现,例如检索增强生成和智能代理。

InternLM2训练过程从4K上下文的语料库开始,然后过渡到32K上下文的语料库。 尽管使用了32K长度的语料库,仍有50%的数据长度短于4096个tokens。这个长上下文训练阶段占整个预训练过程的大约9%。为了适应这些更长的序列,确保为长上下文提供更有效的位置编码(Liu et al., 2023b),我们将旋转位置嵌入(RoPE) 的基础从50,000调整到1,000,000。得益于 InternEvo 和 flash attention 的良好可扩展性,当上下文窗口从4K更改为32K时,训练速度仅降低了40%。

3.2 特定能力增强训练

经过特定能力增强训练阶段之后,InternLM2模型在编程、推理、问题回答和考试等方面表现出显著的性能提升。

在InternLM 2中收集了一个丰富的数据集,其中包含精心策划的高质量检索数据和来自Huggingface数据集平台的各种类型的开源数据。在这个数据集中总共收集了240亿个tokens。

在这里插入图片描述

4. 最终与其他模型对比结果:

在这里插入图片描述

5.总结:

本文为实战营第一次课程笔记,主要分为两个部分,第一部分从书生·浦语大模型发展、分类、组成进行详细介绍,方便大家理解。第二部分为对 InternLM2技术报告解读,后续系列会继续更新,欢迎大家交流!

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

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

相关文章

linux 回收站机制(笔记)

Linux下回收站机制https://mp.weixin.qq.com/s/H5Y8VRcaOhFZFXzR8yQ7yg 功能 :设立回收站,并且可定时清空回收站。 一、建议将alias rm 改成别的。 比如alias rmm ,同时修改rm -rf ~/.trash/* 改成 rmm -rf ~/.trash/* 不然影响rm 的正常使…

SQL Server中视图使用子查询的性能影响与优化方案

在SQL Server中,视图(View)是一种虚拟的表,其内容由查询定义。在视图中,我们可以使用子查询来组合和呈现数据,这为数据呈现提供了灵活性,但同时也可能带来一些性能上的问题。本文将深入分析视图…

js 基础知识 forEach 和 map 的区别,及 map 不加 return 返回什么

问题一:forEach 和 map 之间的区别: 1、forEach 不返回新数组,map 返回新数组,其中包含回调函数的返回值。 2、用途:如果只想要遍历数组并对每个元素执行某些操作而不产生新数组,那么应该使用 forEach&am…

从零开始学RSA加密解密过程

因为文字太过晦涩难懂,下面以图示的方法来理解RSA加密解密的过程 以上过程中因为HACK无法得到p,q信息,也就是无法计算出d , 导致了无法解密 c 得到 m (n,e) 公钥 (d,n) 私钥 (p,q,n,e) 生成的加密必要信息 必要的公式 c ≡ me mod n ----------->…

基于栈结构的非递归二叉树结点关键字输出算法

基于栈结构的非递归二叉树结点关键字输出算法 一、引言二、二叉树基本概念三、非递归遍历算法基础四、算法设计五、算法实现六、C代码示例七、算法分析八、优化与讨论 一、引言 在计算机科学中,二叉树是一种重要的数据结构,它广泛应用于各种算法和数据结…

Stream API 提供了许多操作来处理和转换数据流。

在Java中,Stream API 提供了许多操作来处理和转换数据流。其中,sorted() 方法用于对流中的元素进行排序。这个方法返回一个新的流,其中包含的元素与原始流中的元素相同,但已经根据自然顺序或提供的比较器进行了排序。 如果你调用…

Hive函数笔试题(简单)

第1题 有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 u02 2017/1/23 6 u01 2017/2/22 4 要求使用SQL统计出每个用户的累积访问次数&…

【方案篇】事件监听函数的内存泄漏,帮你搞定!

本文是 理论篇 ,还有下篇 代码篇。 前言 工作中,我们会对window, DOM节点,WebSoket, 或者单纯的事件中心等注册事件监听函数。 // window window.addEventListener("message", this.onMessage); // WebSoket socket.addEventLis…

大数据学习第十一天(复习linux指令3)

1、su和exit su命令就是用于账户切换的系统命令 基本语法:su[-] [用户名] 1)-表示是否在切换用户后加载变量,建议带上 2)参数:用户名,表示切换用户 3)切换用户后,可以通过exit命令退…

Spring定义Bean对象笔记(二)

前言:上一篇记录了通过XML文件来定义Bean对象,这一篇将记录通过注解和配置类的方式来定义Bean对象。 核心注解: 定义对象:Component,Service,Repository,Controller 依赖注入: 按类型:Autowired 按名称&am…

【Unity每日一记】(Canvas的相机渲染模式) 如何将模型显示在UI之前

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

Stable Diffusion扩散模型推导公式的基础知识

文章目录 1、独立事件的条件概率2、贝叶斯公式、先验概率、后验概率、似然、证据3、马尔可夫链4、正态分布 / 高斯分布5、重参数化技巧6、期望7、KL散度 、高斯分布的KL散度8、极大似然估计9、ELBO :Evidence Lower Bound10、一元二次方程 1、独立事件的条件概率 A 和 B 是两个…

Java编程使用CGLIB动态代理介绍与实战演示

文章目录 前言技术积累核心概念主要功能适用场景与JDK动态代理的对比 实战演示定义待代理的目标类实现MethodInterceptor接口使用代理对象 测试结果写在最后 前言 在Java编程中,CGLIB (Code Generation Library) 是一个强大的高性能代码生成库,它通过生…

MySQL UPDATE JOIN 根据一张表或多表来更新另一张表的数据

当使用MySQL时,经常需要根据一张表或多张表的数据来更新另一张表的数据。这种情况下,我们可以使用UPDATE语句结合JOIN操作来实现这一需求。本文将介绍MySQL中使用UPDATE JOIN的技术。 什么是UPDATE JOIN UPDATE JOIN是MySQL中一种结合UPDATE语句和JOIN…

2024年第三期丨全国高校大数据与人工智能师资研修班邀请函

2024年第三期 杭州线下班 数据采集与机器学习实战(Python) 线上班 八大专题 大模型技术与应用实战 数据采集与处理实战(Python&八爪鱼) 大数据分析与机器学习实战(Python) 商务数据分析实战&…

jQuery(一)

文章目录 1. 基本介绍2.原理示意图3.快速入门1.下载jQuery2.创建文件夹,放入jQuery3.引入jQuery4.代码实例 4.jQuery对象与DOM对象转换1.基本介绍2.dom对象转换JQuery对象3.JQuery对象转换dom对象4.jQuery对象获取数据获取value使用val()获取…

完全没想到docker启动败在了这里!

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 故事背景 前几天帮同事部署一个环境,用他写的安装脚本部署,其中一台服务器就需要安装docker&#xff0c…

基于深度学习的铁轨缺陷检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:本文深入研究了基于YOLOv8/v7/v6/v5的铁轨缺陷检测系统。核心技术上,文章采用了最先进的YOLOv8,并整合了YOLOv7、YOLOv6、YOLOv5算法,进行了性能指标的对比分析。文中详细阐述了国内外铁轨缺陷检测的研究现状、数据集处理方法…

MHA高可用-解决MySQL主从复制的单点问题

目录 一、MHA的介绍 1.什么是 MHA 2.MHA 的组成 2.1 MHA Node(数据节点) 2.2 MHA Manager(管理节点) 3.MHA 的特点 4. MHA工作原理总结如下: 二、搭建 MySQL MHA 实验环境 …

【LeetCode热题100】【普通数组】合并区间

题目链接:56. 合并区间 - 力扣(LeetCode) 先排序,按左区排序,装第一个区间进入答案容器,判断答案容器钟最后一个区间的右区是否小于区间的左区,是则不能合并是新区间,否则可以合并 …