はじめに
llama.cppは純粋なC/C++で実装されたライブラリで、大規模言語モデル(LLM)の推論プロセスを簡素化するように設計されています。Apple Silicon、NVIDIA GPU、AMD GPUを含む幅広いハードウェア・プラットフォームをサポートし、推論速度の向上とメモリ使用量の削減のための量子化オプションを提供します。このプロジェクトの目標は、ローカル環境とクラウド環境の両方において、最小限のセットアップで高性能なLLM推論を実現することです。
機能一覧
- Apple Silicon、NVIDIA GPU、AMD GPUなど複数のハードウェアプラットフォームをサポート
- 1.5ビットから8ビットの整数量子化オプションを提供
- LLaMA、Mistral、Falconなど複数のLLMモデルをサポート。
- 容易な統合のためのREST APIインターフェイスの提供
- CPU+GPU混在の推論をサポート
- Python、Go、Node.jsなど、複数のプログラミング言語バインディングを提供。
- モデル変換ツールやロードバランサーなど、様々なツールやインフラサポートを提供する。
ヘルプの使用
設置プロセス
- クローン倉庫
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
- プロジェクトをコンパイルする:
作る
使用ガイドライン
モデル変換
llama.cppは、異なるハードウェア上で効率的に動作するようにモデルを変換し、数値化するためのさまざまなツールを提供します。例えば、Hugging Faceモデルは以下のコマンドでGGML形式に変換できます:
python3 convert_hf_to_gguf.py --model .
推論の例
コンパイル後、推論には以下のコマンドが使える:
./llama-cli -m models/llama-13b-v2/ggml-model-q4_0.gguf -p "こんにちは、世界!".
REST APIの使用法
llama.cppはOpenAI API互換のHTTPサーバも提供しており、ローカルでのモデル推論サービスに利用できます。サーバを起動します:
./llama-server -m models/llama-13b-v2/ggml-model-q4_0.gguf --port 8080
基本的なウェブUIは、ブラウザから、あるいは推論リクエスト用のAPIを使ってアクセスできる:
curl -X POST http://localhost:8080/v1/chat -d '{"prompt": "Hello, world!" }'
詳細な機能操作の流れ
- モデルローディングまず、モデル・ファイルをダウンロードして指定されたディレクトリに置き、コマンドライン・ツールを使ってモデルをロードします。
- 推論構成コンテキストの長さやバッチサイズなど、推論に関連するパラメータは、設定ファイルやコマンドラインパラメータで設定できる。
- API統合: REST API インターフェースを通して、llama.cpp を既存のアプリケーションに統合し、自動推論サービスを実現することができます。
- パフォーマンス最適化定量化オプションとハードウェアアクセラレーション機能を利用することで、推論のスピードと効率を大幅に向上させることができます。