>기술 주변기기 >일체 포함 >BigDL-LLM을 사용하여 수백억 개의 매개변수 LLM 추론을 즉시 가속화합니다.

BigDL-LLM을 사용하여 수백억 개의 매개변수 LLM 추론을 즉시 가속화합니다.

王林
王林앞으로
2023-09-05 13:49:041155검색

대형 언어 모델(LLM)을 기반으로 한 AI의 새로운 시대를 맞이하고 있습니다. LLM은 고객 서비스, 가상 비서, 콘텐츠 제작, 프로그래밍 지원 등 다양한 애플리케이션에서 점점 더 중요한 역할을 하고 있습니다.

그러나 LLM의 규모가 계속 확장됨에 따라 대형 모델을 실행하는 데 필요한 리소스 소비도 증가하여 작업 속도가 점점 느려지고 이는 AI 응용 프로그램 개발자에게 상당한 어려움을 안겨줍니다.

이를 위해 Intel은 최근 BigDL-LLM[1]이라는 대규모 모델 오픈 소스 라이브러리를 출시했습니다. 이 라이브러리는 AI 개발자와 연구원이 Intel ® 플랫폼에서 대규모 언어 모델의 최적화를 가속화하고 Intel ® 플랫폼에서 대규모 언어 모델을 사용한 경험.

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

다음은 Intel® Xeon® Platinum 8468이 장착된 시스템에서 BigDL-LLM을 사용하여 가속되는 330억 매개변수의 대규모 언어 모델 Vicuna-33b-v1.3[2]을 보여줍니다. 프로세서는 서버에서 실시간 효과를 실행합니다.

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

ΔIntel® Xeon® Platinum 8468 프로세서(실시간 화면 녹화)가 탑재된 서버에서 330억 매개변수 대규모 언어 모델을 실행하는 실제 속도

BigDL-LLM: Intel® 플랫폼의 오픈 소스 대형 언어 모델 가속 라이브러리

BigDL-LLM은 BigDL의 일부이며 Apache 2.0 라이선스로 출시됩니다.

다양한 저급 언어 모델을 제공합니다. 수준의 정밀 최적화(예: INT4/INT5/INT8), 다양한 Intel® CPU 통합 하드웨어 가속 기술(AVX/VNNI/AMX 등) 및 최신 소프트웨어 최적화를 활용하여 대규모 언어 모델을 강화할 수 있습니다. Intel® 플랫폼에서 더 효율적인 최적화와 더 빠른 작동을 달성하세요.

BigDL-LLM의 중요한 기능은 Hugging Face Transformers API를 기반으로 하는 모델의 경우 코드 한 줄만 변경하면 모델을 가속화할 수 있다는 것입니다. 이론적으로는 anyTransformers 모델 실행을 지원할 수 있습니다. 이는 Transformers에 익숙한 사람들에게 유용합니다. API 개발자들은 매우 친절합니다.

Transformers API 외에도 많은 사람들이 LangChain을 사용하여 대규모 언어 모델 애플리케이션을 개발합니다.

이를 위해 BigDL-LLM은 사용하기 쉬운 LangChain 통합[3]도 제공하므로 개발자는 BigDL-LLM을 쉽게 사용하여 Transformers API 또는 LangChain API를 기반으로 새로운 애플리케이션을 개발하거나 기존 애플리케이션을 마이그레이션할 수 있습니다.

또한 일반 PyTorch 대규모 언어 모델(Transformer 또는 LangChain API를 사용하지 않는 모델)의 경우 BigDL-LLMoptim_model API 원클릭 가속을 사용하여 성능을 향상시킬 수도 있습니다. 자세한 내용은 GitHub README[4] 및 공식 문서[5]를 참조하세요.

BigDL-LLM은 또한 일반적으로 사용되는 다수의 오픈 소스 LLM 가속 샘플(예: Transformers API[6]을 사용하는 샘플 및 LangChain API[7]을 사용하는 샘플)과 튜토리얼(jupyter 노트북 지원 포함)을 제공합니다. [8], 개발자가 빠르게 시작하고 사용해 볼 수 있어 편리합니다.

설치 및 사용: 간단한 설치 과정과 사용하기 쉬운 API 인터페이스

BigDL-LLM을 설치하는 것이 매우 편리합니다. 다음을 실행하기만 하면 됩니다. 명령:

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

Δ코드가 완전히 표시되지 않으면 왼쪽이나 오른쪽으로 슬라이드하세요.

BigDL-LLM을 사용하여 대형 모델을 가속화하는 것도 매우 쉽습니다(여기서는 Transformers 스타일 API만 사용합니다) 예)

BigDL-LLM Transformer 스타일 API를 사용하면 모델을 로드하는 부분만 변경하면 됩니다. 이후의 사용 프로세스는 모델을 로드하는 방법과 완전히 동일합니다. BigDL-LLM API를 사용하는 것은 Transformers API와 거의 동일합니다. 사용자는 가져오기를 변경하고 from_pretrained 매개변수에 설정하기만 하면 됩니다.

load_in_4bit=True그렇습니다. 모델 로딩 과정에서 비트 저정밀 양자화를 수행하고 후속 추론 과정에서 최적화를 위해 다양한 소프트웨어 및 하드웨어 가속 기술을 사용합니다

#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 추론을 즉시 가속화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제