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

news2024/11/23 17:08:17

在这里插入图片描述

🎉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.coloradmin.cn/o/1559808.html

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

相关文章

【Linux】TCP网络套接字编程+守护进程

文章目录 日志类(完成TCP/UDP套接字常见连接过程中的日志打印)单进程版本的服务器客户端通信多进程版本和多线程版本守护进程化的多线程服务器 日志类(完成TCP/UDP套接字常见连接过程中的日志打印) 为了让我们的代码更规范化&…

鸿蒙实战开发-如何使用声明式UI编程框架的基础组件

介绍 在本教程中,我们将通过一个简单的样例,学习如何使用声明式UI编程框架的基础组件。本篇Codelab将会使用Image组件、Slider组件、Text组件共同实现一个可调节的风车动画,实现效果如图所示 相关概念 Text组件:文本组件&#x…

9.Python类与对象

1 面向对象 类和对象都是面向对象中的重要概念。面向对象是一种编程思想, 即按照真实世界的思维方式构建软件系统。 例如,在真实世界的校园里有学生和老师,学生有学号、姓名、所 在班级等属性(数据),还有…

MAC的Safari浏览器没有声音解决办法

有一段时间没打开电脑,也不知道是系统自动更新或是什么缘故,所有浏览器都无法正常发声。 现象如下: 首先,Safari浏览器无法自动播放声音,下载的360浏览器现象一致,但是播放其他音乐播放软件和视频软件都正…

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

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

新手使用GIT上传本地项目到Github(个人笔记)

亲测下面的文章很有用处。 1. 初次使用git上传代码到github远程仓库 - 知乎 (zhihu.com) 2. 使用Git时出现refusing to merge unrelated histories的解决办法 - 知乎

五、Yocto集成QT5(基于Raspberrypi 4B)

Yocto集成QT5 本篇文章为基于raspberrypi 4B单板的yocto实战系列的第五篇文章: 一、yocto 编译raspberrypi 4B并启动 二、yocto 集成ros2(基于raspberrypi 4B) 三、Yocto创建自定义的layer和image 四、Yocto创建静态IP和VLAN 本章节实操代码请查看github仓库&…

yolov5 v7.0打包exe文件,使用C++调用

cd到yolo5文件夹下 pyinstaller -p 当前路径 -i logo图标 detect.py问题汇总 运行detect.exe找不到default.yaml 这个是yolov8里的文件 1 复制权重文件到exe所在目录。 2 根据报错提示的配置文件路径,把default.yaml复制放到相应的路径下。(缺少相应…

Linux的开发工具(二):编译器gcc/g++与Linux项目自动化构建工具-Makefile

Linux的编译器-gcc/g 基本概念:gcc是专门用来编译c语言的,g可以编译c或c语言 问题一:gcc有时候为什么不能编译带有for循环的c语言源文件? 答:gcc版本过低会不支持for循环等c99标准下的内容 解决方式:gcc…

Spring定义Bean对象笔记

前言:面向对象语言最基本的元素就是对象,在Spring中把对象都封装为一个个的Bean,即通过Bean容器来管理对象;那么接下来我们看下在Spring中如何创建所需要的Bean。 一、环境准备 员工类 package com.xlb.bean;public class Empl…

在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

关于gRPC和Google protobuf gRPC 是一种可以跨语言运行的现代高性能远程过程调用 (RPC) 框架。gRPC 实际上已经成为 RPC 框架的行业标准,Google 内外的组织都在使用它来从微服务到计算的“最后一英里”(移动、网络和物联网)的强大用例。 gRP…

数据结构——二叉树——堆

前言: 在前面我们已经学习了数据结构的基础操作:顺序表和链表及其相关内容,今天我们来学一点有些难度的知识——数据结构中的二叉树,今天我们先来学习二叉树中堆的知识,这部分内容还是非常有意思的,下面我们…

重读 Java 设计模式: 深入探讨原型模式,灵活复制对象

引言 在软件开发中,经常会遇到需要创建对象的情况。有时候,我们希望创建一个新的对象,但又不想通过传统的构造方法来创建,而是希望通过复制一个现有对象的方式来创建新的对象。这时,原型模式就能派上用场了。原型模式…

【51单片机入门记录】A2普中开发板实验课例程

一、开发板原理图 二、例程 &#xff08;1&#xff09;呼吸灯 #include <STC89C5xRC.H> #include<intrins.h>unsigned int PWM_wanttime0; //想要多长时间改变的占空比一次 unsigned int Breath_wanttime0; //想要多长时间改变呼气或者吸气的值时间 unsigned …

Android Studio 新建aar包

有几个注意事项 第一是注意是选择Android library这个包注意moudle name不能包含apk这三个字符

动手学机器学习双线性模型+习题

在数学中&#xff0c;双线性的含义为&#xff0c;二元函数固定任意一个自变量时&#xff0c;函数关于另一个自变量线性 矩阵分解 设想有N个用户和M部电影&#xff0c;构建一个用户画像库&#xff0c;包含每个用户更偏好哪些类型的特征&#xff0c;以及偏好的程度。假设特征的个…

0.5米多光谱卫星影像在农业中进行地物非粮化、非农化监测

一、引言 随着科技的发展&#xff0c;卫星遥感技术已经成为了农业领域中重要的数据来源。其中&#xff0c;多光谱卫星影像以其独特的优势&#xff0c;在农业应用中发挥着越来越重要的作用。本文将重点探讨0.5米加2米多光谱卫星影像在农业中的应用。 二、多光谱卫星影像概述 多…

ESP8266 WiFi物联网智能插座—上位机软件实现

1、软件架构 上位机主要作为下位机数据上传服务端以及节点调试的控制端&#xff0c;可以等效认为是专属版本调试工具。针对智能插座协议&#xff0c;对于下位机进行可视化监测和管理。 软件技术架构如下&#xff0c;主要为针对 Windows 的PC 端应用程序&#xff0c;采用WPF以及…

Mock.js的基本使用

mock顾名思义&#xff0c;就是模拟的意思&#xff0c;它模拟什么呢&#xff1f;假设我们在开发的过程中&#xff0c;我们需要使用到接口&#xff0c;但是后端接口并没有完善&#xff0c;那么我们就可以使用到mock.js&#xff0c;它可以随机生成数据&#xff0c;拦截AJAX请求&am…

壁纸小程序Vue3(分类页面和用户页面基础布局)

1.配置tabBar pages.json "tabBar": {"color": "#9799a5","selectedColor": "#28B389","list": [{"text": "推荐","pagePath": "pages/index/index","iconPath&quo…