いきさつ
(不要な方はllama.cppのインストールまで飛んでください)
仕事でChatGPTやCodexをよく利用するようになってきました。ただ、最近ではAIの値上げなども話題になりつつあり特定のサービスに依存するのもなぁ...と悩んでいた矢先、「最近はスペックが高くなくてもそれなりにローカルLLMが動くようになった!」という話題を目にしたので試してみました。
この記事はその時のメモです。
llama.cppを選択した理由
OllamaやLM Studioがある中、どうしてllama.cppを選択したのかというと、単純に「自分が持っているPCスペックだと不安で、なるべく軽快に動作させたかったから」です。導入の簡単さより、自分のPCで少しでも早く動作することを優先させました。
ちなみに、今回試したPCスペックは下記です。
CPU: Intel(R) Core(TM) Ultra7 155H 3.80GHz
メモリ: 32GB
ストレージ: 1TB
OS: Windows 11 Home
--- グラフィックボード ---
NVIDIA GeForce RTX 4060 Laptop GPU
メモリバンド幅: 256GB/s
専用ビデオメモリ: 8GB GDDR6
共有システムメモリ: 16GB
CUDAバージョン: 13.2
llama.cppのインストール
まずはllama.cppのインストールです。といっても、ダウンロードして展開するだけです。
Releasesページから適切なバイナリを選択します。
今回はCUDAを最大限利用したいのでWindows x64 (CUDA 13)とCUDA 13.1 DLLsをダウンロードして適当なフォルダに展開しました。
なお、CUDAのバージョンはNVIDIA コントロールパネルを立ち上げ、システム情報、コンポーネントから進んだNVCUDA64.DLLの製品名から13であることを確認しました。
※ちなみに、多くのサイトで解説があるコマンドからCUDAバージョン取得は自分の環境だとPATHが通っていなかったのか利用できなかったので面倒になりWindows x64 (Vulkan)を最初は使いましたが、十分実用的でしたので「グラフィックボードはのせてるけどよくわからない」という方はVulkanでもよいと思います。
利用するモデルの選択
さて、さっそく使いたいところですがここが最難関です。どのLLMを使うか。
環境に適した計算方法とかいろいろあるようですが使ってみないとわからないことも多いらしいのでここはよく利用されているQwenやGemmaあたりがよさそうです。
今回はGoogleの解説ページにあるgemma-4-E2B-it-GGUFを使ってみます。
モデルを自分で選びたいとき
llama.cppが対応しているHugging Faceからモデルを探します。
トップページ->Modelsと進んだところで左側に絞り込みがあるのでAppsからllama.cppを選択すると利用可能なものが表示されます。
たくさんあるのと、ぱっと見てどれが何かわかりにくかったりしますが基本的には配信者/モデル名-パラメータ数の形になっています。
一般的にパラメータ数が多いほど性能が高いが、動かすPCスペックも上がります。
また、時々パラメータ数の後ろにA〇Bと書かれることがありますが、これは実際に使うパラメータ数のことで、例えば24B-A4Bだと「24Billionのパラメータを持つが、実際に使うのは4Billion」となり誤解を恐れずいえば「性能を高く保ったままスペックが低いPCでも動くもの」と思ってもよさそうです。
llama.cppを実行する
モデル選択が終わったらさっそく実行です。
.\llama-cli.exe -hf ggml-org/gemma-4-E2B-it-GGUF
これでまだダウンロードされていないモデルであればダウンロードが開始され、終わったら自動的にチャットが起動します。
--prompt引数を付けた時の日本語(Windows + PowerShell)
チャットをわざわざ開始しなくていい場合、直接下記のようにプロンプトを渡せます。
.\llama-cli.exe -hf ggml-org/gemma-4-E2B-it-GGUF --prompt "FizzBuzzのコードをC#で書いて"
ただ、自分の手元では日本語を入れると「文字化けしています」と言われてしまいます。直接渡すときは文字コードにお気を付けください(自分は困らなかったので何もしてません...)
チャット終了方法
> /exit
で終了できます。
終わりに
これまで、ローカルLLMは動作が重いし環境構築も難しいと思って腰が重かったのですがやってみると意外とすんなりできました。
特にllama.cppも調べると自分でビルドしないといけなくて大変だとか、サーバー機能がないから連携しにくいとかが出てきましたが最新版ではダウンロードするだけですし、今だとサーバー起動してエージェントと連携も手元ではできています(これについては後日書くかも...)。
ローカルLLMの敷居は低くなっているので、気になる方はぜひお試しください!