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
  • プロジェクト
  • プロジェクト
  • プロジェクト