大模型成为发展通用人工智能的重要途径。“书生·浦语”是商汤科技、上海AI实验室联合香港中文大学、复旦大学及上海交通大学发布千亿级参数大语言模型。

D1-书生·浦语大模型全链路开源体系_开源

D1-书生·浦语大模型全链路开源体系_人工智能_02

业务场景简单,如通用对话,直接将模型拿过来,运用prompt engineering接入业务场景;部分微调,如LoRA;调用外部API,或与数据库交互 → 需要智能体;模型评测通过则上线,评测不通过需要在之前的微调中做迭代;模型部署问题:最少的资源来增加吞吐量。

D1-书生·浦语大模型全链路开源体系_开源_03

书生·浦语大模型全链路开源体系,包含数据、预训练、微调、部署、评测、应用端到端全流程体系。

D1-书生·浦语大模型全链路开源体系_开源_04

数据

书生·万卷 1.0 - 多模态语言库,含有2TB数据,涵盖多种模态与任务

  • 数据类型:文本数据(>1TB),图像-文本数据集(>140GB),视频数据(>900GB)
  • 特点:多模态融合且多领域,精细化处理(数据预处理技术),价值观对齐(合法合规)
  • 开放的数据平台:OpenDatalab - 5400多个数据集,还有智能标注工具

在OpenDataLab开源数据管理平台上,有许多的数据,大家都可以共享自己高质量的数据。

      OpenDataLab开源数据集

其中,InternLM大模型预训练数据:

                                         书生·万卷1.0数据集

以书生·万卷1.0为例,数据包含文本数据集、图文数据集、视频数据集三部分,数据总量超过2TB。基于大模型数据联盟构建的语料库,上海人工智能实验室对其中部分数据进行细粒度清洗、去重以及价值对齐,形成了书生·万卷1.0,具备多元融合、精细处理、价值对齐、易用高效等四大特征。

而其中的文本数据集部分,由来自网页、百科、书籍、专利、教材、考题等不同来源的清洗后预训练语料组成,数据总量超过5亿个文档,数据大小超过1TB。该语料将html、text、pdf、epub等多种格式的数据统一处理为字段统一的jsonl格式,并经过细粒度的清洗、去重、价值对齐,形成了一份安全可信、高质量的预训练语料。

D1-书生·浦语大模型全链路开源体系_大模型_05

D1-书生·浦语大模型全链路开源体系_开源_06

预训练

InternLM(github搜索关键字)为上海人工智能实验室发布的大模型,具体模型下载、使用、训练过程可以参考开源项目链接:InternLM大模型

项目支持从8卡到千卡训练,千卡加速效率达92%。支持Hybrid Zero独特技术+极致优化,加速50%。支持无缝接入HuggingFace等技术生态,支持各类轻量化技术。

D1-书生·浦语大模型全链路开源体系_人工智能_07

微调

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

上海人工智能实验室为支持各类主流模型微调,开源了xtuner项目,具体微调过程,可参考链接:

                                    xtuner大模型微调

xtuner项目支持各类微调数据集和主流的大模型,并且支持能力也在持续升级中,如强化学习对齐人类偏好。

D1-书生·浦语大模型全链路开源体系_大模型_08

D1-书生·浦语大模型全链路开源体系_人工智能_09

评测

斯坦福HELM评测项目链接(包括对应论文):HELM评测项目

FlagEval评测项目链接:FlagEval评测项目

MMLU评测官网:MMLU评测

Alpaca Eval评测项目链接:Alpaca Eval评测项目

SuperCLUE评测项目链接:SuperCLUE评测项目

OpenLLM LeaderBoard:OpenLLM评测榜单

上海人工智能实验室在这些基础上,发布了更加全面的OpenCompass评测体系

                            OpenCompass项目链接

包含6大维度,80+评测集,40万+评测题目,如下:

D1-书生·浦语大模型全链路开源体系_开源_10

D1-书生·浦语大模型全链路开源体系_开源_11

部署

针对大语言模型内存开销巨大、庞大的参数量、采用自回归生成token、需要缓存k/v、动态Shaps、请求数不固定、逐个生成数量不定token、transformer结构特点。如何加速token的生成速度?如何解决动态shape,让推理可以不间断?如何有效管理和利用内存服务?如何提升系统整体吞吐量?如何降低请求的平均响应时间?

上海人工智能实验室结合模型并行技术、低比特量化技术、Atterntion优化技术、计算和访存优化技术、Continuous Batching技术,有效解决上述问题,推出高效推理引擎LMDeploy开源项目。具体的,大模型项目如何高效推理部署,可参考开源项目:

                        LMDeploy大模型高效推理部署

LMDeploy开发了两个推理引擎——Pytorch和TurboMind,它们各自侧重于不同的方面,前者致力于推理性能的最终优化,而后者则纯粹在Python中开发,旨在降低开发人员的门槛。

在各种规模的模型中,TurboMind引擎的请求吞吐量比vLLM高1.36 ~ 1.85倍。 在静态推理能力方面,TurboMind的4bit模型推理的token吞吐量(输出token/s)显著优于FP16/BF16推理,最高提高了2.4倍。

D1-书生·浦语大模型全链路开源体系_人工智能_12

为了解决部署中的问题,提出了LMDeploy - 大模型在GPU上部署的解决方案,还有轻量化、推理和服务

  • 接口:Python, gRPC, RESTful
  • 轻量化:4bit权重, 8bit k/v
  • 推理引擎:turbomind, pytorch
  • 服务:openai-server, gradio, triton inference server

推理性能

  • 静态:固定batch,输入/输出token数量,评测整体吞吐量
  • 动态:真实对话,不定长的输入/输出,评测请求的吞吐量

D1-书生·浦语大模型全链路开源体系_大模型_13

大模型应用方面,上海人工智能实验室推出两个开源项目:轻量级智能体Lagent,多模态智能体工具箱AgentLego。

Lagent是一个轻量级的开源框架,允许用户高效地构建基于大型语言模型(LLM)的代理。项目链接:Lagent智能体开源项目

D1-书生·浦语大模型全链路开源体系_人工智能_14

D1-书生·浦语大模型全链路开源体系_大模型_15

关于智能体一个典型的应用场景是,大模型不擅长数学计算,智能体会将PythonInterpreter作用工具使用,从而增强模型输出的正确性。关于智能体PythonInterpreter使用demo,可参考如下链接第3部分(Lagent 智能体工具调用 Demo)学习:

                         Lagent 智能体工具调用 Demo

为了进一步扩展智能体的工具集,AgentLego项目应运而生,是一个通用工具api的开源库,用于扩展和增强基于大型语言模型(LLM)的智能体能力。AgentLego项目链接:

                                Agentlego开源项目

能力图如下:

D1-书生·浦语大模型全链路开源体系_开源_16

下面再回顾一下书生·浦语大模型全链路开源体系:

D1-书生·浦语大模型全链路开源体系_人工智能_17