BigDL-LLMを使用して、数百億のパラメータを持つLLM推論を即座に加速します。

BigDL-LLMを使用して、数百億のパラメータを持つLLM推論を即座に加速します。

私たちは、顧客サービス、仮想アシスタント、コンテンツ作成、プログラミング支援などのさまざまなアプリケーションでますます重要な役割を果たしている大規模言語モデル (LLM) によって駆動される AI の新しい時代を迎えています。

しかし、LLM の規模が拡大し続けるにつれて、大規模モデルの実行に必要なリソースも増加し、モデルの実行速度がますます低下し、AI アプリケーション開発者にとって大きな課題となっています。

この目的のために、インテルは最近、 BigDL-LLM [1]と呼ばれる大規模モデルのオープンソースライブラリをリリースしました。これは、AI開発者や研究者がインテル®プラットフォーム上での大規模言語モデルの最適化を加速し、インテル®プラットフォーム上での大規模言語モデルのユーザーエクスペリエンスを向上させるのに役立ちます。

以下は、 Intel® Xeon® Platinum 8468プロセッサーを搭載したサーバー上で実行され、BigDL-LLMによって高速化された330億パラメータの大規模言語モデルVicuna-33b-v1.3 [2]のリアルタイムパフォーマンスを示しています。

Intel® Xeon® Platinum 8468プロセッサー搭載サーバー上で330億パラメータの大規模言語モデルを実行した実速度(リアルタイム画面録画)

BigDL-LLM: Intel®プラットフォーム上のオープンソースの Big Language Model アクセラレーション ライブラリ

BigDL-LLM は、大規模言語モデル向けに最適化された高速化ライブラリです。これはオープン ソース BigDL の一部であり、Apache 2.0 ライセンスの下でリリースされています。

さまざまな低精度最適化 (INT4/INT5/INT8 など) を提供し、さまざまなIntel® CPU 統合ハードウェア アクセラレーション テクノロジー (AVX/VNNI/AMX など) と最新のソフトウェア最適化を活用して、大規模な言語モデルでIntel®プラットフォーム上でより効率的な最適化と高速な操作を実現できます。

BigDL-LLM の重要な機能の 1 つは、Hugging Face Transformers API に基づくモデルの場合、モデルを高速化するためにコードを 1 行変更するだけでよいことです。理論的には、あらゆる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の高速化された例(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 を使用してモデルを高速化するには、モデルの読み込み部分を変更するだけでよく、その後の使用プロセスはネイティブ Transformer とまったく同じです。

BigDL-LLM API を使用してモデルをロードする方法は、Transformers API とほぼ同じです。ユーザーは、インポートを変更し、from_pretrained パラメータでload_in_4bit=Trueを設定するだけです。

BigDL-LLM は、モデルのロード中にモデルに対して 4 ビットの低精度量子化を実行し、さまざまなソフトウェアおよびハードウェア アクセラレーション テクノロジを使用して、後続の推論中に実行を最適化します。

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

コードが完全に表示されない場合は、左または右にスライドしてください

例: 大規模な言語モデルに基づく音声アシスタントアプリケーションを迅速に実装する

以下の記事では、一般的な LLM アプリケーション シナリオ「音声アシスタント」を例に、BigDL-LLM を使用して LLM アプリケーションを迅速に実装するケースを説明します。通常、音声アシスタント アプリケーションのワークフローは次の 2 つの部分に分かれています。

△ 図1. 音声アシスタントワークフローの概略図
  1. 音声認識 - 音声認識モデル(この例ではWhisperモデル[9]を使用)を使用して、ユーザーの音声をテキストに変換します。
  2. テキスト生成:ステップ1のテキスト出力をプロンプトとして使用し、大規模言語モデル(この例ではLlama2 [10]を使用)を使用して応答を生成します。

以下はBigDL-LLMとLangChain [11]を使用して音声アシスタントアプリケーションを構築するプロセスです。

音声認識段階: 最初のステップは、プリプロセッサ プロセッサと音声認識モデル 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)

コードが完全に表示されない場合は、左または右にスライドしてください

2 番目のステップは音声認識を実行することです。まず、プロセッサを使用して入力音声から入力特徴を抽出し、次に認識モデルを使用してトークンを予測し、再びプロセッサを使用してトークンを自然言語テキストにデコードします。

 input_features = processor(frame_data, sampling_rate=audio.sample_rate, return_tensor=“pt”).input_features predicted_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-case voiceassistant_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 を使用して、独自の音声アシスタントを素早く構築しましょう。

著者について

Intel のシニア AI アーキテクトである Huang Shengsheng 氏、Intel の AI フレームワーク エンジニアである Huang Kai 氏、Intel フェローでありビッグデータ テクノロジーのグローバル CTO、BigDL プロジェクトの創設者でもある Dai Jinquan 氏は、いずれもビッグデータと AI 関連の業務に携わっています。

<<:  Apple チップは、計算精度を低下させることなく大規模なモデルを実行できます。投機的サンプリングは急速に普及しており、GPT-4 もこれを使用しています。

>>:  ヘルスケアにおける人工知能の機会とリスク

ブログ    
ブログ    

推薦する

ChatGPT文明がオンラインになりました!ワンクリックで明代の南京と中世イタリアを旅しよう

ChatGPT がリリースされてから、宿題をするために ChatGPT を使い始める学生が増えてきま...

FlashAttention v2 は標準の Attention より 5 ~ 9 倍高速です。大規模なモデルで使用されます。

最近、GPT-4(コンテキスト長32k)、MosaicMLのMPT(コンテキスト長65k)、Anth...

Google、チャットボットデータ分析プラットフォーム「Chatbase」の開設を発表

[[210402]]アメリカのテクノロジーブログ「VentureBeat」によると、11月17日、G...

高密度の手動ラベルなしで下流の高密度予測タスクを実行するための自己教師学習法がリリースされました

[[399115]]事前トレーニングにより、下流のタスクのパフォーマンスが大幅に向上することが示され...

独占 | R で Keras と TensorFlow を使用してディープラーニング モデルを構築する方法を教えます

[[197801]]導入: R と Python のどちらを選択するかは、常に熱く議論されているトピ...

クラウドAI市場は2028年までに2,700億ドルに達すると予想

デジタル時代の到来により前例のない進歩がもたらされ、人工知能(AI)はさまざまな業界でイノベーション...

2021年のMLとNLPの学術統計:Googleが1位、強化学習の専門家Sergey Levineが1位に

2021 年は自然言語処理 (NLP) と機械学習 (ML) にとって非常に生産的な年でした。さて、...

...

...

将来的にはAIを5Gネットワ​​ーク解析に活用できる

現在、5G に関するブログやベンダーの論文が数多くあり、新しいメディア伝送からギガビット速度、モバイ...

このAIアルゴリズムの面接体験は非常に役立つ:Amazonは履歴書から面接まで実践的な経験を共有

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

Python のデータ構造とアルゴリズム - 優先度キュー

[[405132]]序文キュー ライブラリは、マルチスレッド プログラミングに適した先入れ先出し (...

心が開かれました!将来、人工知能がもたらす素晴らしい生活は、あなたが想像する以上のものになるかもしれません...

人工知能といえば、多くの人が「未来の技術」という遠近感、移動機能を備えた空中の高層ビル、いつでも世界...

南洋理工大学の最新の視覚言語モデルの概要:事前トレーニング、転移学習、知識蒸留

コンピュータ ビジョン (CV) 研究における長年の課題として、視覚認識 (画像分類、オブジェクト検...

AIが高度な数学の問題を生成し、新たな難易度に到達:MITは問題を生成し、質問に答え、採点できるアルゴリズムモデルを提案

少し前に、DeepMind による研究が Nature の表紙を飾り、直感を導くことで 2 つの主要...