llama.cppとは
C/C++で実装された、CPUでも動作する軽量なLLM推論ライブラリ
ひとことで言うと
パソコンのCPUだけでも動く、軽量なAIモデル実行用のプログラム。
概要
llama.cpp(ラマ・シーピーピー)とは、Georgi GerganovによってC/C++で実装された、LLMの推論に特化した軽量なライブラリ。 Pythonの機械学習フレームワークに依存せず、量子化により4bit程度までモデルサイズを圧縮することで、GPUを持たない一般的なノートPCやスマートフォンでもLLMを動作させられるようにした点で、ローカルLLM実行の普及に大きく貢献した。 モデルの重み・量子化情報を1ファイルにまとめたGGUF形式は、llama.cppプロジェクトが定義したフォーマットであり、OllamaやLM Studio等、多くのローカルLLMツールの基盤技術として採用されている。
背景
当初のLLM推論はPyTorch等のPythonフレームワークとGPUを前提とすることが多く、一般的なノートPCでの実行は難しかった。 llama.cppは、C/C++による軽量な実装と積極的な量子化により、GPUなしでも実用的な速度でLLMを動かせるよう開発された。
歴史
2023年3月: Georgi GerganovがMeta LLaMAのCPU上での推論を可能にするllama.cppを公開。 以降、量子化フォーマット(GGML、後のGGUF)の整備や対応モデルの拡大が進み、多くのローカルLLMツールの基盤技術として採用されるようになった。
アーキテクチャ
モデルの重みを4bit等の低ビット精度に量子化したGGUF形式のファイルとして扱い、CPUの命令セットを活用した行列演算により推論する。 GPUが利用可能な環境では、一部の計算をGPUへオフロードすることも可能。
利点
- GPUがなくても、一般的なノートPCやCPUのみの環境でLLMを実行できる
- 軽量な実装により、様々なOS・ハードウェアへの移植がしやすい
欠点
比較
関連用語
よくある質問
参考文献
- GitHubggml-org/llama.cpp