视频链接:书生·浦语大模型全链路开源体系_哔哩哔哩_bilibili
主要内容:
背景:大模型目前已经成为发展通用人工智能的重要途径。而在本世纪初到2022年,人工智能领域更多是专用模型即针对特定任务,一个模型解决一个问题,例如有专门的语音识别模型,图像分类模型,人脸识别模型等,这些都属于专用模型。最近这两年,越来越多向通用大模型发展即一个模型应对多种任务、多种模态,例如ChatGPT把所有从文本到文本的各类任务通过一个模型就可以解决,GPT-4V能够解决多种跨模态任务,这些都是近两年整个学术社区、工业应用的重要发展趋势,所以在这种趋势下,通用大模型就成为一个热点,大家也相信它是通往通用人工智能的一个关键途径。
书生·浦语大模型从2023年6月份首次发布以来,一直都是快速迭代。7月份InternLM千亿参数大模型全面升级,支持8K语境、26种语言,同时也推出了全面开源,免费商用的7B模型以及全链路的开源工具体系。到8月份发布了书生·万卷1.0多模态预训练语料库,同时也发布了升级版对话模型Chat-7B以及开源智能体框架Lagent,支持InternLM从语言模型到智能体的升级转换,然后进一步又发布了123B这样千亿参数尺寸的模型。到9月份发布了中等尺寸20B的模型,并且升级了整个开源工具链。到2024年1月InternLM2正式开源,相比第一代模型有了很大的提升,可以解决更多的真实问题和复杂的场景。
下面主要介绍书生·浦语2.0即InternLM2的体系:
一、InternLM2 简介
目前InternLM2模型已经开源到OpenXlab平台,面向不同的场景和需求,每个规格包含三个模型版本,具体包括7B(为轻量级的研究和应用提供了相对轻便、便宜、性能还不错的模型)和20B(综合性能更强,能够支持更加复杂场景的中量级模型)。对于每个尺寸的模型,都包括InternLM2-Base(高质量并具有很强可塑性的模型基座),InternLM2(在Base基础上,在多个能力方向进行了强化,取得了非常不错的评测成绩和通用语言能力,实际应用中推荐基于InternLM2底座去做进一步微调),InternLM2-Chat(基于Base,经过SFT和RLHF,面向对话交互进行优化,具有很好的指令遵循、共情聊天和调用工具等能力)三种模型。
InternLM2最主要的初心是回归语言建模的本质,即通过给定的Context去预测接下来的Token。InternLM2利用了新一代的数据清洗过滤技术,那么在这里面数据就包括了多维度数据价值评估、高质量语料驱动的数据富集和有针对性的数据补齐。相比初代InternLM,InternLM2在大规模高质量验证语料上的Loss分布是向左移的,语言建模能力提升了很多。另外随着训练数据的升级,下游任务的性能也在提升,可以采用更少的语料达到上一代语料相同的效果。
InternLM2主要的亮点包括,超长上下文能力(2024年1月发布时,支持20万token上下文中,几乎完美实现“大海捞针”测试),综合性能的全面提升(推理、数学、代码提升明显,20B模型在重点评测上可以比肩ChatGPT),优秀的对话和创作体验(精准指令跟随,丰富的结构化创作,在AlpacaEval 2.0排行榜上超越了GPT-3.5和Gemini Pro),工具调用能力的整体升级(可靠支持工具多轮调用以及复杂智能体搭建),突出的数理能力和实用的数据分析功能(强化内生计算能力,不借助任何外部工具和计算器情况下,也能有比较准确的计算能力,另外通过加入代码解释器,在GSM8K和MATH这样的评测集上,可以达到和GPT-4相仿的水平),以上这些都是20B模型。
以上介绍了InternLM2的整体情况和能力提升,接下来会阐述从模型到最终应用之间的典型流程。首先是模型选型即模型评测过程(根据各种评测集、排名、大规模榜单上的整体效果进行初步选择一个或多个模型),之后考虑业务场景是否复杂,如果复杂就要进行微调模型,微调模型就要进一步考量算力是否足够,如果算力足够就会进行模型全参数微调或续训,如果算力不够则进行部分参数微调(例如LoRA等),模型微调之后就会具备业务场景相关的一些知识,如果此时模型需要与环境交互,即业务系统或应用中是否有外部API或工具需要模型去做交互,如果需要则要构建智能体,否则考虑直接测试模型性能,上线之前就要进行模型评测,通过评测后就要部署和上线模型。
从模型到应用需要经过很多步骤,其中需要大量的编码或者选择不同工具完成每个步骤,针对这种现状,为了可以更轻松容易的使用书生·浦语大模型,开发了全链条工具体系,并且做了开源,接下来进行具体的介绍。
二、InternLM2 开源体系
在InternLM的开源体系中,提供了全流程完整的工具组件,按照链路,从数据一直到评测,最后还有Lagent和AgentLego智能体用于实现大模型应用。
1、数据
基于书生万卷1.0,分为文本、图文、视频数据,2023年8月发布,数据量超2TB,具体涵盖科技、文学、媒体、教育、法律等多个领域,旨在通过多元融合的方式提升模型的知识含量、逻辑推理和泛化能力。书生万卷CC是书生万卷1.0的一个特殊版本,主要用于英文网络文本数据集的收集和发布,时间跨度从2013到2023,来源丰富多样,安全密度高,数据量达到400GB,2024年3月发布。这些数据集可以从OpenDataLab获取。
2、Pre-train(InternLM-Train)
基于开源InternEvo轻量级训练框架,支持模型预训练,具备高扩展性(8卡到千卡),在单GPU上实现了极致的性能优化(Hybrid Zero),兼容主流技术,无缝接入HuggingFace,开箱即用。
3、Fine-tuning(XTuner)
在大模型下游应用中,增量续训和有监督微调是经常用到的两种方式。前者是为了让基座模型学习到一些新知识,例如某个垂类领域知识,其训练数据通常是文章、书籍、代码等。后者是为了让模型学会理解各种指令进行对话,或者注入少量领域知识,其训练数据只要是高质量对话、问答数据。在有监督微调中包括全量参数微调以及部分参数微调。基于开源高效微调框架XTuner,适配多种开源生态(支持加载HuggingFace,ModelScope模型或者数据集),支持多种微调算法,覆盖各类SFT,自动优化加速(开发者无需关注复杂显存优化与计算加速细节),同时适配多种硬件,训练方案覆盖Nvidia20系以上所有显卡,最低只需8GB显存就可以微调7B模型。
4、评测(OpenCompass)
基于大模型开源开放评测体系司南(OpenCompass2.0,2024年1月发布,包括CompassKit大模型评测全栈工具链以及CompassHub高质量评测基准社区),为大语言模型、多模态模型等各类模型提供一站式评测服务。OpenCompass2.0 全面量化模型在知识、语言、理解、推理和考试等五大能力维度的表现,客观中立地为大模型技术创新提供坚实的技术支撑。目前OpenCompass是获得Meta官方推荐的唯一国产大模型评测体系,广泛应用于头部大模型企业和科研机构。
5、推理部署(LMDeploy)
基于开源LMDeploy这样一个多工能工具包,可以简化大模型的部署过程,优化推理性能。LMDeploy提供大模型在GPU上部署的全流程解决方案,包括模型轻量化、推理和服务。它提供了一系列核心功能,包括高效推理引擎TurboMind,支持持久批处理、阻塞KV缓存、动态拆分融合、张量并行和高性能CUDA内核等关键特性,以确保LLM推理的高吞吐和低延迟。
6、智能体
基于开源轻量级的智能体框架Lagent和多模态的智能体工具箱AgentLego,其中Lagent可以支持多种类型的智能体能力,支持ReAct,ReWoo,AutoGPT不同的智能体Pipeline,灵活支持多种大模型,简单易拓展,支持丰富的工具。而AgentLego提供了一系列多功能的工具集合,支持多个主流智能体系统例如LangChain等,灵活的多模态工具调用接口,支持多模态扩展,包括视觉感知、图像生成与编辑、语音处理以及视觉-语言推理等功能,一键式远程工具部署,轻松使用和调试大模型智能体。
三、InternLM2 技术报告解读
InternLM2,一个开源的大语言模型,它在6个维度和30个基准的全面评估中超越了其前身,特别是在长序列建模和开放性主观评估方面,通过创新的预训练和优化技术实现了这一突破。InternLM2的预训练过程详细阐述,特别强调了对多样数据类型的准备,包括文本、代码和长文本数据。InternLM2有效地捕捉长期依赖性,预训练阶段从4k个token开始,然后扩展到32k个token,其在200k个“大海捞针”测试中的表现优异。InternLM2还通过监督微调(SFT)和一种基于人类反馈的新型条件在线强化学习方法(COOL RLHF)策略进行进一步校准,以解决人类偏好冲突和奖励策略滥用问题。我们通过发布不同训练阶段和模型大小的InternLM2,为社区提供了模型演进的洞察。
InternLM2的贡献有两个方面,一是体现在模型在各种基准测试中的卓越性能,二是体现在不同发展阶段全面开发模型的方法。主要包括:开源InternLM2模型展现卓越性能,设计带有200k上下文窗口,综合数据准备指导以及创新的RLHF训练技术。
具体内容如下:
(一)、基础设施
主要介绍了在预训练、SFT 和 RLHF 中使用的训练框架 InternEvo。
(二)、预训练
1、预训练数据
大规模语言模型(LLM)的预训练深受数据的影响,数据加工主要面对的挑战包含敏感数据的处理、全面知识的覆盖以及效率与质量的平衡。在通用领域的文本数据、编程语言相关数据和长文本数据的处理流程。
2、预训练设置
分词(Tokenization)和预训练的超参数。
3、预训练的三个阶段
第一阶段,使用了长度不超过4k的预训练语料库。第二阶段,使用了包括长度不超过32k的50%的预训练语料库。第三阶段,使用了特定能力的增强数据。在每一阶段,都混合了英文、中文和代码数据。
(三)、对齐
在监督微调(SFT)阶段,使用了一个包含1000万个指令数据实例的数据集,这个数据集中的的指令数据实例已经被筛选以确保它们的有用性和无害性。该数据集涵盖了各种主题,包括一般对话、NLP任务、数学问题、代码生成和函数调用等。
提出了条件在线RLHF(Conditional OnLine RLHF, COOL RLHF)。COOL RLHF首先引入了一个条件奖励机制来调和不同的偏好,允许奖励模型根据特定条件动态地分配其注意力到各种偏好上,从而最优地整合多个偏好。此外,COOL RLHF采用多轮在线RLHF策略,以使LLM能够快速适应新的人类反馈,减少奖励滥用的发生。
在SFT和RLHF中继续使用长上下文预训练数据。具体使用了两种数据:一种是从书籍中获取的长上下文数据,另一种是从GitHub仓库中获得并通过特定范式连接的长上下文数据。
工具增强的LLMs。
(四)、评测分析
全面评测和分析了语言模型在多个领域和任务中的表现。评测主要分为两种类别:(a)下游任务和(b)对齐性。对于每个类别,我们进一步将评测任务细分为具体的子任务,以详细了解模型的优点和缺点。最后,我们讨论了语言模型中潜在的数据污染问题及其对模型性能和可靠性的影响。除非另有明确说明,所有评测都使用OpenCompass进行。
(五)、结论
总之,InternLM2大型语言模型,它在主观和客观评测中表现出色。InternLM2基于超过2T的高质量预训练数据进行训练,涵盖了1.8B、7B和20B参数的模型规模,适用于多种场景。为了更好地支持长文本处理,InternLM2采用了GQA来降低推理成本,并额外训练在多达32000个上下文中。除了开源模型本身,我们还提供了训练过程中的多个阶段检查点,以便利后续研究者的研究。
除了开源模型,我们还详细阐述了InternLM2的训练过程,包括训练框架、预训练文本数据、预训练代码数据、预训练长文本数据和对齐数据。此外,针对强化学习后训练(RLHF)过程中遇到的偏好冲突,我们提出了条件在线RLHF方法,以协调不同的偏好。这些信息对于理解如何准备预训练数据以及如何更有效地训练大型模型具有参考价值。