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 は最近、Microsoft によって内部的に無効化されました。 GPT の新しいバグ: たった 2 つのプロンプトでデータが盗まれる可能性があります

知らせ! GPT を作成するときにアップロードしたデータは、誰でも簡単にダウンロードできます...た...

生活における人工知能の主な応用

人工知能は2度のブームを経験し、現在は3度目のブームを迎えています。主な理由は、第一にディープラーニ...

Baidu UNITが小能科技を支援し、ハイアールグループと提携してインテリジェントクラウド顧客サービスをアップグレード

インテリジェントな顧客サービスの分野は、2018 年に急速な発展を遂げました。企業の人件費を抑制する...

...

脳コンピューターインターフェース技術は本当に人気がある

[[274622]]参加者は脳波計を装着し、コンピューターの画面を見つめながら、急速に点滅するターゲ...

画像認識AIは敵対的な画像に遭遇すると「盲目」になり、精度が90%低下する

[[271243]]視覚に関して、AIと人間の間にはどれくらいのギャップがあるのでしょうか?カリフォ...

IBMは人工知能にアナログコンピューティングを使用し、AIコンピューティングを改革する

IBM は人工知能コンピューティングを改革する方法に取り組んでいます。 IBM の研究者は、人工知能...

...

Facebookはライブ動画でユーザーを見えなくする匿名化システムを開発した

最近、ノルウェー科学技術大学の「DeepPrivacy: 顔の匿名化のための生成的敵対的ネットワーク...

張衛斌:金融ビッグデータリスク管理モデリングは単なるデータとアルゴリズム以上のもの

2016年3月、中国データ最高責任者連盟が「中国ビッグデータ産業の発展に影響を与える100人」大規模...

HTML5アウトラインアルゴリズムが構造に与える影響

[[91338]] HTML5 がリリースされてから長い時間が経ちますが、日々の仕事や個人の Web...

GenAIがより良い回答を提供するためのヒント

GenAI は、ユーザーが独自の方法でデータをクエリし、ニーズに合わせた回答を受け取ることができるイ...

Google MobileNetを超えろ! Huawei がエッジツーエッジ ニューラル ネットワーク アーキテクチャ GhostNet を提案 | オープンソース

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

...