はじめに
データをクラウドにあげたくない。でも生成AIは使いたい。そんなわがままを叶えたくて、CPUだけで動くローカルLLMに挑戦しました。
WSLのUbuntuにインストールして実際に動作させた手順をまとめてみました。
全4回くらいでモデルの評価まで行う予定です。
対象者
GPUなし・クラウドなしのローカルでLLMを試したい人
今回は10年くらい前のディスクトップのWSLで動かしてます。
関連記事
環境
OS :Ubuntu 24.04.1 LTS
CPU :Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
メモリ :16GB
llama.cpp:version: 8146 (418dea39c)
Build tools
- CMake: 3.25.0
- GCC : 9.4.0
llama.cppについて
簡単に説明するとGPUやクラウド環境がなくても、ローカルで動くLLMの環境です。
llama.cppは環境なので、llama.cppとは別にモデルが必要となります。
インストール手順
Ubuntuで必要なビルドツールをインストールします。
sudo apt-get update
sudo apt-get install -y build-essential git cmake
llama.cppのダウンロードとビルド
GitHubリポジトリをクローンして、ビルドします。
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
cmake -S . -B build
cmake --build build -j"$(nproc)"
ビルドが完了すると、以下のような実行ファイルが生成されます。
llama.cppコマンドでの対話モードとサーバーを起動した対話もードの2モードがあります。
bin/llama-cli : コマンドモード
bin/llama-server : サーバーモード
動作確認
version情報が確認できたら、インストール成功です。
$ llama-cli --version
version: 8146 (418dea39c)
built with GNU 9.4.0 for Linux x86_64
モデルのダウンロード
llama.cppはLLMの動作環境なので、モデルがないと動作しません。
車で例えると
シャーシ :llama.cpp
エンジン :モデル
の関係です。
今回は、Hugging Face から量子化モデルをダウンロードします。
mkdir -p ~/models/
cd ~/models/
# 例:Q4_K_M(品質と速度のバランス)
wget -O qwen2.5-3b-instruct-q4_k_m.gguf \
"https://huggingface.co/bartowski/Qwen2.5-3B-Instruct-GGUF/resolve/main/Qwen2.5-3B-Instruct-Q4_K_M.gguf"
推論実行
Qwen 7Bモデルを使用して簡単なテストを実行します。
llama-cli -m ~/models/qwen2.5-3b-instruct-q4_k_m.gguf -p "こんにちは、元気ですか?"
> こんにちは、元気ですか?
こんにちは!元気です。あなたから聞かれた通り、元気です。どのようなお手伝いをしましょうか?
[ Prompt: 27.9 t/s | Generation: 10.0 t/s ]
ここまでくれば成功です。
中身のない簡単なあいさつですが、私は10.0t/sでました。
クラウドのAIと比べれば、圧倒的に遅いですが、
私の感覚では許容範囲内です。
質問を変えるとそれに応じて応答速度も変わってきます。
*t/s はトークン/秒(tokens per second)の略で、AIが1秒間に何単語相当を処理・生成できるかを示す指標です。
ちなみに、chatGPTは、50t/sらしいです。
まとめ
今回は、Ubuntu環境にllama.cppインストールし動作確認するところまでを紹介しました。
簡単なあいさつだけですが、ローカルで動くLLMを体験できたのではと思います。
次回、起動オプションについて掘り下げます。