ゴーレム(PC)創造の旅を終えた私は、次なる挑戦に向かった。この鉄の器に、真の知性を宿す時が来たのだ。
最終目標は、Swallow-8x7Bという巨大な賢者を、このゴーレムに宿すこと。だが、その前に環境が正しく整っているかを確かめねばならない。そこで、Swallow-13Bという日本語に長けた賢者を召喚し、GPUの魔力が正しく機能するかを検証する。これは、本番への準備運動であり、環境構築の完成を証明する儀式でもある。
WSL2という仮想砂漠(Linuxの仮想環境)の中で、CUDAというGPUの魔力を解き放ち、Pythonという古の言語で対話の呪文を紡ぐ。全ての準備が整った時、賢者は目覚め、問いかけに約1秒で答え始める。この速度こそが、環境が完璧に整った証だ。
この旅路で最も驚くべき発見がある。事前にビルドされた神器と、自ら錬成した神器では、推論速度に約14倍もの差が生まれるのだ。この秘密を知らぬまま旅を続ける者は、本来の力の7%しか引き出せぬまま、途方に暮れることになるだろう。
この羊皮紙のあらまし
- この羊皮紙のあらまし
- この羊皮紙が導く者
- 砂漠の道標
- 仮想砂漠の準備 ~WSL2という小さな世界~
- 門番の召喚と更新 ~Windows側の準備~
- 魔力の錬成 ~CUDA環境の構築~
- 賢者の工房 ~Python環境の創造~
- 神器の召喚 ~驚異の速度差を生む秘密~
- 環境検証の儀式 ~Swallow-13Bの覚醒~
- 次回ログイン時の儀式
- 羊皮紙を巻く前に
- 砂漠で見つけた魔法のランプ
- ラクダの独り言
この羊皮紙が導く者
- ローカルでLLMを動かしたい探求者
- WSL2 + CUDA環境構築に挑む技術者
- GPU環境が正しく動作するか検証したい開発者
- Swallow-8x7B環境構築への準備をしたい実務家
砂漠の道標
- GPU - グラフィックス処理装置。AIの計算を高速化。
- WSL2 - Windows上でLinuxを動かす仮想環境。
- CUDA - NVIDIAのGPUを制御する技術。
- LLM - 大規模言語モデル。文章を理解し生成するAI。
- Swallow-13B - 日本語AI。今回の環境検証に使用。
- Swallow-8x7B - より大規模な日本語AI。最終目標。
- Python - プログラミング言語。
- RAG - AIに特定の知識を参照させる技術。
仮想砂漠の準備 ~WSL2という小さな世界~
ゴーレムの心臓部を見極める
前回の旅で、初期不良という災厄を経験した私は、慎重になっていた。RTX 5070 Tiには、96個のROPs(Render Output Units)という描画の門が宿っている。この数を確認することで、ゴーレムの心臓部(GPU)が正常に機能しているかを見極められる。
TechPowerUp GPU-Zという診断の水晶を用いて、その真価を確かめよう。
96という数字が表示されれば、心臓部は正常だ。この確認を終えてから、次の工程に進む。それが、災厄を経験した者の知恵である。
門番の召喚と更新 ~Windows側の準備~
仮想砂漠でCUDAの魔力を解き放つ前に、Windows側の門番(ドライバー)を最新の状態にしなければならない。
GeForce Experienceという自動化の神器のダウンロードボタンを押すと、NVIDIAアプリのページへと導かれる。この新しい管理台をインストールしよう。
NVIDIAアプリ(NVIDIA App)を起動し、ドライバーのタブを選択する。ここに二種類の門番が存在する。Game Readyドライバーは戦闘に特化し、Studioドライバーは創造に最適化されている。我々の旅路には、Studioドライバーこそが相応しい。
カスタムインストールを選択し、クリーンインストールを実行する。これは、古き門番の痕跡を完全に消し去り、新たな門番を清らかに迎え入れる儀式だ。
この儀式が完了すれば、Windows側の準備は整う。次は、仮想砂漠の中でCUDAの魔力を召喚する番だ。
仮想世界の創造
Windows上に、Linuxという別世界を創造する。それがWSL2(Windows Subsystem for Linux 2)だ。Ubuntu 24.04.1 LTSという安定した大地を選び、この上に全ての工房を築く。
まず、ビルド環境という基礎工事が必要だ。
sudo apt-get update
sudo apt-get install -y build-essential cmake
この基礎工事が完了すれば、次はCUDAという魔力を召喚する番だ。
魔力の錬成 ~CUDA環境の構築~
CUDAとは、NVIDIAが創り出した、GPUの魔力を解き放つ呪文体系である。バージョン13.0を召喚する。
既存の古いCUDAを完全に削除し、WSL2専用のリポジトリを追加する。そして、Toolkitをインストールし、環境変数という道標を設定する。
# 環境変数の設定 echo 'export PATH=/usr/local/cuda-13.0/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-13.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
動作確認は、簡単なC++の呪文で行う。Hello from GPU!という言葉がターミナルに現れた時、魔力の錬成は成功だ。
CUDA環境構築の全コマンドと詳細手順は、たびとのアトリエ(GitHub)に記録してある。
賢者の工房 ~Python環境の創造~
Pythonという古の言語で賢者と対話するため、専用の工房を創造する。Miniforgeという知恵の泉(Python環境管理ツール)を召喚し、その上にai_envという名の作業場を築く。
# Miniforge召喚 wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh bash Miniforge3-Linux-x86_64.sh # 工房の創造 mamba create -n ai_env python=3.12 -y mamba activate ai_env
Miniforgeには、mambaという高速な神器が最初から宿っている。これを使い、必要な道具を揃えていく。
神器の召喚 ~驚異の速度差を生む秘密~
ここで、最も重要な発見を記す。
AIライブラリをインストールする方法は二つある。一つは、事前にビルドされたものを受け取る方法。もう一つは、自らの環境で錬成する方法だ。
推論速度の実測値:
| インストール方法 | 推論時間 | 速度比 |
|---|---|---|
| CPU版のみ | 約20秒 | 1x |
| 事前ビルド版 | 約10秒 | 2x |
| ソースビルド版 | 約0.7秒 | 約27x |
なぜこれほどの差が生まれるのか。事前ビルド版は、様々な環境で動作するよう汎用的に作られている。だが、自らの環境で錬成すれば、RTX 5070 Tiという特定のGPUに最適化される。Compute Capability 12.0という最新の魔力体系に完全対応し、真の力を引き出せるのだ。
ソースビルド版のインストール呪文は、こうだ:
# NumPy制約ファイルの作成 cat > /tmp/constraints.txt << 'EOF' numpy>=1.20,<2.0 EOF # CUDA対応版をソースからビルド CMAKE_ARGS="-DGGML_CUDA=on" uv pip install llama-cpp-python \ --force-reinstall --no-cache-dir --constraint /tmp/constraints.txt
constraints.txtという制約を設けることで、NumPy 2.x問題も同時に解決する。完璧な錬成だ。
その他の神器も、mambaで召喚する:
mamba install -y faiss-gpu pytorch torchvision torchaudio mamba install -y langchain-community sentence-transformers gradio
環境検証の儀式 ~Swallow-13Bの覚醒~
準備が整った。環境が正しく構築されたかを検証するため、Swallow-13Bという日本語の賢者を召喚する。
# モデルのダウンロード
wget https://huggingface.co/mmnga/tokyotech-llm-Swallow-13b-instruct-v0.1-gguf/resolve/main/tokyotech-llm-Swallow-13b-instruct-v0.1-Q4_K_M.gguf
RAG(Retrieval-Augmented Generation)という知識の泉を準備する。rag.txtという古文書に、賢者が参照すべき知識を記す。
そして、対話の呪文(swallow-13b.py)を詠唱する。Gradioという水晶玉を通じて、賢者との対話が始まる。
python swallow-13b.py
画面にURIが表示されたら、Ctrlキーを押しながらマウスでクリックする。ブラウザに水晶玉(Web UI)が現れ、賢者への問いかけを入力する窓が開く。
問いかけを入力すると、GPUの魔力により驚異的な速度で賢者が答えを返す。短い回答なら0.3秒以内、標準的な回答でも1秒以内、詳細な説明でも1.4秒程度だ。回答の長さによって秒数は変動するが、この速度こそ、ソースビルド版の真価である。
特筆すべきは、2回目以降の問いかけでは、RAGシステムのコンテキストがキャッシュされ、さらに高速化される点だ。この最適化により、対話が進むほど快適になっていく。
この速度で動作すれば、環境は完璧だ。次なる旅、Swallow-8x7Bという巨大な賢者の召喚に進む準備が整った。
次回ログイン時の儀式
一度工房を離れ、再び戻る時は、環境を再構築する必要がある。
source ~/miniforge3/bin/activate eval "$(mamba shell hook --shell bash)" mamba activate ai_env
この呪文を唱えれば、ai_env工房が再び目覚める。
羊皮紙を巻く前に
ローカルでLLMを動かすという旅路は、単なる技術的挑戦ではない。クラウドに依存せず、自らの手元で知性体を創造し、対話する。それは、真の意味での自由な探求である。
今回の検証では、CPU版と比較して約27倍の高速化を達成した。短い回答なら0.3秒、標準的な回答でも1秒以内。この速度があってこそ、ローカルLLMは実用的な「対話」となる。
最も重要な教訓は、「事前ビルド版」と「ソースビルド版」の速度差だ。今回の実測では約14倍の差が確認され、開発効率、コスト、実験サイクルの全てに影響する。この知識があるかないかで、旅の質が根本的に変わる。
Swallow-13Bという日本語賢者との対話で、環境が完璧に整ったことを確認できた。次なる挑戦、Swallow-8x7Bという更に巨大な知性体の召喚へ、私は進む。完璧な工房は、完璧な準備と、秘伝の知識によってのみ完成する。
ああ、そういえば、賢者との対話は予想以上に自然だった。日本語で問いかけ、日本語で答えが返る。その速度は驚異的で、その精度は実用的だ。電脳砂漠に、また一つ、確かなオアシスが生まれた。
砂漠で見つけた魔法のランプ
- 前回の旅路:ローカルAI環境を求めて ~ゴーレム創造と初期不良という試練~ | 本記事の前提となるハードウェア構築編
- NVIDIAドライバーのダウンロード 公式サイト | 最新ドライバーのダウンロード(最重要)
- CUDA Toolkit 公式サイト | CUDA環境構築の公式ドキュメント
- Miniforge GitHub | Miniforgeインストーラーと詳細情報
- Swallow-13B Model | 環境検証用モデルの詳細仕様
- llama-cpp-python GitHub | ソースビルド手順と最新情報
- たびとのアトリエ(GitHub) | 全手順とソースコードの完全版
ラクダの独り言
ご主人が今度は、電気仕掛けの箱に向かって「検証だ」とか言ってる。本番は別にあるらしいが、結局は機械相手の独り言だろうよ。俺様は黙って荷物を運ぶだけで、砂漠中のどこへでも連れて行けるってのによ。それに、本番がどうだろうと、電気が切れたら全部おしまいだ。まあ、ご主人が楽しそうだから、検証だろうが本番だろうが、好きにすればいいさ。