llama.cppは、Meta社の大規模言語モデル「Llama」シリーズをローカルPCで動かせる推論エンジンです。ビルド後には複数の実行ファイルが生成されますが、llama-cliやllama-server以外のファイルは何に使うのか分かりづらい方も多いのではないでしょうか。
この記事では、llama.cppで生成される主要な実行ファイルの役割と簡単な使い方をまとめます。
llama.cppとは
llama.cppは、Meta(旧Facebook)社が開発した大規模言語モデル(LLM)であるLlamaやLlama2の重みファイルを、C/C++で効率的に動作させるための軽量な推論エンジンです。
llama.cppのインストール方法はこちらを参照
llama.cppで生成される主な実行ファイル一覧
ビルドが完了すると、以下のような実行ファイルが生成されます(一部抜粋)。
実行ファイル名 | 主な用途・機能概要 |
---|---|
llama-cli | 対話型のコマンドラインインターフェース |
llama-server | LLMサーバ(REST APIで推論を提供) |
llama-perplexity | モデルのパープレキシティ評価 |
llama-quantize | モデルの量子化(軽量化) |
llama-quantize-stats | 量子化後の統計情報表示 |
llama-retrieval | 検索・類似文検索機能 |
llama-save-load-state | モデルの状態保存・復元 |
llama-simple | シンプルな推論実行 |
llama-simple-chat | シンプルなチャット形式の推論 |
llama-speculative | 推論の効率化手法(Speculative Decoding) |
llama-tokenize | テキストのトークン化 |
主要な実行ファイルの使い方
llama-cli
すでによく知られている通り、ターミナルから直接モデルと対話するための実行ファイルです。
使い方例:
./llama-cli -m ./models/llama-2-7b.Q4_0.gguf
これでモデルとチャット形式でやりとりできます。
llama-server
REST API経由で推論を提供するサーバです。
使い方例:
./llama-server -m ./models/llama-2-7b.Q4_0.gguf
サーバ起動後、http://localhost:8080/completion
などにPOSTリクエストを投げて推論結果を取得できます。
llama-perplexity
モデルのパープレキシティ(言語モデルの評価指標)を計算します。
使い方例:
./llama-perplexity -m ./models/llama-2-7b.Q4_0.gguf -f ./input.txt
input.txt
には評価したいテキストを用意します。
llama-quantize
モデルを量子化(軽量化)します。
使い方例:
./llama-quantize ./models/llama-2-7b.f32.gguf ./models/llama-2-7b.Q4_0.gguf Q4_0
これでモデルサイズが小さくなり、推論が軽快になります。
llama-quantize-stats
量子化後のモデルの統計情報を表示します。
使い方例:
./llama-quantize-stats ./models/llama-2-7b.Q4_0.gguf
llama-retrieval
テキストの類似文検索や検索機能を提供します。
使い方例:
./llama-retrieval -m ./models/llama-2-7b.Q4_0.gguf --query "検索したいキーワード"
llama-save-load-state
モデルの状態を保存・復元します。
使い方例:
./llama-save-load-state -m ./models/llama-2-7b.Q4_0.gguf --save-state ./state.bin
復元時は --load-state ./state.bin
オプションを使います。
llama-simple / llama-simple-chat
シンプルな推論やチャット形式の推論を実行します。
使い方例:
./llama-save-load-state -m ./models/llama-2-7b.Q4_0.gguf --save-state ./state.bin
llama-speculative
推論の効率化手法「Speculative Decoding」を試すための実行ファイルです。
使い方例:
./llama-speculative -m ./models/llama-2-7b.Q4_0.gguf
llama-tokenize
テキストをトークン(モデルが扱う単位)に分割します。
使い方例:
./llama-tokenize -m ./models/llama-2-7b.Q4_0.gguf --text "これはテストです"
まとめ
llama.cppは、llama-cliやllama-server以外にも多彩な実行ファイルを生成します。
モデルの評価や軽量化、検索、状態管理など、目的に応じて使い分けられるのが特徴です。
ローカルLLM活用の幅を広げるために、ぜひこれらのツールも試してみてください。
コメント