この記事は、The Parallel Universe Magazine 57 号に掲載されている「AI PC Brings Larger LLM Development to Your Desk」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
![parallel_v57_01](https://www.isus.jp/wp-content/uploads/2024/08/pu57_01.png)
大規模言語モデル (LLM) の普及により、計算能力に対するニーズが高まっています。OpenAI、Anthropic などの強力なソリューションはクラウドで実行されますが、小規模なシステムで実行できるモデルも増えています。ローカルで実行できるかどうかは、計算能力とメモリー容量の両方に依存します。モデルには通常、モデルの大きさと計算の複雑さを示すパラメーター・サイズがあります。パラメーター・サイズが大きくなると、ユーザーは計算能力の要件だけでなく、メモリー要件の課題にも直面します。トレーニングや推論を効率良く実行するには、LLM をデバイス (通常は GPU) のメモリーにロードする必要があります。コンシューマー向け GPU のメモリーは最大 24GB に制限されており、その多くは 16GB 未満のメモリーを搭載しています。企業が計算能力の要件とモデル精度のバランスを取れるように、Meta の Llama* モデルと Microsoft の Phi モデルにはさまざまなパラメーター・サイズが用意されています。例えば、Hugging Face* では Llama* モデルが最も人気があります。Llama* 2 には 7B、13B、70B のサイズがあり、Llama* 3 には 8B と 70B のサイズがあります。7B、8B、および 13B モデルは、多くのハイエンドのコンシューマー GPU で量子化と最適化を使用して実行できます。70B モデルは通常、コンシューマー GPU には大きすぎます。
大きな LLM を使用してローカルで開発する
一般に私は、ソリューションを開発するためデータセンターやクラウドにログインすることは好みません。ローカルシステムで開発するほうがレイテンシーとセキュリティーの面では優れていますが、LLM のサイズと計算能力の要件がローカル開発の妨げとなります。この課題を解決する 1 つのオプションは、エンタープライズ・グレードの GPU を搭載したワークステーションを導入することですが、コストが高くなる可能性があります。幸い、インテル® Core™ Ultra プロセッサー・ソリューションを出荷しているスモール・フォームファクター・ベンダーが解決策を提供しています。
私は最近、インテル® Arc™ 統合 GPU (iGPU) 内蔵のインテル® Core™ Ultra 155H プロセッサーを搭載した Asus* NUC 14 Pro システムを購入しました。このシステムの斬新な点は、iGPU がシステム RAM の最大半分を GPU メモリーとして使用できることです。最大 96GB の DDR5-5600 DRAM で構成すると、システムはワークステーションの数分の 1 のコストで最大の 70B Llama* モデルを実行できます。
システムの設定
ハードウェア・セットアップ
Asus* NUC 14 Pro のセットアップは簡単でした。48GB DDR5-5600 SODIMM DRAM モジュール 2 本を差し込み、M.2 20×80 NVMe* SSD を取り付けるだけでした。テストでは Windows* と Linux* をデュアルブートにしたいと考えており、Meta* Llama* 3 70B モデルは約 550GB のディスク容量を必要とするため、少なくとも 4TB の SSD が必要でした。ハードウェアのセットアップにかかった時間は 5 分未満です。
オペレーティング・システムのインストール
オペレーティング・システムのインストールも比較的簡単でした。まず、Windows* 11 をインストールしましたが、これにはハードウェア・イーサネット接続が必要でした。Wi-Fi* はそのままでは機能しないため、ネットワーク・インストールの回避策はありませんでした。Windows* をインストール後、Asus のウェブサイトから最新のドライバーをダウンロードしてインストールし、Windows* Update を行いました。
次に、Ubuntu* 22.04.4 をインストールしましたが、問題なく動作しました。Linux* を起動後、指示 (英語) に従って最新のユーザーモード GPU ドライバーをインストールしました。
ヒント: Windows* と Linux* からアクセスできる比較的大きな共有ドライブを用意するとよいでしょう。Windows* と Linux* で LLM をテストする場合、モデルを共有ドライブに配置し、同じモデルが両方のパーティションでスペースを占有しないようにする必要があります。
LLM の実行
LLM のソフトウェア・スタックは急速に変化しており、さまざまな選択肢があります。ここでは、従来の Hugging Face*/PyTorch* ワークフローと、人気の llama.cpp オープンソース・フレームワークを使用して Llama* 3 70B をテストしますが、将来的にはより大規模なデータセンター・システムで実行することを想定しています。ここでは、Windows* のワークフローについて説明しますが、このプラットフォームとソフトウェア・スタックは Linux* でも動作します。
基本構成
モデル実行の AI 固有の部分に入る前に、Windows* の環境を準備する必要があります。いくつかのパッケージをインストールします。
- Windows* Visual Studio* 2022 Community Edition
- conda-forge (英語)
- インテル® oneAPI ベース・ツールキット
PyTorch* で実行
PyTorch* を使用して LLM を実行するには、通常、Hugging Face* (英語) にあるオープンソース・ライブラリー、API、モデルを使用します。
PyTorch* と Hugging Face* API のインストール
PyTorch* 環境と必要な Hugging Face* ライブラリーをセットアップするには、conda-forge Miniforge プロンプトを起動し、次のコマンドを実行します。
# conda-forge で conda 環境を作成して有効化 conda create -n llm python=3.11 libuv conda activiate llm # PyTorch* および Hugging Face* ライブラリーとインテルの PyTorch* 向け LLM ライブラリーをインストール pip install --pre --upgrade ipex-llm[xpu] --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/
ここでは、インテル® GPU 上で Hugging Face* API のより高性能な実装を提供するインテルの PyTorch* LLM ライブラリーを使用して依存関係をインストールしました。ライブラリーの依存関係ツリーは、PyTorch* とその他の必要な Hugging Face* ライブラリーもインストールします。