大模型成为发展通用人工智能的重要途径。“书生·浦语”是商汤科技、上海AI实验室联合香港中文大学、复旦大学及上海交通大学发布千亿级参数大语言模型。
业务场景简单,如通用对话,直接将模型拿过来,运用prompt engineering接入业务场景;部分微调,如LoRA;调用外部API,或与数据库交互 → 需要智能体;模型评测通过则上线,评测不通过需要在之前的微调中做迭代;模型部署问题:最少的资源来增加吞吐量。
书生·浦语大模型全链路开源体系,包含数据、预训练、微调、部署、评测、应用端到端全流程体系。
数据
书生·万卷 1.0 - 多模态语言库,含有2TB数据,涵盖多种模态与任务
- 数据类型:文本数据(>1TB),图像-文本数据集(>140GB),视频数据(>900GB)
- 特点:多模态融合且多领域,精细化处理(数据预处理技术),价值观对齐(合法合规)
- 开放的数据平台:OpenDatalab - 5400多个数据集,还有智能标注工具
在OpenDataLab开源数据管理平台上,有许多的数据,大家都可以共享自己高质量的数据。
其中,InternLM大模型预训练数据:
以书生·万卷1.0为例,数据包含文本数据集、图文数据集、视频数据集三部分,数据总量超过2TB。基于大模型数据联盟构建的语料库,上海人工智能实验室对其中部分数据进行细粒度清洗、去重以及价值对齐,形成了书生·万卷1.0,具备多元融合、精细处理、价值对齐、易用高效等四大特征。
而其中的文本数据集部分,由来自网页、百科、书籍、专利、教材、考题等不同来源的清洗后预训练语料组成,数据总量超过5亿个文档,数据大小超过1TB。该语料将html、text、pdf、epub等多种格式的数据统一处理为字段统一的jsonl格式,并经过细粒度的清洗、去重、价值对齐,形成了一份安全可信、高质量的预训练语料。
预训练
InternLM(github搜索关键字)为上海人工智能实验室发布的大模型,具体模型下载、使用、训练过程可以参考开源项目链接:InternLM大模型
项目支持从8卡到千卡训练,千卡加速效率达92%。支持Hybrid Zero独特技术+极致优化,加速50%。支持无缝接入HuggingFace等技术生态,支持各类轻量化技术。
微调
微调包括增量续训和有监督微调。增量续训主要用于让基座模型学习到一些新知识,如某个垂类领域知识文章、书籍、代码等;有监督微调主要用于让模型学会理解和遵循各种指令,或者注入少量领域知识,如高质量对话、问答数据。
上海人工智能实验室为支持各类主流模型微调,开源了xtuner项目,具体微调过程,可参考链接:
xtuner项目支持各类微调数据集和主流的大模型,并且支持能力也在持续升级中,如强化学习对齐人类偏好。
评测
斯坦福HELM评测项目链接(包括对应论文):HELM评测项目
FlagEval评测项目链接:FlagEval评测项目
MMLU评测官网:MMLU评测
Alpaca Eval评测项目链接:Alpaca Eval评测项目
SuperCLUE评测项目链接:SuperCLUE评测项目
OpenLLM LeaderBoard:OpenLLM评测榜单
上海人工智能实验室在这些基础上,发布了更加全面的OpenCompass评测体系:
包含6大维度,80+评测集,40万+评测题目,如下:
部署
针对大语言模型内存开销巨大、庞大的参数量、采用自回归生成token、需要缓存k/v、动态Shaps、请求数不固定、逐个生成数量不定token、transformer结构特点。如何加速token的生成速度?如何解决动态shape,让推理可以不间断?如何有效管理和利用内存服务?如何提升系统整体吞吐量?如何降低请求的平均响应时间?
上海人工智能实验室结合模型并行技术、低比特量化技术、Atterntion优化技术、计算和访存优化技术、Continuous Batching技术,有效解决上述问题,推出高效推理引擎LMDeploy开源项目。具体的,大模型项目如何高效推理部署,可参考开源项目:
LMDeploy开发了两个推理引擎——Pytorch和TurboMind,它们各自侧重于不同的方面,前者致力于推理性能的最终优化,而后者则纯粹在Python中开发,旨在降低开发人员的门槛。
在各种规模的模型中,TurboMind引擎的请求吞吐量比vLLM高1.36 ~ 1.85倍。 在静态推理能力方面,TurboMind的4bit模型推理的token吞吐量(输出token/s)显著优于FP16/BF16推理,最高提高了2.4倍。
为了解决部署中的问题,提出了LMDeploy - 大模型在GPU上部署的解决方案,还有轻量化、推理和服务
- 接口:Python, gRPC, RESTful
- 轻量化:4bit权重, 8bit k/v
- 推理引擎:turbomind, pytorch
- 服务:openai-server, gradio, triton inference server
推理性能
- 静态:固定batch,输入/输出token数量,评测整体吞吐量
- 动态:真实对话,不定长的输入/输出,评测请求的吞吐量
大模型应用方面,上海人工智能实验室推出两个开源项目:轻量级智能体Lagent,多模态智能体工具箱AgentLego。
Lagent是一个轻量级的开源框架,允许用户高效地构建基于大型语言模型(LLM)的代理。项目链接:Lagent智能体开源项目。
关于智能体一个典型的应用场景是,大模型不擅长数学计算,智能体会将PythonInterpreter作用工具使用,从而增强模型输出的正确性。关于智能体PythonInterpreter使用demo,可参考如下链接第3部分(Lagent 智能体工具调用 Demo)学习:
为了进一步扩展智能体的工具集,AgentLego项目应运而生,是一个通用工具api的开源库,用于扩展和增强基于大型语言模型(LLM)的智能体能力。AgentLego项目链接:
能力图如下:
下面再回顾一下书生·浦语大模型全链路开源体系: