9月20日,上海人工智能实验室(上海AI实验室)与商汤科技联合香港中文大学和复旦大学正式推出书生·浦语大模型(InternLM)200亿参数版本InternLM-20B,并在阿里云魔搭社区(ModelScope)开源首发。

书生·浦语目前开源了三个量级的大模型:

上海AI实验室联合多家机构推出了中量级参数的InternLM-20B大模型,性能先进且应用便捷,以不足三分之一的参数量,达到了当前被视为开源模型标杆的Llama2-70B的能力水平。

一个大模型的正式落地,需要经历模型选型(评测)、考虑业务场景、参数微调、构建智能体、模型评测,到最终的模型部署,环环相扣,步步为营!

下面将介绍书生·浦语大模型全链路工具体系。

数据来源
书生·万卷1.0 为书生·万卷多模态语料库的首个开源版本,包含文本数据集、图文数据集、视频数据集三部分,数据总量超过2TB。
代码库:https://github.com/opendatalab/WanJuan1.0
基于大模型数据联盟构建的语料库,上海AI实验室对其中部分数据进行细粒度清洗、去重以及价值对齐,形成了书生·万卷1.0,具备多元融合、精细处理、价值对齐、易用高效等四大特征。

文本数据集:


图文数据集:


视频数据集:


除此之外,opendatalab也开放了多样的数据集。


预训练
对LLM模型进行预训练,可以进行多卡扩展,支持千卡训练,兼容主流的huggingface技术生态,适当进行了底层的并行优化。

大模型微调
大模型的下游应用,增量训练和有监督微调是主流的两种方式。

Lora参数微调
上海人工智能实验室开发了低成本大模型训练工具箱 XTuner,旨在让大模型训练不再有门槛。

支持多种格式数据源的混合使用:

XTuner 首次尝试将 HuggingFace 与 OpenMMLab 进行结合,兼顾易用性和可配置性。支持使用 MMEngine Runner 和 HuggingFace Trainer 两种训练引擎.
pip install xtuner
# 使用 MMEngine Runner 训练
xtuner train internlm_7b_qlora_oasst1_e3
# 使用 HugingFace Trainer 训练
xtuner train internlm_7b_qlora_oasst1_e3_hf通过 XTuner,最低只需 8GB 显存,就可以打造专属于你的 AI 助手! 微调时会自动进行显存优化,开发者不必关注细节。

模型评测
目前国内外大模型的评测现状:

opencompass 作为全球领先的大模型开源评测体系(具有6大维度、80+评测集,40w+评测题目)

opencompass开源评测平台架构如下:


用户广泛分布于国内外的知名企业与科研机构。

模型部署
LLM模型的特点带来了相应的技术挑战, 需要采用不同的优化部署方案。

LMDeploy 由 MMDeploy 和 MMRazor 团队联合开发,涵盖了 LLM 任务的全套轻量化、部署和服务解决方案,提供大模型在GPU部署的全流程解决方法。

这个强大的工具箱提供以下核心功能:
具有如下高效的推理引擎、完备工具链。

具备领先同行的推理性能!

模型应用-智能体
大语言模型在信息可靠性、数值计算、工具使用交互具有局限性。智能体将完美的补上这个短板。

Lagent是轻量级框架,用于构建基于LLM(Logical Layered Modeling)的代理。设计目的是为了简化和提高基于这种模型的代理的开发效率。LLM模型用于模拟和管理复杂的系统,而Lagent就是这种模型的实现。
轻量级智能体框架lagent具有以下优势:

多模态智能体工具箱agentlego,提供大量视觉、多模态领域的算法;支持多个主流智能体系统,如langchain、lagent;多模态根据调用接口;一键远程工具部署。

AgentLego 工具库具有以下特点:

from agentlego import load_tool
tool = load_tool('ImageCaption')
# 在 LangChain 中
from langchain import initialize_agent
agent = initialize_agent(
agent="structured-chat-zero-shot-react-description",
tools=[tool.to_langchain()],
...
)
# 在 Transformers Agent 中
from transformers import HfAgent
agent = HfAgent(
'https://api-inference.huggingface.co/models/bigcode/starcoder',
additional_tools=[tool.to_transformers_agent()],
)
# 在 Lagent 中
from lagent import ReAct, ActionExecutor
agent = ReAct(
action_executor=ActionExecutor(actions=[tool.to_lagent()]),
...
)

用一行命令启动工具服务器,并指定在该工具服务器上运行的工具列表:
python server.py ImageCaption TextToImage VQA OCRAgent 系统运行的平台,只需要配置最基本的环境,配合 RemoteTool,即可通过网络通讯的方式,调用远程机器上部署的工具。
from agentlego.tools.remote import RemoteTool
tools = RemoteTool.from_server('Tool server address')今天的分享到此为止,谢谢大家!