当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 用BigDL-LLM 即刻加速百亿级参数LLM推理

用BigDL-LLM 即刻加速百亿级参数LLM推理

来源:51CTO.COM 2023-09-01 23:44:27 0浏览 收藏

有志者,事竟成!如果你在学习科技周边,那么本文《用BigDL-LLM 即刻加速百亿级参数LLM推理》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

我们正迈入一个由大语言模型(Large Language Model, LLM)驱动的 AI 新时代,LLM在诸如客户服务、虚拟助理、内容创作、编程辅助等各类应用中正发挥着越来越重要的作用。

然而,随着 LLM 规模不断扩大,运行大模型所需的资源消耗也越来越大,导致其运行也越来越慢,这给 AI 应用开发者带来了相当大的挑战。

为此,英特尔最近推出了一个名为BigDL-LLM[1]的大模型开源库,可助力 AI 开发者和研究者在英特尔® 平台上加速优化大语言模型,提升大语言模型在英特尔® 平台上的使用体验。

用BigDL-LLM 即刻加速百亿级参数LLM推理

下面就展示了使用 BigDL-LLM 加速过的 330 亿参数的大语言模型 Vicuna-33b-v1.3[2]在一台搭载英特尔® 至强® 铂金 8468 处理器的服务器上运行的实时效果。

用BigDL-LLM 即刻加速百亿级参数LLM推理

△在一台搭载英特尔® 至强® 铂金 8468 处理器的服务器上运行 330 亿参数大语言模型的实际速度(实时录屏)

BigDL-LLM:英特尔® 平台上的开源大语言模型加速库

BigDL-LLM 是一个专注于优化和加速大型语言模型的开源库,它是 BigDL 的一部分,并遵循 Apache 2.0 许可证发布

它提供了各种低精度优化(例如 INT4/INT5/INT8),并可利用多种英特尔® CPU集成的硬件加速技术(AVX/VNNI/AMX 等)和最新的软件优化,来赋能大语言模型在英特尔® 平台上实现更高效的优化和更为快速的运行。

BigDL-LLM 的一大重要特性是:对基于 Hugging Face Transformers API 的模型,只需改动一行代码即可对模型进行加速,理论上可以支持运行任何 Transformers 模型,这对熟悉 Transformers API 的开发者非常友好。

除了 Transformers API,很多人也会使用 LangChain 来开发大语言模型应用。

为此,BigDL-LLM 也提供便于使用的 LangChain 的集成[3],从而让开发者能够轻松使用 BigDL-LLM 来开发新应用或迁移现有的、基于 Transformers API 或 LangChain API 的应用。

此外,对于一般的 PyTorch 大语言模型(没有使用 Transformer 或 LangChain API 的模型),也可使用 BigDL-LLM optimize_model API 一键加速来提升性能。详情请参阅 GitHub README[4]以及官方文档[5]

BigDL-LLM 还提供了大量常用开源 LLM的加速样例(e.g. 使用 Transformers API 的样例[6]和使用 LangChain API 的样例[7],以及教程(包括配套 jupyter notebooks)[8] ,方便开发者快速上手尝试。

安装和使用:简便的安装过程和易用的 API 接口

安装 BigDL-LLM 非常方便,只需执行以下命令即可:

pip install --pre --upgrade bigdl-llm[all]

若代码显示不全,请左右滑动

使用 BigDL-LLM对大模型进行加速也是非常容易的(这里仅用 Transformers 风格 API 进行举例)。

使用 BigDL-LLM Transformer 风格 API 对模型加速,只需要改动模型加载部分,后续使用过程与原生 Transformers 完全一致。

而用 BigDL-LLM API 加载模型的方式与 Transformers API 也几乎一致——用户只需要更改 import,在 from_pretrained 参数中设置 load_in_4bit=True 即可。

BigDL-LLM将在模型加载过程中进行4位低精度量化,并在后续的推理过程中利用各种软硬件加速技术进行优化

#Load Hugging Face Transformers model with INT4 optimizationsfrom bigdl.llm. transformers import AutoModelForCausalLMmodel = AutoModelForCausalLM.from_pretrained('/path/to/model/', load_in_4bit=True)

若代码显示不全,请左右滑动

示例:快速实现一个基于大语言模型的语音助手应用

下文将以 LLM 常见应用场景“语音助手”为例,展示采用 BigDL-LLM 快速实现 LLM 应用的案例。通常情况下,语音助手应用的工作流程分为以下两个部分:

用BigDL-LLM 即刻加速百亿级参数LLM推理

△图 1. 语音助手工作流程示意
  1. 语音识别——使用语音识别模型(本示例采用了 Whisper 模型[9] )将用户的语音转换为文本;
  2. 文本生成——将 1 中输出的文本作为提示语 (prompt),使用一个大语言模型(本示例采用了 Llama2[10] )生成回复。

以下是本文使用 BigDL-LLM 和 LangChain[11] 来搭建语音助手应用的过程:

语音识别阶段:第一步,加载预处理器 processor 和语音识别模型 recog_model。本示例中使用的识别模型 Whisper 是一个 Transformers 模型。

只需使用 BigDL-LLM 中的 AutoModelForSpeechSeq2Seq 并设置参数 load_in_4bit=True,就能够以 INT4 精度加载并加速这一模型,从而显著缩短模型推理用时。

#processor = WhisperProcessor .from_pretrained(recog_model_path)recog_model = AutoModelForSpeechSeq2Seq .from_pretrained(recog_model_path, load_in_4bit=True)

若代码显示不全,请左右滑动

第二步,进行语音识别。首先使用处理器从输入语音中提取输入特征,然后使用识别模型预测 token,并再次使用处理器将 token 解码为自然语言文本。

input_features = processor(frame_data,sampling_rate=audio.sample_rate,return_tensor=“pt”).input_featurespredicted_ids = recogn_model.generate(input_features, forced_decoder_ids=forced_decoder_ids)text = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]

若代码显示不全,请左右滑动

文本生成阶段,首先使用 BigDL-LLM 的 TransformersLLM API 创建一个 LangChain 语言模型(TransformersLLM 是在 BigDL-LLM 中定义的语言链 LLM 集成)。

可以使用这个 API 来加载 Hugging Face Transformers 的任何模型

llm = TransformersLLM . from_model_id(model_id=llm_model_path,model_kwargs={"temperature": 0, "max_length": args.max_length, "trust_remote_code": True},)

若代码显示不全,请左右滑动

然后,创建一个正常的对话链 LLMChain,并将已经创建的 llm 设置为输入参数。

# The following code is complete the same as the use-casevoiceassistant_chain = LLMChain(llm=llm, prompt=prompt,verbose=True,memory=ConversationBufferWindowMemory(k=2),)

若代码显示不全,请左右滑动

以下代码将使用一个链条来记录所有对话历史,并将其适当地格式化为大型语言模型的输入。这样,我们可以生成合适的回复。只需将识别模型生成的文本作为 "human_input" 输入即可。代码如下:

response_text = voiceassistant_chain .predict(human_input=text, stop=”\n\n”)

若代码显示不全,请左右滑动

最后,将语音识别和文本生成步骤放入循环中,即可在多轮对话中与该“语音助手”交谈。您可访问底部 [12] 链接,查看完整的示例代码,并使用自己的电脑进行尝试。快用 BigDL-LLM 来快速搭建自己的语音助手吧!

作者简介

黄晟盛是英特尔公司的资深架构师,黄凯是英特尔公司的AI框架工程师,戴金权是英特尔院士、大数据技术全球CTO和BigDL项目的创始人,他们都从事着与大数据和AI相关的工作

今天关于《用BigDL-LLM 即刻加速百亿级参数LLM推理》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于人工智能,数据的内容请关注golang学习网公众号!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
苹果芯跑大模型不用降计算精度,投机采样杀疯了,GPT-4也在用苹果芯跑大模型不用降计算精度,投机采样杀疯了,GPT-4也在用
上一篇
苹果芯跑大模型不用降计算精度,投机采样杀疯了,GPT-4也在用
共话人工智能时代数据安全挑战与对策 “浦江护航”数据安全上海论坛在杨浦举办
下一篇
共话人工智能时代数据安全挑战与对策 “浦江护航”数据安全上海论坛在杨浦举办
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    514次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    499次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO  AI Mermaid 流程图:自然语言生成,文本驱动可视化创作
    AI Mermaid流程图
    SEO AI Mermaid 流程图工具:基于 Mermaid 语法,AI 辅助,自然语言生成流程图,提升可视化创作效率,适用于开发者、产品经理、教育工作者。
    61次使用
  • 搜获客笔记生成器:小红书医美爆款内容AI创作神器
    搜获客【笔记生成器】
    搜获客笔记生成器,国内首个聚焦小红书医美垂类的AI文案工具。1500万爆款文案库,行业专属算法,助您高效创作合规、引流的医美笔记,提升运营效率,引爆小红书流量!
    30次使用
  • iTerms:一站式法律AI工作台,智能合同审查起草与法律问答专家
    iTerms
    iTerms是一款专业的一站式法律AI工作台,提供AI合同审查、AI合同起草及AI法律问答服务。通过智能问答、深度思考与联网检索,助您高效检索法律法规与司法判例,告别传统模板,实现合同一键起草与在线编辑,大幅提升法律事务处理效率。
    67次使用
  • 迅捷AIPPT:AI智能PPT生成器,高效制作专业演示文稿
    迅捷AIPPT
    迅捷AIPPT是一款高效AI智能PPT生成软件,一键智能生成精美演示文稿。内置海量专业模板、多样风格,支持自定义大纲,助您轻松制作高质量PPT,大幅节省时间。
    54次使用
  • 迅捷AI写作软件:AI智能创作专家,赋能高效文本处理
    迅捷AI写作
    迅捷AI写作,您的智能AI写作助手!快速生成各类文稿,涵盖新媒体、工作汇报。更兼具文字识别、语音转换、格式转换等实用功能,一站式解决文本处理难题,显著提升工作效率。
    39次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码