InternLM大模型实战-1.书生浦语大模型全链路开源体系

news2024/11/17 20:42:39

文章目录

  • 前言
  • 笔记正文
    • 大模型成为热门关键词
    • 书生·浦语开源历程
    • 从模型到应用
    • 书生·浦语全链条开源开放体系
      • 数据
      • 预训练
      • 微调
      • 评测
      • 部署
      • 部署
      • 智能体
        • Lagent
        • AgentLego
    • 总结

前言

本系列文章是参与书生浦语全链路开源体系学习的笔记文章。B站视频教程地址:

笔记正文

大模型成为热门关键词

LLM受到高关注,因为大模型成为发展通用人工只能的重要途经。

  • 专用模型:针对特定任务,一个模型解决一个问题。
  • 通用大模型:一个模型应对多种任务、多种模态。

书生·浦语开源历程

6月7日发布开始,开源第一代InternLM,并接着开源了其他相关模型或数据,如书生万卷开源的多模态数据集。
书生浦语大模型系列开源包含了轻量级7B,中量级20B,重量级123B,对比当时的其他开源模型由优势。

从模型到应用

从LLM到应用是有Gap的。
在这里插入图片描述

书生·浦语全链条开源开放体系

全链条:包含很完整的大模型应用开发的环节

  1. 数据:书生万卷,2TB数据,涵盖多种模态与任务
  2. 预训练:InternLM-Train,并行训练,极致优化,速度达到3600tokens/sec/gpu
  3. 微调:XTuner,支持全参数微调,支持LoRA等低成本微调
  4. 部署:LMDeploy,全链路部署,性能领先,每秒生成2000+tokens
  5. 评测:OpenCompass,全方位评测,性能课复现80套评测集,40万道题目
  6. 应用:Lagent、AgentLego,支持多种智能体,支持代码解释器等多种工具

数据

包含了文本数据、图像-文本数据集、视频数据,1.0版本发布初总2TB。
OpenDataLab上也有大量数据。

预训练

高可扩展、性能优化、兼容主流、多种配置

微调

LLM的下游应用中,增量续训和有监督微调是经常会用到的两种方式。

  • 增量续训:
    • 使用场景:让基座模型学习到一些新知识,如某个垂类领域知识
    • 训练数据:文章、书籍、代码等
  • 有监督微调:
    • 使用场景:让模型学会理解和遵循各种指令,或者注入少量领域知识
    • 训练数据:高质量的对话、问答数据

微调分为全量参数微调和部分参数微调。

XTuner
在这里插入图片描述

为什么不支持10系的显卡,应该是显卡架构导致的,也没发现有哪个推理框架专门支持了10系的显卡。比如Flash Attention加速,直接不支持Pascal架构,也许是因为这样类似的原因(如vLLM等其他大模型部署框架都依赖于Flash Atten)。

显存优化,能够在8G显卡上进行7B模型的微调。

评测

在这里插入图片描述

OpenCompass提供了丰富的模型支持、分布式高效评测、便捷的数据接口、敏捷的能力迭代。Meta也将其作为推荐的评测工具之一。

部署

LLM特点:

  • 内存开销巨大:庞大的参数量;采用自回归生成token,需要缓存k/v
  • 动态Shape:请求书不固定;token逐个生成,且数量不定
  • 模型结构相对简单:Transformer结构,大部分是decoder-only(从算子上来说比部署视觉模型之类的容易)

技术挑战:
设备、推理、服务

部署方案:模型并行、低比特量化、Attention优化、计算和访存优化、Continuous Batching。

部署

LMDeploy提供包括模型轻量化、推理、服务的全流程的GPU上部署方案。

智能体

主要在于工具使用和交互。

Lagent

在这里插入图片描述
Lagent的智能体框架目前的功能还是不太能够满足需求,毕竟其定位是“轻量级”智能体框架,但是可以相信之后这个框架将会有更加完善丰富的功能。

AgentLego

提供了很多工具,可以比较方便地集成到智能体系统中,输入输出接口也比较灵活。
但是站在国内的情况来说,大概不能完全算是开箱即用的,毕竟依然是从Huggingface上拉取模型,虽然可以通过代理服务器等方式解决,但是依然造成了一些阻碍;这些阻碍相对于AgentLego工具箱提供的便利来说则不算什么。
在这里插入图片描述

总结

书生·浦语全链路开源体系是一个全面、多元化的项目,涵盖了从数据、预训练到微调、部署等多个环节。这个体系包括不同规模的模型,如轻量级的InternLM-7B、中量级的InternLM-20B和重量级的Intern-123B,这些模型在多种任务和模态上表现出色。书生·浦语项目不仅关注模型本身的发展,还重视模型的应用和部署,如LMDeploy和Lagent等工具,这些工具旨在提高模型的推理效率、服务便捷性和应用灵活性。该项目还提供了XTuner等微调框架,支持全参数微调和低成本微调,以及OpenCompass评测平台,用于模型的全面评估。书生·浦语全链路开源体系是一个综合性的项目,旨在推动大模型的研发和应用,同时也关注模型的性能优化和实际部署。

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

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

相关文章

【笔记】Harmony学习:下载安装 DevEco Studio 开发工具IDE

IDE 安装 从官网下载DevEco Studio 安装包后进行安装, 安装完毕后,本地环境可能要配置相关工具,可以通过下面的诊断检测一下本地环境,通过蓝色“Set it up now” 可以快速安装。 1. Node.js (for ohpm) 2. ohpm 下载op的包管理&a…

项目学习记录

项目开发 创建项目环境配置关联git新增模块项目启动打印地址日志使用httpclient进行idea内部控制台测试使用AOP拦截器打印日志 创建项目 创建一个空项目,并勾选下面选项 然后进入pom.xml中修改项目配置 根据这个链接选则,修改项目的支持版本 链接&#…

css2复合选择器

一.后代(包含)选择器(一样的标签可以用class命名以分别) 空格表示 全部后代 应用 二.子类选择器 >表示 只要子不要孙 应用 三.并集选择器 ,表示 代表和 一般竖着写 应用 四.伪类选择器(包括伪链接…

【C++】类和对象(2)

这篇博客继续学习类和对象~,主要介绍了类的6个默认成员函数。 目录 类的6个默认成员函数 构造函数 概念 特性 析构函数 概念 特性 拷贝构造函数 特性 赋值运算符重载 运算符重载 赋值运算符重载 前置和后置重载 日期类的实现 const成员 取地址及cons…

【十三】【C++】vector简单实现

代码实现 /*vector类简单实现*/ #if 1 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std; #include <vector> #include <algorithm> #include <crtdbg.h> #include <assert.h> #include <string.h>namespace MyVe…

SpringBoot循环依赖

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; SpringBoot循环依赖 循环依赖是指两个或多个模块或组件之间相互依赖形成闭环的情况。这种情况下&#xff0c;模块 A 依赖于模块 B&#xff0c;同时模块 B 也依赖于模块…

解析十六进制雷达数据格式:解析雷达数据类型。

以Cat62格式雷达数据为例&#xff0c;十六进制雷达数据部分代码&#xff1a; 3e0120bf7da4ffee0085 雷达数据使用2个字符&#xff08;1个字节&#xff09;标识&#xff0c;在这里是“3e”&#xff0c;转换为十进制数为62。 雷达数据类型父类&#xff1a; base_header_process…

openkylin(Debian系)安装nginx及安装前需要的准备

前言 现在很多linux系统都可以使用高级包管理工具安装软件了&#xff0c;但是在像是 openkylin这些新系统中&#xff0c;好多软件包虽然有&#xff0c;但是因为其依赖的包还没有做好&#xff0c;所 以安装会提示你一大堆依赖错误。所以还是要自己来编译安装咯。安装前准备&…

计算机网络之一

目录 1.因特网概述 1.1网络、互连网&#xff08;互联网&#xff09;和因特网 1.2.因特网发展的三个阶段 1.3基于ISP的三层架构的因特网 1.4.因特网的组成 2.三种交换方式 2.1电路交换 2.2分组交换 1.因特网概述 1.1网络、互连网&#xff08;互联网&#xff09;和因特网…

米贸搜|Facebook在购物季使用的Meta广告投放流程

一、账户简化 当广告系列开始投放后&#xff0c;每个广告组都会经历一个初始的“机器学习阶段”。简化账户架构可以帮助AI系统更快获得广告主所需的成效。例如&#xff1a; 每周转化次数超过50次的广告组&#xff0c;其单次购物费用要低28%&#xff1b;成功结束机器学习阶段的…

13. 串口接收模块的项目应用案例

1. 使用串口来控制LED灯工作状态 使用串口发送指令到FPGA开发板&#xff0c;来控制第7课中第4个实验的开发板上的LED灯的工作状态。 LED灯的工作状态&#xff1a;让LED灯按指定的亮灭模式亮灭&#xff0c;亮灭模式未知&#xff0c;由用户指定&#xff0c;8个变化状态为一个循…

中创ET4410 台式LCR数字电桥 简单开箱测评

最近买了一台LCR电桥&#xff0c;完善一下自己实验室的设备&#xff0c;选了中创ET4410&#xff0c;这款性价比高一点。 1199元在PDD买的&#xff0c;好像胜利的VC4090C也是找中创代工的。 ET4410介绍 本系列LCR数字电桥是采用自动平衡电桥原理设计的元件参数分析仪&#xf…

linux进程(环境变量)

目录 正文&#xff1a; 常见环境变量 和环境变量相关的的命令 通过代码获取环境变量 主函数参数 三个参数 参数调用 进程优先级 查看系统进程 PRI和NI 优先级修改 前言&#xff1a; 环境变量 (environment variables) 一般是指在操作系统中用来指定操作系统运行环境…

第68讲表单验证实现

表单验证实现 Form 组件允许你验证用户的输入是否符合规范&#xff0c;来帮助你找到和纠正错误。 Form 组件提供了表单验证的功能&#xff0c;只需为 rules 属性传入约定的验证规则&#xff0c;并将 form-Item 的 prop 属性设置为需要验证的特殊键值即可。 const rulesref({u…

掌握Pandas数据筛选方法与高级应用全解析【第70篇—python:数据筛选】

文章目录 掌握Pandas&#xff1a;数据筛选方法与高级应用全解析1. between方法2. isin方法3. loc方法4. iloc方法5. 查询复杂条件的结合应用6. 避免inplace参数7. 利用Lambda函数进行自定义筛选8. 处理缺失值9. 多条件排序10. 数据统计与分组 总结&#xff1a; 掌握Pandas&…

NLP_引入注意力机制

文章目录 点积注意力创建两个张量x1和x2计算张量点积&#xff0c; 得到原始权重对原始权重进行归一化求出注意力分布的加权和 缩放点积注意力编码器-解码器注意力定义Attention类重构Decoder类重构Seq2Seq类可视化注意力权重 注意力机制中的 Q、K、V自注意力多头自注意力注意力…

Excel——重复项处理

一、高亮重复项 选择需要高亮重复项的列/单元格 选择【数据】——【重复项】—— 【高亮重复项】 如果高亮重复项的数据较长&#xff0c;例如&#xff1a;身份证号、银行卡&#xff0c;可以勾选下列选项&#xff0c;能够精准检查重复项。 结果如下所示 如果想要清除高亮的重复…

Java并发基础:ArrayBlockingQueue全面解析!

内容摘要 ArrayBlockingQueue类是一个高效、线程安全的队列实现&#xff0c;它基于数组&#xff0c;提供了快速的元素访问&#xff0c;并支持多线程间的同步操作&#xff0c;作为有界队列&#xff0c;它能有效防止内存溢出&#xff0c;并通过阻塞机制平衡生产者和消费者的速度…

【Qt 学习之路】在 Qt 使用 ZeroMQ

文章目录 1、概述2、ZeroMQ介绍2.1、ZeroMQ 是什么2.2、ZeroMQ 主线程与I/O线程2.3、ZeroMQ 4种模型2.4、ZeroMQ 相关地址 3、Qt 使用 ZeroMQ3.1、下载 ZeroMQ3.2、添加 ZeroMQ 库3.3、使用 ZeroMQ3.4、相关 ZeroMQ 案例 1、概述 今天是大年初一&#xff0c;先给大家拜个年&am…

c++2024寒假J312实战班2.4

长话短说&#xff0c;简明扼要一直是我的行事风格&#xff0c;如有不精准的地方&#xff0c;就到网上去搜&#xff0c;好吧。 今天分享我们做的四道题&#xff0c;都挺简单的&#xff0c;就是难思考。 题目列表&#xff1a; 1.Maximum Subarray Sum 2.分解因数 3.公交换乘 4.…