foldl/chatllm.cpp

Pure C++ implementation of several models for real-time chatting on your computer (CPU & GPU)

解決する課題

ChatLLM.cppは、コンピュータのCPUまたはGPU上で大規模言語モデル(LLM)をローカルで実行するための、高性能かつメモリ効率の高い方法を提供します。クラウドサービスに依存することなく、リアルタイムのマルチモーダルチャットと検索拡張生成(RAG)を可能にし、10億パラメータ未満から3000億パラメータを超えるモデルまで幅広くサポートします。

仕組み

ggmlライブラリに基づいた純粋なC++実装として構築されており、int4/int8量子化を使用してメモリ使用量を削減し、推論を加速させます。オブジェクト指向のアプローチを採用して様々なTransformerベースのモデルを処理し、並列計算と最適化されたKVキャッシュを通じてパフォーマンスを向上させます。また、Hugging Face形式のモデルをカスタムの量子化GGML形式に変換するための変換ツール(convert.py)も含まれています。

対象ユーザー

低いハードウェア要件で幅広いLLMをローカルで実行したいユーザーや、Python、JavaScript、C、Nimのバインディングを備えたC++ベースの推論エンジンを探している開発者向けに設計されています。

ハイライト

  • マルチモーダル対応: テキスト、画像(ビジョン)、音声(スピーチ)、およびTTS(テキスト読み上げ)を処理可能。
  • RAG統合: 検索拡張生成(RAG)を内蔵サポート。
  • 分散推論: 分散コンピューティング用のRPCをサポート。
  • ハードウェアアクセラレーション: GPUアクセラレーションとVulkanをサポート。
  • 柔軟な量子化: 正規表現パターンを使用して、テンソルごとにカスタマイズされた量子化が可能。
  • 幅広いモデルサポート: Llama、Gemma、Qwen、InternVLを含む膨大な数のモデルと互換性があります。