原因:大模型是发展通用人工智能的重要途径
AI的发展历程:专用模型→通用模型
专用模型:针对特定任务,一个模型解决一个问题(过去一二十年,深度学习理论获得突破以来,如人脸识别、AlphaGo等)
通用大模型:一个模型应对多种任务、多种模态(近两年的发展,如ChatGPT)
轻量级→中量级→重量级
轻量级:InternLM7B,70亿参数的模型,方便部署,低成本可用
中量级:InternLM-20B, 能够在模型能力与推理代价间取得较好的平衡,为商用场景提供了可开发定制高精度的较小规模的模型
重量级:InternLM-123B,千亿参数的模型,具备强大的性能
以不足三分之一的参数量,达到Llama2-70B的水平
典型的大模型应用:智能客服、个人助手、行业应用
从模型到应用需要一些工具/框架协助完成,以下是一个典型的例子:
Step 1. 模型的选型:关注开源模型不同维度上面的能力(针对于应用场景),本质上是一个模型评测的过程
Step 2. 评估业务场景:是否足够的复杂,直接使用模型是否满足需求
Step 3. 模型的微调:在业务场景较为复杂的情况下,需要判断算力是否足够→
若算力足够,进行模型的续训/全参数微调
若算力受限,进行部分参数的微调
Step 4. 是否需要和环境进行交互:例如调用外部的API,或者和已有业务的数据库进行交互
若是,转Step 5;若否,转Step 6
Step 5. 构建基于大模型的智能体:在业务场景中有更好的表现
Step 6. 模型评测:若评测不通过,则需要重新进行模型的微调或迭代
Step 7. 模型部署:如何使用更少的资源,如何提升整个应用的吞吐量
数据——书生·万卷
开源的多模态语料库:包括文本数据、图像·文本数据、视频数据
大小:超过2TB
多模态融合:范围涵盖科技、文学、媒体、教育等不同的领域
精细化处理:应用了书生·浦语研发过程中积累的数据预处理/数据清洗的技术
价值观对齐:把数据的内容和现在主流的价值观进行对齐,更加合法合规,提升语料库的纯净度
其他开放的数据平台:OpenDataLab
预训练——InternLM-Train
四大特点:
- 高可拓展性:支持从8卡到千卡的训练,千卡的加速效率达到92%
- 极值的性能优化:Hybrid Zero,独特技术+极致优化,加速50%
- 兼容主流:兼容如HuggingFace等技术生态,支持各类轻量化技术
- 开箱即用:支持多种规格的语言模型,修改配置即可进行训练
微调——XTuner
在大语言模型的下游应用中经常用到的两种方式:增量续训和有监督微调
- 增量续训
使用场景:让基座模型学习到一些新知识,如某个垂类领域知识
训练数据:文章、书籍、代码等,训练数据格式和预训练一致 - 有监督微调
使用场景:让模型学会理解和遵循各种指令,或者注入少量领域知识
训练数据:高质量的对话、问答数据,数据量相比于增量续训/预训练较小
高效微调框架 XTuner
- 适配多种生态
多种微调算法:兼容多种微调策略与算法(如LoRA、QLoRA),覆盖各类SFT场景
适配多种开源生态:支持加载HuggingFace、ModelScope模型或数据集
自动优化加速:开发者无需关注复杂的显存优化与计算加速细节 - 适配多种硬件
训练方案覆盖NVIDIA 20系以上所有显卡
最低只需8GB显存即可微调7B模型
评测——OpenCompass
国内外评测体系的整体趋势
从评测的全面性来说不能满足目前大模型的发展
开源评测体系 OpenCompass (支持6大维度,80+评测集,40万+评测题目)
大模型能力6大维度:
- 学科
- 语言
- 知识
- 理解
- 推理
- 安全
- 模型层:支持基座模型和对话模型
- 能力层:包括通用能力和特色能力(专门的能力维度)的评测,随着大模型领域的发展不断更新
- 方法层:支持自动化客观评测、基于模型辅助的主管评测、基于人类反馈的主观评测
- 工具层:提供分布式评测、提示词工程、评测数据库上报、评测榜单发布、评测报告生成
OpenCompass的亮点
- 丰富的模型支持:开源模型,API模型一站式评测
- 分布式高效评测:支持千亿参数模型在海量数据集上分布式评测
- 便捷的数据集接口:支持社区用户根据自身需求快速添加自定义数据集
- 敏捷的能力迭代:每周更新大模型能力榜单,每月提升评测工具能力
部署——LMDeploy
大语言模型特点
- 内存开销巨大
庞大的参数量
采用自回归生成token,需要缓存k/v - 动态Shape
请求数不固定
token逐个生成,且数量不固定(根据用户请求) - 模型结构相对简单
Transformer结构,大部分是decoder-only
技术挑战
- 设备
低存储设备(消费级显卡、移动端等)如何部署? - 推理
如何加速token的生成速度
如何解决动态shape,让推理可以不间断
如何有效管理和利用内存 - 服务
提升系统整体吞吐量
降低请求的平均响应时间
部署方案
- 技术点
模型并行
低比特量化
Attention优化
计算和访存优化
Continuous Batching(大语言模型特有)
高效推理框架 LMDeploy (提供大模型在GPU上部署的全流程解决方案,包括模型轻量化、推理和服务)
对外提供的接口:Python、gRPC、RESTful
轻量化:4bit权重,8bit k/v
推理引擎:turbomind、pytorch
服务:openai-server、gradio、triton inference server
LMDeploy的特点:
- 高效推理引擎
持续批处理技巧
深度优化的低比特计算kernel
模型并行
高效的k/v缓存管理机制 - 完备易用的工具链
量化、推理、服务全流程
无缝对接OpenCompass评测推理精度
和OpenAI接口高度兼容的API server - 领先的推理性能
静态推理性能:固定batch,输入/输出token数量
动态推理性能:真实对话,不定长的输入/输出
应用——智能体
大语言模型的局限性:
轻量级智能体框架 Lagent
- 支持多种类型的智能体能力
- 灵活支持多种大语言模型
GPT-3.5/4 InternLM Hugging Face Transformers Llama - 简单易拓展,支持丰富的工具
AI工具:文生图、文生语音、图片描述
能力拓展:搜索、计算器、代码解释器 Rapid API:出行API、财经API、体育资讯API
多模态智能体工具箱 AgentLego
聚焦在给大模型提供更多的工具集合
- 丰富的工具集合,尤其是提供了大量视觉、多模态相关领域的前沿算法功能
- 支持多个主流智能体系统,如LangChain、Tranformers Agent、Lagent等
- 灵活的多模态工具调用接口,可以轻松支持各类输入输出格式的工具函数
- 一键式远程工具部署,轻松使用和调试大模型智能体