abetlen/llama-cpp-python
Python bindings for llama.cpp
解決する課題
Python内で llama.cpp ライブラリを使用する方法を提供し、開発者が大規模言語モデル (LLM) を高いパフォーマンスかつ最小限のオーバーヘッドでローカル実行できるようにします。これにより、llama.cpp の低レベルな C++ 実装と Python の高レベルな柔軟性との間のギャップを埋めます。
仕組み
このプロジェクトは、低レベルアクセス用の ctypes インターフェースを使用して llama.cpp の Python バインディングを作成します。モデルのロードとテキスト生成を管理する高レベルな Llama クラスを提供します。また、推論を高速化するために様々なハードウェアアクセラレーション・バックエンド(CUDA、Metal、Vulkan、ROCmなど)をサポートしており、Hugging Face Hub から GGUF 形式のモデルを直接ダウンロードすることも可能です。
対象者
アプリケーションにローカル LLM 推論を統合したい Python 開発者、およびテキスト、チャット、ビジョンタスク向けに OpenAI 互換のローカルサーバーを探している開発者に適しています。
ハイライト
- OpenAI 互換性: OpenAI API を模倣した高レベル API と Web サーバーが含まれており、既存の多くのツールの代替としてそのまま利用できます。
- 幅広いハードウェアサポート: NVIDIA (CUDA)、Apple Silicon (Metal)、AMD (ROCm)、Vulkan を含む幅広いアクセラレーション・バックエンドをサポートしています。
- 構造化出力: JSON モードと JSON Schema モードをサポートし、モデルの応答を特定の形式に制限できます。
- マルチモーダル機能: テキストと画像の両方を処理するために、ビジョン言語モデル(Llava や Moondream など)をサポートしています。
- エコシステムの統合: LangChain や LlamaIndex のような人気のあるフレームワークと互換性があります。
関連
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト