近年、ローカル環境で大規模言語モデル(LLM)を動かしたいというニーズが急速に高まっています。特に、WindowsユーザーにとってはWSL2(Windows Subsystem for Linux)を活用することで、Linux向けのAIツールや最新のオープンソースLLMを手軽に利用できるようになりました。
その中でも「llama.cpp」は、高速かつ軽量な推論エンジンとして人気です。しかし、NVIDIA製GPUに比べて情報が少ないIntel UHD Graphicsでの利用方法に悩む方も多いのではないでしょうか。
本記事では、Intel UHD Graphicsを搭載したPCでもWSL2上でllama.cppを快適に動かすための手順を、初心者にもわかりやすく解説します。OneAPIとは何か、インストール時の注意点、パフォーマンスを引き出すコツ、トラブル対策まで網羅していますので、ぜひ最後までご覧ください。
wsl --install
2.GPUドライバ更新
Intel Driver & Support Assistantを使い、最新のIntelグラフィックスドライバをインストールしてください
Ubuntuターミナルで以下を実行し、必要なパッケージをインストールします。
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential git cmake libclblast-dev -y
sudo apt install libcurl4-openssl-dev
OneAPI(ワンエーピーアイ)とは、Intelが提供する異種コンピューティング向け統合開発ツールキットです。
CPU、GPU、FPGAなど異なるアーキテクチャを抽象化し、SYCL(C++ベースの並列プログラミングフレームワーク)を介してIntel GPUの性能を最大限に引き出すために必要な環境です。llama.cppをIntel GPUで高速に動かすには必須となります。
wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/fdc7a2bc-b7a8-47eb-8876-de6201297144/l_BaseKit_p_2024.1.0.596.sh
⚠️ 重要注意点
WSL環境で以下のコマンドを実行すると、Windows側にGUIインストーラーが別ウィンドウで起動します。ターミナル操作は不要で、Windows画面の指示に従ってインストールを進めてください。
sudo sh ./l_BaseKit_p_2024.1.0.596.sh
インストール完了後、環境変数を設定します。
echo 'source /opt/intel/oneapi/setvars.sh' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
mkdir build && cd build
cmake .. \
-DLLAMA_SYCL=ON \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DCMAKE_CXX_FLAGS="-I/opt/intel/oneapi/compiler/latest/linux/include/sycl" \
-DGGML_SYCL_F16=OFF
make -j$(nproc)
今回は、SakanaAI/TinySwallow-1.5B-Instruct-GGUF を使用します。
以下リンクからダウンロードして、任意の場所にダウンロードしたggufファイルを格納してください。https://huggingface.co/SakanaAI/TinySwallow-1.5B-Instruct-GGUF/tree/main
ビルド済みのllama.cppのmain実行ファイルを使い、ダウンロードしたモデルを指定して実行します。
./llama.cpp/build/bin/llama-cli -m ./models/tinyswallow-1.5b-instruct-q8_0.gguf -p "こんにちは、自己紹介をしてください。"
-m
でモデルファイルを指定-p
でプロンプトを入力export GGML_SYCL_MAX_WORK_GROUP_SIZE=256
export GGML_SYCL_USE_SHMEM=1
sudo sysctl -w vm.overcommit_memory=1
.\l_BaseKit_p_2024.1.0.596.sh
エラー:Failed to detect Intel GPU
sudo apt install intel-opencl-icd
sudo usermod -aG render $USER
reboot
エラー:Out of Memory
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
エラー: llama.cpp ビルドエラー
OneAPIのインストーラを再実行して、アップデートがあればアップデートしてください。
make clean && make -j$(nproc) LLAMA_NO_ACCELERATE=1
./main -m model.gguf -t 8
./main -m model.gguf -ngl 15 --split-mode layer
Intel UHD GraphicsでもWSL2環境でllama.cppを動作可能です。最新のOneAPIツールキットと適切な量子化モデルを組み合わせれば、実用的な速度でローカルLLMを利用できます。