go-skynet/go-llama.cpp

LLama.cpp golang bindings

何を解決するか

このプロジェクトは llama.cpp 用の Go (Golang) バインディングを提供し、C++ コードを書く必要なく、Go アプリケーションに大規模言語モデル (LLM) 推論機能を直接統合できるようにします。

動作方法

llama.cpp ライブラリの高レベルラッパーとして機能します。Go から C 関数を呼び出す際のオーバーヘッド (CGO) を回避し、パフォーマンスを維持するために、計算の大部分を C/C++ コードで保持しつつ、開発者が使いやすい簡素な Go インターフェースを提供しています。

対象ユーザー

gguf ファイル形式を使用してローカルで LLM を実行し、ハードウェアアクセラレーションを活用したい Go 開発者。

特徴

  • ハードウェアアクセラレーション: OpenBLAS、CuBLAS (NVIDIA)、ROCM (AMD)、OpenCL、Metal (Apple Silicon) など複数のバックエンドをサポート。
  • GGUF 対応: 新しい gguf モデル形式と完全互換。
  • 高レベルインターフェース: CGO ブリッジの計算コストを最小限に抑えつつ、使いやすさを重視した設計。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト