论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
主机系统
›
linux
›
基于魔搭开源推理引擎 DashInfer实现CPU服务器大模型推 ...
基于魔搭开源推理引擎 DashInfer实现CPU服务器大模型推理--理论篇 ...
涛声依旧在
论坛元老
|
2024-6-9 14:54:06
|
显示全部楼层
|
阅读模式
楼主
主题
1710
|
帖子
1710
|
积分
5130
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
媒介
在人工智能技术飞速发展的今天,如何高效地在CPU上运行大规模的预训练语言模型(LLM)成为了加快天生式AI应用广泛落地的焦点问题。阿里巴巴达摩院模型开源社区ModelScope近期推出了一款名为DashInfer的推理引擎,旨在办理这一挑衅。
DashInfer用于推理预训练大语言模型(LLM)的推理引擎。
DashInfer接纳C++ Runtime编写,提供C++和Python语言接口。DashInfer具有生产级别的高性能表现,适用于多种CPU架构,包罗x86和ARMv9。DashInfer支持连续批处理(Continuous Batching)和多NUMA推理(NUMA-Aware),可以或许充分使用服务器级CPU的算力,为推理14B及以下的LLM模型提供更多的硬件选择。
不想看理论的小伙伴可以直接跳转到实战了:基于魔搭开源推理引擎 DashInfer实现CPU服务器大模型推理--实战篇-CSDN博客
DashInfer介绍
轻量级架构:
仅需要最小程度的第三方依赖,并接纳静态链接的方式引用依赖库。提供C++和Python接口,让DashInfer可以轻松集成到您的体系和其他编程语言中。
提供高精度实现:
DashInfer经过严酷的精度测试,可以或许提供与PyTorch、GPU引擎(vLLM)一致的推理精度。
优化的盘算Kernel:联合OneDNN和自研汇编kernel,DashInfer可以或许在ARM和x86上发挥硬件的最大性能。ARM cpu+单batch条件下,推理Llama2-7B-Chat的16-bit权重和8-bit权重模型,DashInfer的天生性能分别是llama.cpp的1.5倍和1.9倍,详细性能测试结果参考performance.md
(https://github.com/modelscope/dash-infer/blob/main/documents/EN/performance.md)。
行业标准LLM推理技术:
接纳行业标准的LLM推理技术,例如:
连续批处理(Continuous Batching),可以或许进行即时插入新请求,支持流式输出;
基于请求的异步接口允许对每个请求的天生参数、请求状态等进行单独控制。
支持主流LLM开源模型:
支持主流的开源LLM模型,包罗Qwen、LLaMA、ChatGLM等,支持Huggingface格式的模型读取。
PTQ量化:
使用DashInfer的InstantQuant(IQ),无需训练微调即可实现weight-only量化加快,进步部署效率。经过精度测试,IQ对模型精度不会产生影响。目前版本支持ARM CPU上的weight-only 8-bit量化。
优化的盘算Kernel:
联合OneDNN和自研汇编kernel,DashInfer可以或许在ARM和x86上发挥硬件的最大性能。
NUMA-Aware:
支持多NUMA的tensor并行推理,充分发挥服务器级CPU的算力。通过numactl和多进程架构,精准控制盘算线程的NUMA亲和性,充分使用多节点CPU的性能,而且制止跨NUMA访存带来性能降落问题。关于多NUMA的性能指导可以参考:Optimizing Applications for NUMA - Intel, What is NUMA?。
上下文长度(Context Length):
目前版本支持11k的Context Length,未来还会继承支持更长Context Length。
提供多语言API接口:
提供C++和Python接口,可以或许直接使用C++接口对接到Java、Rust等其他编程语言。
操作体系支持:
支持Centos7、Ubuntu22.04等主流Linux服务器操作体系,并提供对应的Docker镜像。
硬件支持和数据范例
硬件支持
x86 CPU:
要求硬件至少需要支持AVX2指令集。对于第五代至强(Xeon)处理器(Emerald Rapids)、第四代至强(Xeon)处理器(Sapphire Rapids)等(对应于阿里云第8代ECS实例,如g8i),接纳AMX矩阵指令加快盘算。
ARMv9 CPU:
要求硬件支持SVE指令集。支持如倚天(Yitian)710等ARMv9架构处理器(对应于阿里云第8代ECS实例,如g8y),接纳SVE向量指令加快盘算。
数据范例
x86 CPU:
支持FP32、BF16。
ARM Yitian710 CPU:
FP32、BF16、InstantQuant。
InstantQuant
InstantQuant是一种weight-only量化技术。
在Yitian710 CPU(ARMv9)上,DashInfer支持weight-only量化。
要进行weight-only量化,需要修改模型设置文件的do_dynamic_quantize_convert和quantization_config字段,参数的详细说明参考Github。
weight-only量化,会在GroupSize的范围内求取weight的最大、最小值,并将weight数值映射到uint8的值域范围,盘算公式如下:
推理过程中,量化的weight会被恢复成bfloat16进行矩阵乘法盘算。
软件框架
推理流程
模型加载与序列化:
此过程负责读取模型权重、设置模型转换参数及量化参数,并根据这些信息对模型进行序列化,并天生DashInfer格式(.asparam、.asgraph)的模型。此功能仅提供Python接口,并依赖于PyTorch和transformers库来访问权重。不同模型对PyTorch和transformers的版本要求可能有所不同,DashInfer本身并没有特殊的版本要求。
模型推理:
此步调负责执行模型推理,使用DashInfer推理序列化后的模型,不依赖PyTorch等组件。DashInfer接纳DLPack格式的tensor来实现与外部框架(如PyTorch)的交互。DLPack格式的tensor,可以通过手动创建或由深度学习框架的tensor转换函数产生。对于C++接口,由于已经将几乎全部依赖静态编译,仅对openmp运行时库以及C++体系库的有依赖。我们进行了链接符号处理,以确保只有DashInfer的API接口符号可见,制止与客户体系中已有的公共库(如protobuf等)发生版本冲突。
说明:
.asparam、.asgraph是由DashInfer内核(allspark)定义的一种特殊的模型格式。
使用Python接口时,可以将步骤1和2的代码放在一起。由于缺少C++层面加载Huggingface模型的功能,C++接口只能进行DashInfer格式的模型推理,因此在使用C++接口前,必须先用Python接口先对模型进行序列化。
复制代码
代码开源地址:
https://github.com/modelscope/dash-infer
推理体验地址:
https://www.modelscope.cn/studios/modelscope/DashInfer-Demo
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
涛声依旧在
论坛元老
这个人很懒什么都没写!
楼主热帖
MySQL基本SQL语句之高级操作
maven配置步骤及问题
Juc并发编程12——2万字深入源码:线程 ...
史上最全MongoDB之部署篇
IOS OpenGL ES GPUImage 图像黑白色调 ...
【云原生】裸金属架构之服务器安装VMWa ...
Flink-基于 DataStream API 实现欺诈检 ...
一文读懂K-Means原理与Python实现 ...
大数据ETL开发之图解Kettle工具(入门 ...
Mysql进阶优化篇01——四万字详解数据 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
MES
虚拟化与私有云
快速回复
返回顶部
返回列表