最近在工业界与学术界,最热门的方向莫过于预训练语言模型。而具有百亿乃至千亿参数的大规模预训练语言模型,更是业界与学术界发力的热点。

但现在大模型的应用却有着较高的门槛,排队申请或需要付费的API、较长的模型响应速度、推理所需要的较为昂贵的算力资源……种种因素都影响着大模型的快速应用与落地。对于普通的研究者与开发者来说,大模型可以说是看得见,却很难摸得着。

近日,清华大学自然语言处理实验室团队与北京智源研究院联合发布了一款低资源大模型推理工具包BMInf,在最低配置为NVIDIA GTX 1060 6G的千元级显卡上便可以进行百亿模型的高效推理。BMInf全名为Big Model Inference,它具有如下特点:

1、硬件友好。BMInf最低支持在NVIDIA GTX 1060单卡运行百亿大模型,使用更好的GPU会有更好的运行性能。在显存支持进行大模型推理的情况下(如V100或A100显卡),BMInf的实现较现有PyTorch版本仍有较大性能提升。

2、开源共享。模型参数开源共享,用户在本地即可部署运行,无需访问或申请API。

3、能力全面。支持生成模型CPM1 [1]、通用模型CPM2 [2]、对话模型EVA2 [3],模型能力覆盖文本补全、文本生成与对话。

4、模型升级。基于持续学习推出百亿模型新升级CPM2.1,文本生成能力大幅提高

5、应用便捷。基于工具包可以快速开发大模型相关下游应用。

项目地址:https://github.com/OpenBMB/BMInf

对于大模型使用感兴趣的同学,快来试用体验吧!

使用方式

工具包的使用安装较为便捷,官方README里提供了pip、源代码与Docker三种安装方式。

图1 工具包三种安装方式

安装完成后,便可以通过运行examples里面的脚本来体验大模型的快速推理了。运行过程中工具包首先会自动下载模型,之后便能够为事先预设的句子生成预测的结果。

图2 工具包运行演示

(样例可以说是紧贴时事了,不过模型为特定日门票的定价倒是便宜了一些)

除此之外,工具包还提供了基于三种模型的网页版展示Demo,用户可以方便地通过本地运行服务器来可视化地体验大模型的推理结果。目前Demo提供了三项功能,分别是文本填空、智能对话与故事生成,通过网站用户可以非常快捷地体验大模型的趣味应用。

图3 利用文本填空功能进行工具包起名

图4 以“哈利波特第一次去霍格沃茨魔法学校上学,地址在北京通州”开头生成故事

背后技术

项目的官方文档中以CPM2-11B(悟道·文源)模型为例介绍了工具包背后所用到的技术。

具体来说,CPM2-11B是一个巨大的预训练语言模型,它包含了110亿参数,总共的模型文件大小达到了22GB。对于一块普通的机械硬盘来说,光是读取这样大小的模型就已经会花费数分钟的时间,更不用说将这样庞大的数据放进内存和GPU中进行后续的运算。

在工具包的设计过程中,开发者预设了GTX 1060 6GB显存和16GB内存这样的最低配置要求。开发者使用了一系列的技术让一个大规模的预训练语言模型可以运行在一台普通的电脑上,并进行相关的推理运算。

模型压缩

如果不做任何特殊处理,运行一个22GB的模型需要一块显存大小至少为22GB的GPU。满足这样条件的GPU通常是很昂贵的(例如 V100 32GB, A100, RTX 3090,市场价均超过2万元),为了能让模型在更小显存的GPU上运行,开发者在保留模型原有结构的基础上,将模型中占比最大的线性层参数(占比99%)从16比特浮点数转换为了int8格式。为了让压缩后的模型更贴近于原来的效果,开发者在将参数转换后进行了几千次迭代的微调让模型适应新的参数精度,微调后的模型基本上已经达到了和原始模型相近的能力。在具体的PPL指标中,压缩后的模型相比于压缩前只相差了5~10左右。

显存调度

在使用了模型压缩技术后,原本大小22GB的模型被压缩到了11GB,对于NVIDIA旗舰级别GPU来说(如GTX 1080Ti, RTX 2080Ti),11GB显存已经是可以摸到的门槛了,但是考虑到在推理过程中还需要使用一些额外的空间来存储中间变量,这样的显存容量依然不够。另外,能够拥有这样旗舰级别显卡的个人用户仍然较少,像GTX 1060 6G这样甜点级的GPU有着更加广泛的市场占有率。

要让一个11GB大小的模型运行在显存容量只有6GB的GPU上,开发者使用了显存和内存的优化与调度技术。在运行过程中将需要用于进行运算的模型参数提前准备好并放置在显存中,而对于暂时不需要用到的部分,则放置在CPU内存中。

图5 模型中不同层参数的调度示意

在具体的实现过程中,开发者使用了两个独立的内存池,交替地用于计算和加载参数,并通过将计算的时间和参数加载的时间重叠来提升整体的推理效率。通过调整每次加载和运算的层数,可以将大模型适配到不同显存容量的GPU。实验表明,将更多的模型层驻留在GPU中通常可以带来更好的效率。在整个模型推理的过程中,瓶颈往往在于内存和显存的拷贝,这也是工具包之后会优化的方向。

性能测试

开发者在不同NVIDIA显卡上进行了百亿模型解码的速度测试。即使在1060显卡上,模型仍然能够达到1.6个字符每秒的解码速度,达到了类似于打字机一样的运行效率。拥有较强性能显卡的用户仍然会获得更快的解码速度。在支持直接运行大模型推理的显卡上(如单卡V100或A100),BMInf的解码速度仍明显优于现有的基于PyTorch的实现(注:该PyTorch实现仍使用公开版本模型参数)。

图6 工具包在不同显卡上的解码速度测试

参考文献

1. CPM: A Large-scale Generative Chinese Pre-trained Language Model. Zhengyan Zhang, Xu Han, Hao Zhou, Pei Ke, Yuxian Gu, Deming Ye, Yujia Qin, Yusheng Su, Haozhe Ji, Jian Guan, Fanchao Qi, Xiaozhi Wang, Yanan Zheng, Guoyang Zeng, Huanqi Cao, Shengqi Chen, Daixuan Li, Zhenbo Sun, Zhiyuan Liu, Minlie Huang, Wentao Han, Jie Tang, Juanzi Li, Xiaoyan Zhu, Maosong Sun. 2020.

2. CPM-2: Large-scale Cost-efficient Pre-trained Language Models. Zhengyan Zhang, Yuxian Gu, Xu Han, Shengqi Chen, Chaojun Xiao, Zhenbo Sun, Yuan Yao, Fanchao Qi, Jian Guan, Pei Ke, Yanzheng Cai, Guoyang Zeng, Zhixing Tan, Zhiyuan Liu, Minlie Huang, Wentao Han, Yang Liu, Xiaoyan Zhu, Maosong Sun. 2021.

3. EVA: An Open-Domain Chinese Dialogue System with Large-Scale Generative Pre-Training. Hao Zhou, Pei Ke, Zheng Zhang, Yuxian Gu, Yinhe Zheng, Chujie Zheng, Yida Wang, Chen Henry Wu, Hao Sun, Xiaocong Yang, Bosi Wen, Xiaoyan Zhu, Minlie Huang, Jie Tang. 2021.

团队招聘

BMInf由智源研究院语言大模型加速技术创新中心OpenBMB团队开发与维护,创新中心负责人是智源青年科学家、清华大学副教授刘知远。OpenBMB全称为Open Lab for Big Model Base,团队目前主要由清华大学自然语言处理实验室成员组成,团队过去两年中陆续推出了悟道·文源、CPM等知名大规模预训练语言模型(https://github.com/TsinghuaAI/CPM),受到业界的广泛关注与好评。

智源研究院语言大模型加速技术创新中心OpenBMB旨在打造大规模预训练语言模型库与相关工具,加速百亿级以上大模型的训练、微调与推理,降低大模型使用门槛,在此基础上依托开源社区进一步推动语言大模型相关生态发展,实现大模型的标准化、普及化和实用化。在此欢迎广大志同道合的朋友加入创新中心和OpenBMB,共同探索大规模预训练语言模型加速技术,让大模型“飞入寻常百姓家”。

NLP系统工程师(全职/实习)

工作内容:

开发大规模预训练语言模型训练、部署、微调系统,主要涉及功能实现、性能优化、系统调优、硬件适配等工作。在工作的过程中,需要根据具体任务的需求,查阅相关资料和文献,并结合实际情况实现相应技术。

能力需求:

1. 熟练掌握C语言和Python;

2. 熟悉CUDA计算架构,拥有CUDA相关编程经验;

3. 了解NLP领域重要任务、主流模型结构;

4. 能够熟练阅读外文文献、文档和相关社区论坛内容,可以针对自己的需要检索并学习相关知识;

5. 有良好的沟通能力,工作积极主动,对大模型的应用感兴趣,能够与团队其他成员协作。

NLP应用工程师(全职/实习)

工作内容:

参与算法落地及对接工作,利用已有系统实现大规模语言模型在具体任务上的应用,并与产品开发人员完成相应的功能对接和调整工作。在工作的过程中,能够根据自己对产品的理解,主动探索或提出新的应用场景,并进行原型的实现。

能力需求:

1. 熟练掌握Python;

2. 有NLP领域相关开发或科研经验,了解NLP领域重要任务和主流模型,对预训练语言模型有深入了解;

3. 能够根据自己的想法,自主检索相关文献,并设计合理技术路线;

4. 有良好的沟通能力,工作积极主动,对大模型的应用感兴趣,能够与团队其他成员协作。

NLP数据工程师(实习)

工作内容:

根据研发人员的需求,收集、处理大规模文本数据,并构建相应数据集,用于支撑大模型的训练与应用。在工作过程中,能够主动挖掘数据价值,并能对数据进行一些基础特征的分析。

能力需求: 

1. 熟练掌握C语言和Python;

2. 能够完成常见的数据处理工作,例如:去重、去噪、HTML解析等;

3. 对NLP领域有所了解,包括常用工具、常见算法等;

4. 有良好的沟通能力,工作积极主动,对大模型的应用感兴趣,能够与团队其他成员协作。

WEB工程师(全职/实习)

工作内容:

参与开源社区相关应用和产品的开发工作,负责根据具体的产品需求实现相应功能。在工作过程中需要与NLP系统工程师进行对接,能够根据开发过程中遇到的问题进行合理反馈。

能力需求:

1. 前端工程师需熟练掌握:Vue框架、HTML、CSS和Javascript;

2. 后端工程师需熟练掌握:Java、Python以及相关语言主流的Web框架;

3. 对于WEB开发中常见的问题或漏洞有所了解,能够自主检索解决常见问题;

4. 有良好的沟通能力,工作积极主动,对大模型的应用感兴趣,能够与团队其他成员协作。

薪资待遇 

- 全职员工根据实际水平薪资15K-40K/月(税前);

- 实习生要求每周至少投入两天时间,薪资300元/天;

- 对于能力优秀、水平突出者,待遇面议,上不封顶。

投递方式 

邮箱:openbmb@gmail.com

邮件标题请注明:智源大模型应聘_职位_姓名

千元显卡玩转百亿大模型,清华推出工具包BMInf让模型推理轻而易举相关推荐

  1. 一卡顶四卡,清华推出工具包BMInf玩转百亿大模型

    最近在工业界与学术界,最热门的方向莫过于预训练语言模型.而具有百亿乃至千亿参数的大规模预训练语言模型,更是业界与学术界发力的热点. 但现在大模型的应用却有着较高的门槛,排队申请或需要付费的API.较长 ...

  2. 全球最大智能模型“悟道”首次落地:数字人+终端AI助手,支持NVIDIA GTX单卡机运行百亿大模型

    作者 | 琰琰 悟道2.0,要怎么用起来? 连创"中国首个"和"世界最大"两项记录后,悟道大模型的落地应用成为业界关心的热点话题. GPT-3的问世掀起了一股& ...

  3. 如何做到毫秒级从百亿大表任意维度筛选数据?| 技术头条

    业务背景 随着闲鱼业务的发展,用户规模达到数亿级,用户维度的数据指标,达到上百个之多.如何从亿级别的数据中,快速筛选出符合期望的用户人群,进行精细化人群运营,是技术需要解决的问题.业界的很多方案往往需 ...

  4. 毫秒级从百亿大表任意维度筛选数据,是怎么做到的…

    作者:闲鱼技术-才思 预告:12月22日,ACOUG 联合创始人及多位核心专家将欢聚一堂,为"关键词解析2018技术圈的那些事儿"为主题的分享讨论,欢迎大家踊跃报名参会. 点击&q ...

  5. 毫秒级从百亿大表任意维度筛选数据,是怎么做到的.

    文章概要 1 业务背景 随着闲鱼业务的发展,用户规模达到数亿级,用户维度的数据指标,达到上百个之多.如何从亿级别的数据中,快速筛选出符合期望的用户人群,进行精细化人群运营,是技术需要解决的问题.业界的 ...

  6. 你来我往!为了百亿大单,微软亚马逊又掐上了

    西雅图IT圈:seattleit [今日作者]Dexter 读书巨慢理事会会长 1 最近的亚马逊可谓春风得意. 在全球经济都在受到新冠疫情近乎毁灭性打击的情况下,亚马逊的电商业务反而成了受益者,订单量 ...

  7. 谷歌千元级TPU芯片发布,TensorFlow更换Logo推出2.0最新版

    栗子 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 今天凌晨,谷歌一年一度的TensorFlow开发者大会在加州举行.明明应该是一场软件盛会,却被生生开出了硬件发布会的味道. 谷歌在会 ...

  8. 大神note3千元指纹机,这是要逼疯友商吗

    新发现(光山居士).7月20日下午.奇酷公司在北京奥雅会展中心召开公布会,宣布推出首款千元级别的指纹识别机大神Note3.据悉.该型号手机.移动版售价899元.全网通版售1099元,并在16:00開始 ...

  9. “百亿补贴”真的能拯救一切吗?

    核心要点: 拼多多的百亿补贴策略之所以能取得很好效果,与彼时的行业环境和拼多多的自身处境分不开. "百亿补贴"的打法有门道,核心逻辑是选品集中于高客单价的大牌商品. 在今年疫情的冲 ...

最新文章

  1. WCF错误:413 Request Entity Too Large
  2. 云计算物联网Hold住未来十大技术趋势
  3. 史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)
  4. db2 某个字段排序_MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序...
  5. java线程堆栈_深入JVM剖析Java的线程堆栈
  6. linux修改文件的权限和修改文件所有者和所属组
  7. Linux操作系统中使用“autogen.sh+configure+make”编译代码的方法
  8. 中国网络游戏发展简史
  9. 2021.9.9 prescan文档翻译 Adaptive Cruise Control System
  10. 【无标题】炒外汇是什么,为什么有人说炒外汇能发财
  11. ie ajax十分卡,解决jquery .ajax 在IE下卡死问题的解决方法
  12. 麻雀虽小五脏俱全,中小企业的知识管理须重视
  13. [BZOJ2109]Plane 航空管制
  14. Python中pass是什么?
  15. 一篇读懂springboot用echarts实现实时柱状图和饼状图查询
  16. 微软2016校园招聘4月在线笔试 hihocoder 1288 Font Size (模拟)
  17. 有毒气体传感器代替金丝雀和老鼠在矿山
  18. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK .
  19. 接口测试,后端接口还没开发完,如何测?解决看这一篇就够了......
  20. jQuery过滤器:筛选jquery对象数组中的DOM对象

热门文章

  1. linux串口boost,Boost串口通信第一课 boost::asio::serial_port基本使用
  2. 结构体里有指针 scanf赋值_C++|链表中常见的链表节点指针操作
  3. mfc 窗体不可点击的原因_如何设计一个简单的Access登录窗体(2)
  4. 未来一瞥:机器人码农
  5. CentOS 7.4 基于LNMP搭建wordpress
  6. ASP.NET MVC 4 (九) 模型绑定
  7. linux (ubuntu)安装pycharm
  8. Python系列之Collections内置模块(2)
  9. C++你不知道的那些事儿—C++语言的15个晦涩特性
  10. 不同局域网内经Internet的P2P通信技术总结